Subversion Repositories tendra.SVN

Rev

Rev 7 | Rev 89 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6 7u83 1
 
2
# BUILD OPTIONS
3
#
4
# These flags control which components of the release should be installed.
5
#
6
# If BUILD_UPDATE is true then the public executables and their configuration
7
# files will be installed (this has to be done on every target platform).
8
#
9
# If BUILD_MACHINE is true then all the other target dependent components
10
# will be installed (this also has to be done on every target platform).
11
#
12
# If BUILD_COMMON is true then the target independent components will be
13
# installed (this only has to be done once, indeed if the release is being
14
# built simultaneously on several platforms then the builds can conflict
15
# with each other, so start the quickest machine off first to install
16
# the complete release, and get the other machines to only install the
17
# target dependent sections).
18
#
19
# BUILD_OK is set to false if an error occurs.
20
 
21
BUILD_UPDATE=	true
22
BUILD_MACHINE=	true
23
BUILD_COMMON=	true
24
BUILD_OK=	true
25
 
38 7u83 26
include defs.mk
27
 
28
all:
29
	@${ECHO} "==> Starting TenDRA build..."
30
	make utilities
31
	make install-utilities
32
	make tools
33
	make install-tools
34
	make wrappers
35
	make producers
36
	make install-producers
37
	make install-startup
38
	make install-env
39
	make install-apis
40
	make build-libs
41
	make install-syslibs
42
	make install-installer
43
 
44
	@${ECHO} "==> Creating object directory and symbolic links"
45
	@${ECHO} "==> Object directory created, bootstrapping build"
46
 
47
 
48
 
49
 
50
 
51
 
52
 
53
 
54
 
55
 
56
 
57
 
58
 
59
 
60
 
61
 
62
 
63
 
64
 
65
 
66
 
6 7u83 67
# RANDOM BITS 'N PIECES
68
 
69
SUBDIR=		src
70
 
38 7u83 71
#.include "Makefile.defs"
72
 
73
sedfile:
74
	@${ECHO} "# Create ${.TARGET}"
75
	@${ECHO} "1,\$$s%-MACH-%${OSFAM}/${BLDARCH}%g" 		\
76
		> ${.TARGET}
77
	@${ECHO} "1,\$$s%-BLDARCH-%${BLDARCH}%g" 		\
78
		>> ${.TARGET}
79
	@${ECHO} "1,\$$s%-OSFAM-%${OSFAM}%g" 			\
80
		>> ${.TARGET}
81
	@${ECHO} "1,\$$s%-MACHDIR-%$(MACH_BASE)%g" 		\
82
		>> ${.TARGET}
83
	@${ECHO} "1,\$$s%-BINDIR-%$(MACH_BASE)/bin%g" 		\
84
		>> ${.TARGET}
85
	@${ECHO} "1,\$$s%-ENVDIR-%$(MACH_BASE)/env%g" 		\
86
		>> ${.TARGET}
87
	@${ECHO} "1,\$$s%-LIBDIR-%$(MACH_BASE)/lib%g" 		\
88
		>> ${.TARGET}
89
	@${ECHO} "1,\$$s%-INCLDIR-%${COMMON_DIR}/include%g" 	\
90
		>> ${.TARGET}
91
	@${ECHO} "1,\$$s%-ASCMD-%${ASCMD}%g" 	\
92
		>> ${.TARGET}
93
	@${ECHO} "1,\$$s%-LDCMD-%${LDCMD}%g" 	\
94
		>> ${.TARGET}
95
	@${ECHO} "1,\$$s%-LDCRT-%${LDCRT}%g" 	\
96
		>> ${.TARGET}
97
		@${ECHO} "1,\$$s%-STARTUPDIR-%$(INSTALL_DIR)/lib/startup%g" 	\
98
		>> ${.TARGET}
99
	@${ECHO} "1,\$$s%-TMPDIR-%${TMP_DIR}%g" 		\
100
		>> ${.TARGET}
101
 
102
 
103
install-installer:
104
	cd src/installers/$(BLDARCH)/$(OSFAM) && $(MAKE) && $(MAKE) install || exit 1
105
 
106
 
