Subversion Repositories tendra.SVN

Rev

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:
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
49
TCC0='$(INSTALL0_DIR)/machines/$(OSFAM)/$(BLDARCH)/bin/tcc -yTENDRA_BASEDIR=$(INSTALL0_DIR)  -Y$(INSTALL0_DIR)/machines/$(OSFAM)/$(BLDARCH)/env/default -Yposix2' TCFLAGS=-DFS_POSIX
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
 
105 7u83 72
TCC1='$(INSTALL1_DIR)/machines/$(OSFAM)/$(BLDARCH)/bin/tcc -yTENDRA_BASEDIR=$(INSTALL1_DIR)  -Y$(INSTALL1_DIR)/machines/$(OSFAM)/$(BLDARCH)/env/default -Yposix2'
73
stage2:
74
	@echo "==> Starting TenDRA bootstrap build..."
75
	$(MAKE) install-utilities STAGE=1 CC=$(TCC1)
76
	$(MAKE) tools STAGE=1 CC=$(TCC1)
77
	$(MAKE) install-tools STAGE=1 CC=$(TCC1)
78
	$(MAKE) install-producers STAGE=1 CC=$(TCC1)
79
	$(MAKE) install-installer STAGE=1 CC=$(TCC1)
80
	$(MAKE) install-startup STAGE=1 CC=$(TCC1)
81
	$(MAKE) install-env STAGE=1 CC=$(TCC1)
82
	$(MAKE) install-apis STAGE=1 CC=$(TCC1)
83
	$(MAKE) build-apilibs STAGE=1 CC=$(TCC1)
84
	$(MAKE) install-syslibs STAGE=1 CC=$(TCC1)
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}
129
 
130
 
131
install-installer:
132
	cd src/installers/$(BLDARCH)/$(OSFAM) && $(MAKE) && $(MAKE) install || exit 1
133
 
134
 
135
#.if !exists(Makefile.defs)
136
#.BEGIN:
105 7u83 137
#	@${ECHO} "Please run '$(MAKE)defs' prior to running (b)$(MAKE)"
38 7u83 138
#	@${ECHO}
139
#	@${EXIT} 1;
140
#.else
141
#all:
142
#. if defined(BOOTSTRAP)
143
#	@${ECHO} "==> Starting TenDRA build..."
144
#	@${ECHO} "==> Creating object directory and symbolic links"
145
#	@${ECHO} "==> Object directory created, bootstrapping build"
146
#	@cd ${BASE_DIR} && ${MAKE} _objdirs_done=yes obj;
147
#. else
148
#.  if !exists(${.CURDIR}/obj/_obj_tree_complete)
149
#.   if "${_objdirs_done}" != "yes"
150
#	@${ECHO} "==> Starting TenDRA build..."
151
#	@${ECHO} "==> Creating object directory and symbolic links"
152
#	@cd ${BASE_DIR} && ${MAKE} _objdirs_done=yes obj;
153
#	@${ECHO} "Do not remove this file." > ${OBJ_DIR_INDICATOR};
154
#	@${ECHO} "==> Object directory created, building"
155
#	@${ECHO}
156
 
157
#_objdirs_done=yes
158
#.   endif
159
#.  endif
160
#. endif
161
#.endif
162
 
163
 
164
wrappers:
89 7u83 165
	mkdir -p $(PUBLIC_BIN)
38 7u83 166
	rm -f ${PUBLIC_BIN}/tcc
167
	echo '#!/bin/sh' > ${PUBLIC_BIN}/tcc
168
	echo exec $(INSTALL_BINDIR)/tcc -yTENDRA_BASEDIR=$(INSTALL_DIR) -Y$(INSTALL_ENVDIR)/default \$${@+"\$$@"} >> ${PUBLIC_BIN}/tcc
169
	chmod +x ${PUBLIC_BIN}/tcc
170
	rm -f ${PUBLIC_BIN}/tld
171
	echo '#!/bin/sh' > ${PUBLIC_BIN}/tld
172
	echo exec $(INSTALL_BINDIR)/tld \$${@+"\$$@"} >> ${PUBLIC_BIN}/tld
173
	chmod +x ${PUBLIC_BIN}/tld
174
	echo '#!/bin/sh' > ${PUBLIC_BIN}/tnc
175
	echo exec $(INSTALL_BINDIR)/tnc \$${@+"\$$@"} >> ${PUBLIC_BIN}/tnc
176
	chmod +x ${PUBLIC_BIN}/tnc
177
	rm -f ${PUBLIC_BIN}/tspec
178
	ln -s $(INSTALL_BINDIR)/tspec ${PUBLIC_BIN}/tspec
179
 
180
#	echo '#!/bin/sh' > ${PUBLIC_BIN}/tspec
181
#	echo exec $(INSTALL_BINDIR)/tspec \$${@+"\$$@"} >> ${PUBLIC_BIN}/tspec
182
#	chmod +x ${PUBLIC_BIN}/tspec
183
 
184
 
185
 
186
dirs:
187
	mkdir -p $(INSTALL_DIR)	|| exit 1
188
	mkdir -p $(MACH_BASE)\
189
		$(MACH_BASE)/bin\
190
		$(MACH_BASE)/env\
191
		 $(MACH_BASE)/lib\
192
		 $(MACH_BASE)/lib/diag\
193
		 $(MACH_BASE)/lib/sys
194
 
195
#	mkdir -p $(MACH_WORK) || exit 1
196
	mkdir -p $(COMMON_DIR) || exit 1
197
#	rm -f ${MACH_BASE}/startup.tar
198
#	cd $(BASE_DIR)/src/lib && tar cvf ${MACH_BASE}/startup.tar startup || exit 1 
199
#	cd ${COMMON_DIR} &&  rm -rf startup && tar xvf ${MACH_BASE}/startup.tar
200
#	rm -f ${MACH_BASE}/startup.tar
201
 
