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 |
|
25 |
7u83 |
26 |
include defs.mk
|
|
|
27 |
|
|
|
28 |
all:
|
99 |
7u83 |
29 |
$(MAKE) stage0
|
|
|
30 |
$(MAKE) stage1
|
|
|
31 |
$(MAKE) stage2
|
96 |
7u83 |
32 |
|
99 |
7u83 |
33 |
INSTALL0_DIR=$(BASE_DIR)/install0
|
|
|
34 |
stage0:
|
96 |
7u83 |
35 |
@echo "==> Starting TenDRA bootstrap build..."
|
99 |
7u83 |
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)
|
96 |
7u83 |
46 |
@echo "==> TenDRA bootstrap build done."
|
25 |
7u83 |
47 |
|
99 |
7u83 |
48 |
INSTALL1_DIR=$(BASE_DIR)/install1
|
102 |
7u83 |
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
|
96 |
7u83 |
50 |
stage1:
|
99 |
7u83 |
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."
|
96 |
7u83 |
66 |
|
25 |
7u83 |
67 |
|
|
|
68 |
|
99 |
7u83 |
69 |
|
|
|
70 |
|
|
|
71 |
|
|
|
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."
|
|
|
86 |
|
|
|
87 |
|
|
|
88 |
|
|
|
89 |
|
|
|
90 |
|
6 |
7u83 |
91 |
# RANDOM BITS 'N PIECES
|
|
|
92 |
|
|
|
93 |
SUBDIR= src
|
|
|
94 |
|
15 |
7u83 |
95 |
#.include "Makefile.defs"
|
|
|
96 |
|
96 |
7u83 |
97 |
sedfile: defs.mk
|
15 |
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}
|
17 |
7u83 |
105 |
@${ECHO} "1,\$$s%-MACHDIR-%$(MACH_BASE)%g" \
|
15 |
7u83 |
106 |
>> ${.TARGET}
|
17 |
7u83 |
107 |
@${ECHO} "1,\$$s%-BINDIR-%$(MACH_BASE)/bin%g" \
|
15 |
7u83 |
108 |
>> ${.TARGET}
|
17 |
7u83 |
109 |
@${ECHO} "1,\$$s%-ENVDIR-%$(MACH_BASE)/env%g" \
|
15 |
7u83 |
110 |
>> ${.TARGET}
|
17 |
7u83 |
111 |
@${ECHO} "1,\$$s%-LIBDIR-%$(MACH_BASE)/lib%g" \
|
15 |
7u83 |
112 |
>> ${.TARGET}
|
|
|
113 |
@${ECHO} "1,\$$s%-INCLDIR-%${COMMON_DIR}/include%g" \
|
|
|
114 |
>> ${.TARGET}
|
27 |
7u83 |
115 |
@${ECHO} "1,\$$s%-ASCMD-%${ASCMD}%g" \
|
15 |
7u83 |
116 |
>> ${.TARGET}
|
37 |
7u83 |
117 |
@${ECHO} "1,\$$s%-LDCMD-%${LDCMD}%g" \
|
|
|
118 |
>> ${.TARGET}
|
87 |
7u83 |
119 |
@${ECHO} "1,\$$s%-MKDIRCMD-%${MKDIRCMD}%g" \
|
|
|
120 |
>> ${.TARGET}
|
|
|
121 |
@${ECHO} "1,\$$s%-RMCMD-%${RMCMD}%g" \
|
|
|
122 |
>> ${.TARGET}
|
27 |
7u83 |
123 |
@${ECHO} "1,\$$s%-LDCRT-%${LDCRT}%g" \
|
|
|
124 |
>> ${.TARGET}
|
87 |
7u83 |
125 |
@${ECHO} "1,\$$s%-STARTUPDIR-%$(INSTALL_DIR)/lib/startup%g" \
|
27 |
7u83 |
126 |
>> ${.TARGET}
|
15 |
7u83 |
127 |
@${ECHO} "1,\$$s%-TMPDIR-%${TMP_DIR}%g" \
|
|
|
128 |
>> ${.TARGET}
|
|
|
129 |
|
|
|
130 |
|
37 |
7u83 |
131 |
install-installer:
|
|
|
132 |
cd src/installers/$(BLDARCH)/$(OSFAM) && $(MAKE) && $(MAKE) install || exit 1
|
15 |
7u83 |
133 |
|
|
|
134 |
|
|
|
135 |
#.if !exists(Makefile.defs)
|
|
|
136 |
#.BEGIN:
|
99 |
7u83 |
137 |
# @${ECHO} "Please run '$(MAKE)defs' prior to running (b)$(MAKE)"
|
15 |
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 |
|
25 |
7u83 |
164 |
wrappers:
|
59 |
7u83 |
165 |
mkdir -p $(PUBLIC_BIN)
|
25 |
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
|
27 |
7u83 |
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
|
37 |
7u83 |
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
|
15 |
7u83 |
179 |
|
37 |
7u83 |
180 |
# echo '#!/bin/sh' > ${PUBLIC_BIN}/tspec
|
|
|
181 |
# echo exec $(INSTALL_BINDIR)/tspec \$${@+"\$$@"} >> ${PUBLIC_BIN}/tspec
|
|
|
182 |
# chmod +x ${PUBLIC_BIN}/tspec
|
|
|
183 |
|
25 |
7u83 |
184 |
|
37 |
7u83 |
185 |
|
15 |
7u83 |
186 |
dirs:
|
|
|
187 |
mkdir -p $(INSTALL_DIR) || exit 1
|
17 |
7u83 |
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
|
37 |
7u83 |
194 |
|
17 |
7u83 |
195 |
# mkdir -p $(MACH_WORK) || exit 1
|
15 |
7u83 |
196 |
mkdir -p $(COMMON_DIR) || exit 1
|
37 |
7u83 |
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
|
15 |
7u83 |
201 |
|
|
|
202 |
|
|
|
203 |
api-depend:
|
|
|
204 |
@${ECHO} "# Creating API source for ${API}"
|
|
|
205 |
${TSPEC} -I${BASE_DIR}/${APIS} -O./ -S./building ${API}
|
|
|
206 |
|
99 |
7u83 |
207 |
$(MAKE)api: ${APILIB}
|
15 |
7u83 |
208 |
|
46 |
7u83 |
209 |
#${APILIB}: ${APIOBJS}
|
|
|
210 |
# @${ECHO} "# Linking ${API} API"
|
|
|
211 |
# ${TLD} -mc -o ${APILIB} ${APIOBJS}
|
15 |
7u83 |
212 |
|
|
|
213 |
|
|
|
214 |
b:
|
46 |
7u83 |
215 |
@echo "==> Starting TenDRA build..."
|
6 |
7u83 |
216 |
@${ECHO} "==> Creating object directory and symbolic links"
|
|
|
217 |
@${ECHO} "==> Object directory created, bootstrapping build"
|
15 |
7u83 |
218 |
cd $(BASE_DIR)/src/utilities/ && $(MAKE)
|
|
|
219 |
cd $(BASE_DIR)/src/tools/ && $(MAKE)
|
6 |
7u83 |
220 |
|
|
|
221 |
|
15 |
7u83 |
222 |
clean:
|
|
|
223 |
cd $(BASE_DIR)/src/utilities/ && $(MAKE) clean
|
|
|
224 |
cd $(BASE_DIR)/src/tools/ && $(MAKE) clean
|
|
|
225 |
rm -rf $(WORK_DIR)
|
98 |
7u83 |
226 |
clean-all:
|
|
|
227 |
$(MAKE) clean STAGE=0
|
|
|
228 |
$(MAKE) clean STAGE=1
|
|
|
229 |
$(MAKE) clean
|
15 |
7u83 |
230 |
|
|
|
231 |
|
98 |
7u83 |
232 |
|
|
|
233 |
|
25 |
7u83 |
234 |
producers:
|
|
|
235 |
@cd src/producers/c && $(MAKE)
|
|
|
236 |
@cd src/producers/cpp && $(MAKE)
|
15 |
7u83 |
237 |
|
25 |
7u83 |
238 |
install-producers:
|
|
|
239 |
@cd src/producers/c && $(MAKE) install
|
|
|
240 |
@cd src/producers/cpp && $(MAKE) install
|
15 |
7u83 |
241 |
|
|
|
242 |
|
25 |
7u83 |
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:
|
59 |
7u83 |
261 |
mkdir -p $(INSTALL_DIR)
|
37 |
7u83 |
262 |
cp -R $(BASE_DIR)/src/lib/startup $(INSTALL_DIR)/startup
|
59 |
7u83 |
263 |
mkdir -p $(INSTALL_MACHDIR)
|
25 |
7u83 |
264 |
cp -R $(BASE_DIR)/src/lib/machines/$(OSFAM)/$(BLDARCH)/startup \
|
27 |
7u83 |
265 |
$(INSTALL_MACHDIR)/startup
|
25 |
7u83 |
266 |
cp -R $(BASE_DIR)/src/lib/machines/$(OSFAM)/$(BLDARCH)/include \
|
27 |
7u83 |
267 |
$(INSTALL_MACHDIR)/include
|
25 |
7u83 |
268 |
|
|
|
269 |
install-apis:
|
87 |
7u83 |
270 |
# Install API source files by generating them with tspec
|
59 |
7u83 |
271 |
mkdir -p $(INSTALL_DIR)/src
|
|
|
272 |
mkdir -p $(INSTALL_DIR)/include
|
|
|
273 |
mkdir -p $(INSTALL_DIR)/lib
|
25 |
7u83 |
274 |
for API in `cat $(BASE_DIR)/src/build/APIS` ; do \
|
|
|
275 |
echo Installing API $${API} ... ; \
|
37 |
7u83 |
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} ; \
|
25 |
7u83 |
278 |
echo all done $${TSPEC_INPUT};\
|
|
|
279 |
done
|
|
|
280 |
|
87 |
7u83 |
281 |
build-apilibs:
|
|
|
282 |
# Compile the API libraries
|
25 |
7u83 |
283 |
for API in `cat $(BASE_DIR)/src/build/APIS` ; do \
|
|
|
284 |
echo Compiling lib $${API} ... ; \
|
37 |
7u83 |
285 |
cd $(INSTALL_DIR)/src/$${API}.api || exit 1 ;\
|
25 |
7u83 |
286 |
if [ -f ${INSTALL_STARTUPDIR}/$${API}.h ] ; then \
|
37 |
7u83 |
287 |
$(MAKE) "TCC=$(TCC) -yTENDRA_BASEDIR=$(INSTALL_DIR) -Y$(INSTALL_ENVDIR)/default -Y32bit" TLD=$(INSTALL_BINDIR)/tld || exit 1;\
|
25 |
7u83 |
288 |
$(MAKE) PREFIX=$(INSTALL_DIR) install ;\
|
|
|
289 |
else \
|
|
|
290 |
echo Skipped ; \
|
|
|
291 |
fi ;\
|
|
|
292 |
done
|
|
|
293 |
|
37 |
7u83 |
294 |
install-syslibs:
|
|
|
295 |
cd $(BASE_DIR)/src/lib/machines/$(OSFAM)/$(BLDARCH)/tokens && \
|
100 |
7u83 |
296 |
$(MAKE) "TCC=$(TCC) -yTENDRA_BASEDIR=$(INSTALL_DIR) -Y$(INSTALL_ENVDIR)/default -Y32bit" TLD=$(INSTALL_BINDIR)/tld TPL=$(INSTALL_BINDIR)/tpl install
|
25 |
7u83 |
297 |
|
|
|
298 |
libs:
|
|
|
299 |
|
|
|
300 |
|
|
|
301 |
#${PUBLIC_BIN}/tspec -w -v ${API} ; \
|
|
|
302 |
|
|
|
303 |
|
15 |
7u83 |
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 |
|