Subversion Repositories tendra.SVN

Rev

Rev 105 | 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:
105 7u83 29
	$(MAKE) stage0
30
	$(MAKE) stage1
31
	$(MAKE) stage2
38 7u83 32
 
105 7u83 33
INSTALL0_DIR=$(BASE_DIR)/install0
34
stage0:
35
	@echo "==> Starting TenDRA bootstrap build..."
36
	$(MAKE) install-utilities STAGE=0 INSTALL_DIR=$(INSTALL0_DIR)
37
	$(MAKE) tools STAGE=0 INSTALL_DIR=$(INSTALL0_DIR)
38
	$(MAKE) install-tools STAGE=0 INSTALL_DIR=$(INSTALL0_DIR)
39
	$(MAKE) install-producers STAGE=0 INSTALL_DIR=$(INSTALL0_DIR)
40
	$(MAKE) install-installer STAGE=0 INSTALL_DIR=$(INSTALL0_DIR)
41
	$(MAKE) install-startup STAGE=0 INSTALL_DIR=$(INSTALL0_DIR)
42
	$(MAKE) install-env STAGE=0 INSTALL_DIR=$(INSTALL0_DIR)
43
	$(MAKE) install-apis STAGE=0 INSTALL_DIR=$(INSTALL0_DIR)
44
	$(MAKE) build-apilibs STAGE=0 INSTALL_DIR=$(INSTALL0_DIR)
45
	$(MAKE) install-syslibs STAGE=0 INSTALL_DIR=$(INSTALL0_DIR)
46
	@echo "==> TenDRA bootstrap build done."
38 7u83 47
 
105 7u83 48
INSTALL1_DIR=$(BASE_DIR)/install1
121 7u83 49
TCC0='$(INSTALL0_DIR)/machines/$(OSFAM)/$(BLDARCH)/bin/tcc -yTENDRA_BASEDIR=$(INSTALL0_DIR)  -Y$(INSTALL0_DIR)/machines/$(OSFAM)/$(BLDARCH)/env/default -Yposix2 -DFS_POSIX' 
105 7u83 50
stage1:
51
	@echo "==> Starting TenDRA bootstrap build..."
52
	$(MAKE) install-utilities STAGE=1 \
53
	       	INSTALL_DIR=$(INSTALL1_DIR) CC=$(TCC0)
54
	$(MAKE) tools STAGE=1 INSTALL_DIR=$(INSTALL1_DIR) CC=$(TCC0)
55
	$(MAKE) install-tools STAGE=1 INSTALL_DIR=$(INSTALL1_DIR) CC=$(TCC0)
56
	$(MAKE) install-producers STAGE=1 \
57
		INSTALL_DIR=$(INSTALL1_DIR) CC=$(TCC0)
58
	$(MAKE) install-installer STAGE=1 \
59
		INSTALL_DIR=$(INSTALL1_DIR) CC=$(TCC0)
60
	$(MAKE) install-startup STAGE=1 INSTALL_DIR=$(INSTALL1_DIR) CC=$(TCC0)
61
	$(MAKE) install-env STAGE=1 INSTALL_DIR=$(INSTALL1_DIR) CC=$(TCC0)
62
	$(MAKE) install-apis STAGE=1 INSTALL_DIR=$(INSTALL1_DIR) CC=$(TCC0)
63
	$(MAKE) build-apilibs STAGE=1 INSTALL_DIR=$(INSTALL1_DIR) CC=$(TCC0)
64
	$(MAKE) install-syslibs STAGE=1 INSTALL_DIR=$(INSTALL1_DIR) CC=$(TCC0)
65
	@echo "==> TenDRA bootstrap build done."
38 7u83 66
 
67
 
68
 
69
 
70
 
71
 
121 7u83 72
TCC1='$(INSTALL1_DIR)/machines/$(OSFAM)/$(BLDARCH)/bin/tcc -yTENDRA_BASEDIR=$(INSTALL1_DIR)  -Y$(INSTALL1_DIR)/machines/$(OSFAM)/$(BLDARCH)/env/default -Yposix2 -DFS_POSIX'
105 7u83 73
stage2:
74
	@echo "==> Starting TenDRA bootstrap build..."
121 7u83 75
	$(MAKE) install-utilities STAGE=2 CC=$(TCC1)
76
	$(MAKE) tools STAGE=2 CC=$(TCC1)
77
	$(MAKE) install-tools STAGE=2 CC=$(TCC1)
78
	$(MAKE) install-producers STAGE=2 CC=$(TCC1)