202
 
203
api-depend:
204
	@${ECHO} "# Creating API source for ${API}"
205
	${TSPEC} -I${BASE_DIR}/${APIS} -O./ -S./building ${API}
206
 
105 7u83 207
$(MAKE)api: ${APILIB}
38 7u83 208
 
89 7u83 209
#${APILIB}: ${APIOBJS}
210
#	@${ECHO} "# Linking ${API} API"
211
#	${TLD} -mc -o ${APILIB} ${APIOBJS}
38 7u83 212
 
213
 
214
b:
89 7u83 215
	@echo "==> Starting TenDRA build..."
6 7u83 216
	@${ECHO} "==> Creating object directory and symbolic links"
217
	@${ECHO} "==> Object directory created, bootstrapping build"
38 7u83 218
	cd $(BASE_DIR)/src/utilities/ && $(MAKE) 
219
	cd $(BASE_DIR)/src/tools/ && $(MAKE) 
6 7u83 220
 
221
 
38 7u83 222
clean:
223
	cd $(BASE_DIR)/src/utilities/ && $(MAKE) clean
224
	cd $(BASE_DIR)/src/tools/ && $(MAKE) clean
225
	rm -rf $(WORK_DIR)
105 7u83 226
clean-all:
227
	$(MAKE) clean STAGE=0
228
	$(MAKE) clean STAGE=1
229
	$(MAKE) clean
38 7u83 230
 
231
 
105 7u83 232
 
233
 
38 7u83 234
producers:
235
	@cd src/producers/c && $(MAKE)
236
	@cd src/producers/cpp && $(MAKE)
237
 
238
install-producers:
239
	@cd src/producers/c && $(MAKE) install
240
	@cd src/producers/cpp && $(MAKE) install
241
 
242
 
243
tools:
244
	@cd src/tools && $(MAKE)
245
 
246
install-tools:
247
	@cd src/tools && $(MAKE) install
248
 
249
utilities:
250
	@cd src/utilities/ && $(MAKE) 
251
 
252
install-utilities:
253
	@cd src/utilities/ && $(MAKE) install
254
 
255
 
256
 
257
install-env:
258
	cd src/lib/env && $(MAKE) install
259
 
260
install-startup:
89 7u83 261
	mkdir -p $(INSTALL_DIR)
38 7u83 262
	cp -R $(BASE_DIR)/src/lib/startup  $(INSTALL_DIR)/startup
89 7u83 263
	mkdir -p $(INSTALL_MACHDIR)
38 7u83 264
	cp -R $(BASE_DIR)/src/lib/machines/$(OSFAM)/$(BLDARCH)/startup \
265
		$(INSTALL_MACHDIR)/startup
266
	cp -R $(BASE_DIR)/src/lib/machines/$(OSFAM)/$(BLDARCH)/include \
267
		$(INSTALL_MACHDIR)/include
268
 
269
install-apis:
89 7u83 270
	# Install API source files by generating them with tspec
271
	mkdir -p $(INSTALL_DIR)/src
272
	mkdir -p $(INSTALL_DIR)/include
273
	mkdir -p $(INSTALL_DIR)/lib
38 7u83 274
	for API in `cat $(BASE_DIR)/src/build/APIS` ; do \
275
		echo Installing API $${API} ... ; \
276
		echo "$(TSPEC) -O$(INSTALL_DIR)/include -S$(INSTALL_DIR)/src -I$(BASE_DIR)/src/lib/apis -w -v $${API}" ; \
277
		$(TSPEC) -O$(INSTALL_DIR)/include -S$(INSTALL_DIR)/src -I$(BASE_DIR)/src/lib/apis -w -v $${API} ; \
278
		echo all done  $${TSPEC_INPUT};\
279
	done
280
 
89 7u83 281
build-apilibs:
282
	# Compile the API libraries
38 7u83 283
	for API in `cat $(BASE_DIR)/src/build/APIS` ; do \
284
		echo Compiling lib $${API} ... ; \
285
		cd $(INSTALL_DIR)/src/$${API}.api || exit 1 ;\
286
		if [ -f ${INSTALL_STARTUPDIR}/$${API}.h ] ; then \
287
			$(MAKE) "TCC=$(TCC) -yTENDRA_BASEDIR=$(INSTALL_DIR) -Y$(INSTALL_ENVDIR)/default -Y32bit"  TLD=$(INSTALL_BINDIR)/tld || exit 1;\
288
			$(MAKE) PREFIX=$(INSTALL_DIR) install ;\
289
		else \
290
			echo Skipped ; \
291
		fi ;\
292
	done
293
 
294
install-syslibs:
295
	cd $(BASE_DIR)/src/lib/machines/$(OSFAM)/$(BLDARCH)/tokens && \
105 7u83 296
	$(MAKE) "TCC=$(TCC) -yTENDRA_BASEDIR=$(INSTALL_DIR) -Y$(INSTALL_ENVDIR)/default -Y32bit"  TLD=$(INSTALL_BINDIR)/tld TPL=$(INSTALL_BINDIR)/tpl install
38 7u83 297
 
298
libs:
299
 
300
 
301
		#${PUBLIC_BIN}/tspec -w -v ${API} ; \
302
 
303
 
304
#	cd $(BASE_DIR)/src/utilities && $(MAKE) -DBOOTSTRAP 
305
#	cd $(BASE_DIR)/src/tools && $(MAKE) -DBOOTSTRAP 
306
 
307
 
308
 
309
#	cd ${BASE_DIR}/${APIS}/${API}/ && ${.MAKE} -DBOOTSTRAP 
310
 
311
 
312