Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – tendra.SVN – Blame – /branches/algol60/mk/tendra.install.mk – Rev 7

Subversion Repositories tendra.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6 7u83 1
# TenDRA make install infrastructure
2
#
3
# $Id$
4
 
5
.if !defined(_TENDRA_INSTALL_MK_)
6
_TENDRA_INSTALL_MK_=1
7
 
8
.include <tendra.base.mk>
9
.include <tendra.functions.mk>
10
 
11
# Installation infrastructure framework. We come after tendra.build.mk.
12
 
13
# For {ENV, MACH, STARTUP}SUBDIR, a real Makefile should exist in each
14
# directory and control should be passed via standard SUBDIR mechanism.
15
# At the moment, we have to do all the work here, which is *ugly*.
16
 
17
# Real workers, mutually exclusive, follow.
18
 
19
.if "${API}" != ""
20
#
21
# Install API.
22
#
23
 
24
# Relative to .OBJDIR.
25
CAPIDIR=building/${API}.api
26
SAPIDIR=shared/${API}.api
27
HAPIDIR=${API}.api
28
 
29
# Absolute target dirs.
30
SINSTDIR=${INSTALL_DIR}/lib/include/${SAPIDIR}
31
HINSTDIR=${INSTALL_DIR}/lib/include/${HAPIDIR}
32
CINSTDIR=${INSTALL_DIR}/lib/${CAPIDIR}
33
LINSTDIR=${INSTALL_DIR}/lib
34
 
35
_REALINSTALL: .USE
36
	@${ECHO} "# Installing ${API} API"
37
	${CONDCREATE} "${HINSTDIR}" "${CINSTDIR}" "${LINSTDIR}";
38
	${INSTALL} -m 644 ${.OBJDIR}/${API}.tl ${LINSTDIR}
39
. for file in ${:!${ECHO} ${CAPIDIR}/*.c ${CAPIDIR}/M_${API}!:T}
40
	${INSTALL} -m 644 ${CAPIDIR}/${file} ${CINSTDIR}/${file}
41
. endfor
42
. for file in ${:!${ECHO} ${HAPIDIR}/*.h!:T}
43
	${INSTALL} -m 644 ${HAPIDIR}/${file} ${HINSTDIR}/${file}
44
. endfor
45
. if exists(${.OBJDIR}/${SAPIDIR})
46
	${CONDCREATE} "${SINSTDIR}" ;
47
.  for file in ${:!${ECHO} ${SAPIDIR}/*.h!:T}
48
	${INSTALL} -m 644 ${SAPIDIR}/${file} ${SINSTDIR}/${file}
49
.  endfor
50
. endif
51
.elif "${ENVFILE}" != ""
52
#
53
# Install environment(s).
54
#
55
_REALINSTALL: .USE
56
	@${ECHO} "# Installing ${ENVFILE} environments"
57
	${CONDCREATE} "${MACH_BASE}/env" ;
58
. for entry in ${ENVFILE}
59
	${INSTALL} -m 644 ${.OBJDIR}/${entry} ${MACH_BASE}/env/${entry}
60
. endfor
61
.elif "${PROG}" != ""
62
#
63
# Install a program.
64
#
65
_REALINSTALL: .USE
66
	@${ECHO} "# Installing ${PROG}"
67
	${CONDCREATE} "${PUBLIC_BIN}" "${MACH_BASE}/bin"
68
	${INSTALL} -m 755 ${PROG} ${MACH_BASE}/bin/${PROG}
69
. if "${WRAPPER}" != ""
70
	${INSTALL} -m 755 ${WRAPPER} ${PUBLIC_BIN}/${PROG}
71
. endif
72
.elif "${ENVSUBDIR}" != ""
73
#
74
# Install startup environments. (XXX: seems it's not ever used in tree)
75
#
76
_REALINSTALL: .USE
77
	@${ECHO} "# Installing ${ENVSUBDIR} environment directories"
78
	${CONDCREATE} "${MACH_BASE}/env" \
79
		${ENVSUBDIR:S/^/${MACH_BASE}\/startup\//g}
80
. for envsub in ${ENVSUBDIR}
81
.  if exists(${envsub})
82
.   for file in ${:!${ECHO} ${envsub}/*!:T}
83
	if [ -f ${IMACH}/${file} ]; then \
84
		${INSTALL} -m 644 ${envsub}/${file} ${MACH_BASE}/env/${file}; \
85
	fi
86
.   endfor
87
.  endif
88
. endfor
89
.elif "${STARTUPSUBDIR}" != ""
90
#
91
# Install additional startup files (?).
92
#
93
_REALINSTALL: .USE
94
	@${ECHO} "# Installing ${STARTUPSUBDIR} startup directories"
95
	${CONDCREATE} ${STARTUPSUBDIR:S/^/${COMMON_DIR}\/startup\//g}
96
. for startsub in ${STARTUPSUBDIR}
97
.  for file in ${:!${ECHO} ${startsub}/*!:T}
98
	${INSTALL} -m 644 ${startsub}/${file} \
99
		${COMMON_DIR}/startup/${startsub}/${file}
100
.  endfor
101
. endfor
102
.elif "${MACHSUBDIR}" != ""
103
#
104
# Install machine subdirectory data.
105
#
106
 
107
# Relative to .CURDIR. XXX: ok?
108
IMACH=${MACHSUBDIR}/include
109
SMACH=${MACHSUBDIR}/startup
110
 
111
_REALINSTALL: .USE
112
	@${ECHO} "# Installing ${MACHSUBDIR} machine directories"
113
	${CONDCREATE} "${MACH_BASE}/include" "${MACH_BASE}/startup"
114
	# XXX: ${IMACH}/sys/* is not installed
115
. for file in ${:!${ECHO} ${IMACH}/*!:T}
116
	if [ -f ${IMACH}/${file} ]; then \
117
		${INSTALL} -m 644 ${IMACH}/${file} ${MACH_BASE}/include/${file}; \
118
	fi
119
. endfor
120
. for file in ${:!${ECHO} ${SMACH}/*!:T}
121
	${INSTALL} -m 644 ${SMACH}/${file} ${MACH_BASE}/startup/${file}
122
. endfor
123
.else
124
#
125
# Nothing to install.
126
#
127
_REALINSTALL: .USE
128
.endif
129
 
130
# Install manual pages, if any. See also tendra.build.mk.
131
_MANINSTALL: .USE
132
.if "${MAN}" != ""
133
	@${ECHO} "# Installing ${MAN} manual pages"
134
. for man in ${MAN}
135
	${CONDCREATE} "${MAN_DIR}/man${man:E}"
136
	${INSTALL} -m 444 ${.CURDIR}/${man} ${MAN_DIR}/man${man:E}/${man}
137
. endfor
138
.endif
139
 
140
# Finally, glue all steps together.
141
 
142
# Make sure subdirs install after we're done.
143
.ORDER: _REALINSTALL _MANINSTALL _SUBDIR
144
 
145
# Depending on all not necessary but nice (verify it's not harmful!).
146
install: _REALINSTALL _MANINSTALL
147
 
148
.endif	# !defined(_TENDRA_INSTALL_MK_)