107
#.if !exists(Makefile.defs)
108
#.BEGIN:
109
#	@${ECHO} "Please run 'makedefs' prior to running (b)make"
110
#	@${ECHO}
111
#	@${EXIT} 1;
112
#.else
113
#all:
114
#. if defined(BOOTSTRAP)
115
#	@${ECHO} "==> Starting TenDRA build..."
116
#	@${ECHO} "==> Creating object directory and symbolic links"
117
#	@${ECHO} "==> Object directory created, bootstrapping build"
118
#	@cd ${BASE_DIR} && ${MAKE} _objdirs_done=yes obj;
119
#. else
120
#.  if !exists(${.CURDIR}/obj/_obj_tree_complete)
121
#.   if "${_objdirs_done}" != "yes"
122
#	@${ECHO} "==> Starting TenDRA build..."
123
#	@${ECHO} "==> Creating object directory and symbolic links"
124
#	@cd ${BASE_DIR} && ${MAKE} _objdirs_done=yes obj;
125
#	@${ECHO} "Do not remove this file." > ${OBJ_DIR_INDICATOR};
126
#	@${ECHO} "==> Object directory created, building"
127
#	@${ECHO}
128
 
129
#_objdirs_done=yes
130
#.   endif
131
#.  endif
132
#. endif
133
#.endif
134
 
135
 
136
wrappers:
137
	install -d $(PUBLIC_BIN)
138
	rm -f ${PUBLIC_BIN}/tcc
139
	echo '#!/bin/sh' > ${PUBLIC_BIN}/tcc
140
	echo exec $(INSTALL_BINDIR)/tcc -yTENDRA_BASEDIR=$(INSTALL_DIR) -Y$(INSTALL_ENVDIR)/default \$${@+"\$$@"} >> ${PUBLIC_BIN}/tcc
141
	chmod +x ${PUBLIC_BIN}/tcc
142
	rm -f ${PUBLIC_BIN}/tld
143
	echo '#!/bin/sh' > ${PUBLIC_BIN}/tld
144
	echo exec $(INSTALL_BINDIR)/tld \$${@+"\$$@"} >> ${PUBLIC_BIN}/tld
145
	chmod +x ${PUBLIC_BIN}/tld
146
	echo '#!/bin/sh' > ${PUBLIC_BIN}/tnc
147
	echo exec $(INSTALL_BINDIR)/tnc \$${@+"\$$@"} >> ${PUBLIC_BIN}/tnc
148
	chmod +x ${PUBLIC_BIN}/tnc
149
	rm -f ${PUBLIC_BIN}/tspec
150
	ln -s $(INSTALL_BINDIR)/tspec ${PUBLIC_BIN}/tspec
151
 
152
#	echo '#!/bin/sh' > ${PUBLIC_BIN}/tspec
153
#	echo exec $(INSTALL_BINDIR)/tspec \$${@+"\$$@"} >> ${PUBLIC_BIN}/tspec
154
#	chmod +x ${PUBLIC_BIN}/tspec
155
 
156
 
157
 
158
dirs:
159
	mkdir -p $(INSTALL_DIR)	|| exit 1
160
	mkdir -p $(MACH_BASE)\
161
		$(MACH_BASE)/bin\
162
		$(MACH_BASE)/env\
163
		 $(MACH_BASE)/lib\
164
		 $(MACH_BASE)/lib/diag\
165
		 $(MACH_BASE)/lib/sys
166
 
167
#	mkdir -p $(MACH_WORK) || exit 1
168
	mkdir -p $(COMMON_DIR) || exit 1
169
#	rm -f ${MACH_BASE}/startup.tar
170
#	cd $(BASE_DIR)/src/lib && tar cvf ${MACH_BASE}/startup.tar startup || exit 1 
171
#	cd ${COMMON_DIR} &&  rm -rf startup && tar xvf ${MACH_BASE}/startup.tar
172
#	rm -f ${MACH_BASE}/startup.tar
173
 
174
 
175
api-depend:
176
	@${ECHO} "# Creating API source for ${API}"
177
	${TSPEC} -I${BASE_DIR}/${APIS} -O./ -S./building ${API}
178
 
179
makeapi: ${APILIB}
180
 
181
${APILIB}: ${APIOBJS}
182
	@${ECHO} "# Linking ${API} API"
183
	${TLD} -mc -o ${APILIB} ${APIOBJS}
184
 
185
 
186
b:
6 7u83 187
	@${ECHO} "==> Starting TenDRA build..."
188
	@${ECHO} "==> Creating object directory and symbolic links"