79
	$(MAKE) install-installer STAGE=2 CC=$(TCC1)
80
	$(MAKE) install-startup STAGE=2 CC=$(TCC1)
81
	$(MAKE) install-env STAGE=2 CC=$(TCC1)
82
	$(MAKE) install-apis STAGE=2 CC=$(TCC1)
83
	$(MAKE) build-apilibs STAGE=2 CC=$(TCC1)
84
	$(MAKE) install-syslibs STAGE=2 CC=$(TCC1)
105 7u83 85
	@echo "==> TenDRA bootstrap build done."
38 7u83 86
 
87
 
88
 
89
 
90
 
6 7u83 91
# RANDOM BITS 'N PIECES
92
 
93
SUBDIR=		src
94
 
38 7u83 95
#.include "Makefile.defs"
96
 
105 7u83 97
sedfile: defs.mk 
38 7u83 98
	@${ECHO} "# Create ${.TARGET}"
99
	@${ECHO} "1,\$$s%-MACH-%${OSFAM}/${BLDARCH}%g" 		\
100
		> ${.TARGET}
101
	@${ECHO} "1,\$$s%-BLDARCH-%${BLDARCH}%g" 		\
102
		>> ${.TARGET}
103
	@${ECHO} "1,\$$s%-OSFAM-%${OSFAM}%g" 			\
104
		>> ${.TARGET}
105
	@${ECHO} "1,\$$s%-MACHDIR-%$(MACH_BASE)%g" 		\
106
		>> ${.TARGET}
107
	@${ECHO} "1,\$$s%-BINDIR-%$(MACH_BASE)/bin%g" 		\
108
		>> ${.TARGET}
109
	@${ECHO} "1,\$$s%-ENVDIR-%$(MACH_BASE)/env%g" 		\
110
		>> ${.TARGET}
111
	@${ECHO} "1,\$$s%-LIBDIR-%$(MACH_BASE)/lib%g" 		\
112
		>> ${.TARGET}
113
	@${ECHO} "1,\$$s%-INCLDIR-%${COMMON_DIR}/include%g" 	\
114
		>> ${.TARGET}
115
	@${ECHO} "1,\$$s%-ASCMD-%${ASCMD}%g" 	\
116
		>> ${.TARGET}
117
	@${ECHO} "1,\$$s%-LDCMD-%${LDCMD}%g" 	\
118
		>> ${.TARGET}
89 7u83 119
	@${ECHO} "1,\$$s%-MKDIRCMD-%${MKDIRCMD}%g" 	\
120
		>> ${.TARGET}
121
	@${ECHO} "1,\$$s%-RMCMD-%${RMCMD}%g" 	\
122
		>> ${.TARGET}
38 7u83 123
	@${ECHO} "1,\$$s%-LDCRT-%${LDCRT}%g" 	\
124
		>> ${.TARGET}
89 7u83 125
	@${ECHO} "1,\$$s%-STARTUPDIR-%$(INSTALL_DIR)/lib/startup%g" 	\
38 7u83 126
		>> ${.TARGET}
127
	@${ECHO} "1,\$$s%-TMPDIR-%${TMP_DIR}%g" 		\
128
		>> ${.TARGET}
121 7u83 129
	@${ECHO} "1,\$$s%-LIBS-%${LIBS}%g" 		\
130
		>> ${.TARGET}
38 7u83 131
 
132
 
133
install-installer:
134
	cd src/installers/$(BLDARCH)/$(OSFAM) && $(MAKE) && $(MAKE) install || exit 1
135
 
136
 
137
#.if !exists(Makefile.defs)
138
#.BEGIN:
105 7u83 139
#	@${ECHO} "Please run '$(MAKE)defs' prior to running (b)$(MAKE)"
38 7u83 140
#	@${ECHO}
141
#	@${EXIT} 1;
142
#.else
143
#all:
144
#. if defined(BOOTSTRAP)
145
#	@${ECHO} "==> Starting TenDRA build..."
146
#	@${ECHO} "==> Creating object directory and symbolic links"
147
#	@${ECHO} "==> Object directory created, bootstrapping build"
148
#	@cd ${BASE_DIR} && ${MAKE} _objdirs_done=yes obj;
149
#. else
150
#.  if !exists(${.CURDIR}/obj/_obj_tree_complete)
151
#.   if "${_objdirs_done}" != "yes"
152
#	@${ECHO} "==> Starting TenDRA build..."
153
#	@${ECHO} "==> Creating object directory and symbolic links"
154
#	@cd ${BASE_DIR} && ${MAKE} _objdirs_done=yes obj;
155
#	@${ECHO} "Do not remove this file." > ${OBJ_DIR_INDICATOR};
156
#	@${ECHO} "==> Object directory created, building"
157
#	@${ECHO}
158
 
