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 |
|