189
	@${ECHO} "==> Object directory created, bootstrapping build"
38 7u83 190
	cd $(BASE_DIR)/src/utilities/ && $(MAKE) 
191
	cd $(BASE_DIR)/src/tools/ && $(MAKE) 
6 7u83 192
 
193
 
38 7u83 194
clean:
195
	cd $(BASE_DIR)/src/utilities/ && $(MAKE) clean
196
	cd $(BASE_DIR)/src/tools/ && $(MAKE) clean
197
	rm -rf $(WORK_DIR)
198
 
199
 
200
producers:
201
	@cd src/producers/c && $(MAKE)
202
	@cd src/producers/cpp && $(MAKE)
203
 
204
install-producers:
205
	@cd src/producers/c && $(MAKE) install
206
	@cd src/producers/cpp && $(MAKE) install
207
 
208
 
209
tools:
210
	@cd src/tools && $(MAKE)
211
 
212
install-tools:
213
	@cd src/tools && $(MAKE) install
214
 
215
utilities:
216
	@cd src/utilities/ && $(MAKE) 
217
 
218
install-utilities:
219
	@cd src/utilities/ && $(MAKE) install
220
 
221
 
222
 
223
install-env:
224
	cd src/lib/env && $(MAKE) install
225
 
226
install-startup:
227
	install -d $(INSTALL_DIR)
228
	cp -R $(BASE_DIR)/src/lib/startup  $(INSTALL_DIR)/startup
229
	install -d $(INSTALL_MACHDIR)
230
	cp -R $(BASE_DIR)/src/lib/machines/$(OSFAM)/$(BLDARCH)/startup \
231
		$(INSTALL_MACHDIR)/startup
232
	cp -R $(BASE_DIR)/src/lib/machines/$(OSFAM)/$(BLDARCH)/include \
233
		$(INSTALL_MACHDIR)/include
234
 
235
install-apis:
236
	install -d $(INSTALL_DIR)/src
237
	install -d $(INSTALL_DIR)/include
238
	install -d $(INSTALL_DIR)/lib
239
	for API in `cat $(BASE_DIR)/src/build/APIS` ; do \
240
		echo Installing API $${API} ... ; \
241
		echo "$(TSPEC) -O$(INSTALL_DIR)/include -S$(INSTALL_DIR)/src -I$(BASE_DIR)/src/lib/apis -w -v $${API}" ; \
242
		$(TSPEC) -O$(INSTALL_DIR)/include -S$(INSTALL_DIR)/src -I$(BASE_DIR)/src/lib/apis -w -v $${API} ; \
243
		echo all done  $${TSPEC_INPUT};\
244
	done
245
 
246
build-libs:
247
	for API in `cat $(BASE_DIR)/src/build/APIS` ; do \
248
		echo Compiling lib $${API} ... ; \
249
		cd $(INSTALL_DIR)/src/$${API}.api || exit 1 ;\
250
		if [ -f ${INSTALL_STARTUPDIR}/$${API}.h ] ; then \
251
			$(MAKE) "TCC=$(TCC) -yTENDRA_BASEDIR=$(INSTALL_DIR) -Y$(INSTALL_ENVDIR)/default -Y32bit"  TLD=$(INSTALL_BINDIR)/tld || exit 1;\
252
			$(MAKE) PREFIX=$(INSTALL_DIR) install ;\
253
		else \
254
			echo Skipped ; \
255
		fi ;\
256
	done
257
 
258
install-syslibs:
259
	cd $(BASE_DIR)/src/lib/machines/$(OSFAM)/$(BLDARCH)/tokens && \
260
	$(MAKE) "TCC=$(TCC) -yTENDRA_BASEDIR=$(INSTALL_DIR) -Y$(INSTALL_ENVDIR)/default -Y32bit"  TLD=$(INSTALL_BINDIR)/tld install
261
 
262
libs:
263
 
264
 
265
		#${PUBLIC_BIN}/tspec -w -v ${API} ; \
266
 
267
 
268
#	cd $(BASE_DIR)/src/utilities && $(MAKE) -DBOOTSTRAP 
269
#	cd $(BASE_DIR)/src/tools && $(MAKE) -DBOOTSTRAP 
270
 
271
 
272
 
273
#	cd ${BASE_DIR}/${APIS}/${API}/ && ${.MAKE} -DBOOTSTRAP 
274
 
275
 
276