159
#_objdirs_done=yes
160
#.   endif
161
#.  endif
162
#. endif
163
#.endif
164
 
165
 
166
wrappers:
89 7u83 167
	mkdir -p $(PUBLIC_BIN)
38 7u83 168
	rm -f ${PUBLIC_BIN}/tcc
169
	echo '#!/bin/sh' > ${PUBLIC_BIN}/tcc
170
	echo exec $(INSTALL_BINDIR)/tcc -yTENDRA_BASEDIR=$(INSTALL_DIR) -Y$(INSTALL_ENVDIR)/default \$${@+"\$$@"} >> ${PUBLIC_BIN}/tcc
171
	chmod +x ${PUBLIC_BIN}/tcc
172
	rm -f ${PUBLIC_BIN}/tld
173
	echo '#!/bin/sh' > ${PUBLIC_BIN}/tld
174
	echo exec $(INSTALL_BINDIR)/tld \$${@+"\$$@"} >> ${PUBLIC_BIN}/tld
175
	chmod +x ${PUBLIC_BIN}/tld
176
	echo '#!/bin/sh' > ${PUBLIC_BIN}/tnc
177
	echo exec $(INSTALL_BINDIR)/tnc \$${@+"\$$@"} >> ${PUBLIC_BIN}/tnc
178
	chmod +x ${PUBLIC_BIN}/tnc
179
	rm -f ${PUBLIC_BIN}/tspec
180
	ln -s $(INSTALL_BINDIR)/tspec ${PUBLIC_BIN}/tspec
181
 
182
#	echo '#!/bin/sh' > ${PUBLIC_BIN}/tspec
183
#	echo exec $(INSTALL_BINDIR)/tspec \$${@+"\$$@"} >> ${PUBLIC_BIN}/tspec
184
#	chmod +x ${PUBLIC_BIN}/tspec
185
 
186
 
187
 
188
dirs:
189
	mkdir -p $(INSTALL_DIR)	|| exit 1
190
	mkdir -p $(MACH_BASE)\
191
		$(MACH_BASE)/bin\
192
		$(MACH_BASE)/env\
193
		 $(MACH_BASE)/lib\
194
		 $(MACH_BASE)/lib/diag\
195
		 $(MACH_BASE)/lib/sys
196
 
197
#	mkdir -p $(MACH_WORK) || exit 1
198
	mkdir -p $(COMMON_DIR) || exit 1
199
#	rm -f ${MACH_BASE}/startup.tar
200
#	cd $(BASE_DIR)/src/lib && tar cvf ${MACH_BASE}/startup.tar startup || exit 1 
201
#	cd ${COMMON_DIR} &&  rm -rf startup && tar xvf ${MACH_BASE}/startup.tar
202
#	rm -f ${MACH_BASE}/startup.tar
203
 
204
 
205
api-depend:
206
	@${ECHO} "# Creating API source for ${API}"
207
	${TSPEC} -I${BASE_DIR}/${APIS} -O./ -S./building ${API}
208
 
105 7u83 209
$(MAKE)api: ${APILIB}
38 7u83 210
 
89 7u83 211
#${APILIB}: ${APIOBJS}
212
#	@${ECHO} "# Linking ${API} API"
213
#	${TLD} -mc -o ${APILIB} ${APIOBJS}
38 7u83 214
 
215
 
216
b:
89 7u83 217
	@echo "==> Starting TenDRA build..."
6 7u83 218
	@${ECHO} "==> Creating object directory and symbolic links"
219
	@${ECHO} "==> Object directory created, bootstrapping build"
38 7u83 220
	cd $(BASE_DIR)/src/utilities/ && $(MAKE) 
221
	cd $(BASE_DIR)/src/tools/ && $(MAKE) 
6 7u83 222
 
223
 
38 7u83 224
clean:
225
	cd $(BASE_DIR)/src/utilities/ && $(MAKE) clean
226
	cd $(BASE_DIR)/src/tools/ && $(MAKE) clean
227
	rm -rf $(WORK_DIR)
121 7u83 228
	cd src/installers/$(BLDARCH)/$(OSFAM) && $(MAKE) clean || exit 1
229
	@cd src/producers/c && $(MAKE) clean
230
	@cd src/producers/cpp && $(MAKE) clean
231
 
232
 
105 7u83 233
clean-all:
234
	$(MAKE) clean STAGE=0
235
	$(MAKE) clean STAGE=1
236
	$(MAKE) clean
38 7u83 237
 
238
 
105 7u83 239
 
240
 
38 7u83 241
producers:
242
	@cd src/producers/c && $(MAKE)
243
	@cd src/producers/cpp && $(MAKE)
244
 
245
install-producers:
246
	@cd src/producers/c && $(MAKE) install
247
	@cd src/producers/cpp && $(MAKE) install
248
 
249
 
250
tools:
251
	@cd src/tools && $(MAKE)
252
 
253
install-tools:
254
	@cd src/tools && $(MAKE) install
255
 
256
utilities:
257
	@cd src/utilities/ && $(MAKE) 
258
 
259
install-utilities:
260
	@cd src/utilities/ && $(MAKE) install
261
 
262
 
263
 
264
install-env:
265
	cd src/lib/env && $(MAKE) install
266
 
267
install-startup:
89 7u83 268
	mkdir -p $(INSTALL_DIR)
38 7u83 269
	cp -R $(BASE_DIR)/src/lib/startup  $(INSTALL_DIR)/startup
89 7u83 270
	mkdir -p $(INSTALL_MACHDIR)
38 7u83 271
	cp -R $(BASE_DIR)/src/lib/machines/$(OSFAM)/$(BLDARCH)/startup \
272
		$(INSTALL_MACHDIR)/startup
273
	cp -R $(BASE_DIR)/src/lib/machines/$(OSFAM)/$(BLDARCH)/include \
274
		$(INSTALL_MACHDIR)/include
275
 
276
install-apis:
89 7u83 277
	# Install API source files by generating them with tspec
278
	mkdir -p $(INSTALL_DIR)/src
279
	mkdir -p $(INSTALL_DIR)/include
280
	mkdir -p $(INSTALL_DIR)/lib
38 7u83 281
	for API in `cat $(BASE_DIR)/src/build/APIS` ; do \
282
		echo Installing API $${API} ... ; \
283
		echo "$(TSPEC) -O$(INSTALL_DIR)/include -S$(INSTALL_DIR)/src -I$(BASE_DIR)/src/lib/apis -w -v $${API}" ; \
284
		$(TSPEC) -O$(INSTALL_DIR)/include -S$(INSTALL_DIR)/src -I$(BASE_DIR)/src/lib/apis -w -v $${API} ; \
285
		echo all done  $${TSPEC_INPUT};\
286
	done
287
 
89 7u83 288
build-apilibs:
289
	# Compile the API libraries
121 7u83 290
	for API in `cat $(BASE_DIR)/src/build/APIS$(STAGE)` ; do \
38 7u83 291
		echo Compiling lib $${API} ... ; \
292
		cd $(INSTALL_DIR)/src/$${API}.api || exit 1 ;\
293
		if [ -f ${INSTALL_STARTUPDIR}/$${API}.h ] ; then \
294
			$(MAKE) "TCC=$(TCC) -yTENDRA_BASEDIR=$(INSTALL_DIR) -Y$(INSTALL_ENVDIR)/default -Y32bit"  TLD=$(INSTALL_BINDIR)/tld || exit 1;\
295
			$(MAKE) PREFIX=$(INSTALL_DIR) install ;\
296
		else \
297
			echo Skipped ; \
298
		fi ;\
299
	done
300
 
301
install-syslibs:
302
	cd $(BASE_DIR)/src/lib/machines/$(OSFAM)/$(BLDARCH)/tokens && \
105 7u83 303
	$(MAKE) "TCC=$(TCC) -yTENDRA_BASEDIR=$(INSTALL_DIR) -Y$(INSTALL_ENVDIR)/default -Y32bit"  TLD=$(INSTALL_BINDIR)/tld TPL=$(INSTALL_BINDIR)/tpl install
38 7u83 304
 
305
libs:
306
 
307
 
308
		#${PUBLIC_BIN}/tspec -w -v ${API} ; \
309
 
310
 
311
#	cd $(BASE_DIR)/src/utilities && $(MAKE) -DBOOTSTRAP 
312
#	cd $(BASE_DIR)/src/tools && $(MAKE) -DBOOTSTRAP 
313
 
314
 
315
 
316
#	cd ${BASE_DIR}/${APIS}/${API}/ && ${.MAKE} -DBOOTSTRAP 
317
 
318
 
319