1: #!/bin/sh
2: #
3: # ELWIX build script for tools
4: #
5: # (C) AITNET ltd - Sofia/Bulgaria <office@aitnet.org>
6: # by Michael Pounov <misho@elwix.org>
7: #
8: # $Id: build_tools.sh,v 1.6.6.1 2014/01/14 22:19:36 misho Exp $
9: #
10:
11: [ -r ./config/rc.elwix ] && . ./config/rc.elwix
12: if [ X"${ELWIX_IS_CONFIGURED}" != X"YES" ]; then
13: echo
14: echo "ELWIX project is not configured !?!"
15: echo
16: exit 1
17: fi
18: V=${VERSION}
19: [ -r ${CENV} ] && . ${CENV}
20: unset INSTALL
21: unset VERSION
22: VERSION="$V"
23:
24:
25: if [ ! -d $BSDSRC ]; then
26: echo
27: echo "ELWIX project is not configured - missing BSD sources !?!"
28: echo
29: exit 1
30: fi
31:
32: if [ ! -d $DEST ]; then
33: echo
34: echo "ELWIX project is not configured - missing Dest directory !?!"
35: echo
36: exit 1
37: fi
38:
39: clean_tools()
40: {
41: echo "+++ Clean ELWIX FreeBSD tools ..."
42:
43: rm -rf ${WORLD}/usr/local
44: install -d ${WORLD}/usr/local
45: install -d ${WORLD}/usr/local/bin
46: install -d ${WORLD}/usr/local/include
47: install -d ${WORLD}/usr/local/lib
48: install -d ${WORLD}/usr/local/libdata
49: install -d ${WORLD}/usr/local/sbin
50:
51: }
52:
53: clean_bootstrap()
54: {
55: echo "+++ Clean ELWIX pkgsrc bootstrap tools ..."
56:
57: rm -Rf ${WORLD}/usr/pkgsrc/bootstrap/work
58: rm -f /elwix ${WORLD}/usr/pkgsrc
59: rm -Rf ${WORLD}/elwix
60: install -d ${WORLD}/elwix
61: ln -sf ${WORLD}/elwix /elwix
62: ln -sf ${PKGSRC} ${WORLD}/usr/pkgsrc
63:
64: install -d ${PKGDIR}
65: install -d ${PKGDIR}/db
66: install -d ${PKGDIR}/etc
67: }
68:
69: compile_deps()
70: {
71: echo "+++ Compile ELWIX programs bootstrap tools ..."
72: if [ -d tools -a -f tools/Makefile ]; then
73: cd tools
74: make cleandepend
75: make clean
76: make obj
77: make
78: make install
79: cd -
80: fi
81: }
82:
83: compile_bootstrap()
84: {
85: echo "+++ Compile ELWIX pkgsrc bootstrap tools ..."
86: if [ ! -d ${WORLD}/usr/pkgsrc/bootstrap/work ]; then
87: cd ${WORLD}/usr/pkgsrc/bootstrap
88: ./cleanup --prefix /elwix/pkg --pkgdbdir /elwix/pkg/db
89: ./bootstrap --prefix /elwix/pkg --pkgdbdir /elwix/pkg/db
90: cd -
91: else
92: echo " Skip bootstrap pkgsrc - already inited pkgsrc"
93: fi
94:
95: cat >>/elwix/pkg/etc/mk.conf << _EOF
96:
97: .if defined(USE_CROSS_COMPILE) && !empty(USE_CROSS_COMPILE:M[yY][eE][sS])
98: USE_DESTDIR= yes
99: DEPENDS_TARGET= package-install
100:
101: TOOLDIR= ${CROSSTOOLDIR}
102: CROSS_DESTDIR= ${WORLD}
103:
104: TARGET= ${TARGET}
105: TARGET_ARCH= ${TARGET_ARCH}
106: MACHINE_PLATFORM= FreeBSD-${PLATFORM}-${TARGET_ARCH}
107: MACHINE_GNU_PLATFORM= ${TARGET_ARCH}-elwix-freebsd
108:
109: PKGSRC_COMPILER= gcc
110: USE_PKGSRC_GCC= no
111: USE_NATIVE_GCC= yes
112:
113: .endif # end cross-compilation settings
114: _EOF
115: }
116:
117: compile_fbsdtools()
118: {
119: echo "+++ Compile ELWIX FreeBSD tools ..."
120:
121: cd $CROSS_FT_VIMAGE
122: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
123: clean DESTDIR=${WORLD}
124: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
125: DESTDIR=${WORLD}
126: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
127: install DESTDIR=${WORLD}
128: cd -
129:
130: cd $CROSS_FT_ATH
131: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
132: clean DESTDIR=${WORLD}
133: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
134: DESTDIR=${WORLD}
135: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
136: install DESTDIR=${WORLD}
137: cd -
138:
139: cd $CROSS_FT_IPW
140: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
141: clean DESTDIR=${WORLD}
142: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
143: DESTDIR=${WORLD}
144: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
145: install DESTDIR=${WORLD}/usr/local/bin
146: cd -
147:
148: cd $CROSS_FT_IWI
149: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
150: clean DESTDIR=${WORLD}
151: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
152: DESTDIR=${WORLD}
153: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
154: install DESTDIR=${WORLD}/usr/local/bin
155: cd -
156:
157: cd $CROSS_FT_MWL
158: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
159: clean DESTDIR=${WORLD}
160: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
161: DESTDIR=${WORLD}
162: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
163: install DESTDIR=${WORLD}
164: cd -
165:
166: # cd $CROSS_FT_NET80211
167: # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
168: # clean DESTDIR=${WORLD}
169: # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
170: # DESTDIR=${WORLD}
171: # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
172: # install DESTDIR=${WORLD}
173: # cd -
174:
175: # cd $CROSS_FT_WTAP
176: # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
177: # clean DESTDIR=${WORLD}
178: # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
179: # DESTDIR=${WORLD}
180: # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
181: # install DESTDIR=${WORLD}
182: # cd -
183: }
184:
185: compile_files()
186: {
187: cd files
188: env MAKEOBJDIRPREFIX=${BSDOBJ} make \
189: TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
190: DESTDIR=${WORLD} clean
191: env MAKEOBJDIRPREFIX=${BSDOBJ} make \
192: TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
193: DESTDIR=${WORLD} obj
194: env MAKEOBJDIRPREFIX=${BSDOBJ} make \
195: TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
196: DESTDIR=${WORLD} depend
197: env MAKEOBJDIRPREFIX=${BSDOBJ} make \
198: TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
199: DESTDIR=${WORLD}
200: env MAKEOBJDIRPREFIX=${BSDOBJ} make \
201: TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
202: DESTDIR=${WORLD} install
203: cd -
204:
205: strip -s ${WORLD}/usr/bin/csh
206: }
207:
208: compile_tools()
209: {
210: echo "+++ Compile ELWIX Cross ..."
211:
212: cd $CROSS_AXL
213: ${AXL_CFG}
214: ${CBUILD} clean
215: ${CBUILD}
216: ${CBUILD} install
217: cd -
218:
219: cd $CROSS_ELWIX
220: ${ELWIX_CFG}
221: ${CBUILD} clean
222: ${CBUILD}
223: ${CBUILD} install
224: cd -
225:
226: cd $CROSS_AITIO
227: ${AITIO_CFG}
228: ${CBUILD} clean
229: ${CBUILD}
230: ${CBUILD} install
231: cd -
232:
233: cd $CROSS_AITCFG
234: ${AITCFG_CFG}
235: ${CBUILD} clean
236: ${CBUILD}
237: ${CBUILD} install
238: cd -
239:
240: cd $CROSS_AITSCHED
241: ${AITSCHED_CFG}
242: ${CBUILD} clean
243: ${CBUILD}
244: ${CBUILD} install
245: cd -
246:
247: cd $CROSS_AITRPC
248: ${AITRPC_CFG}
249: ${CBUILD} clean
250: ${CBUILD}
251: ${CBUILD} install
252: cd -
253:
254: cd $CROSS_AITWWW
255: ${AITWWW_CFG}
256: ${CBUILD} clean
257: ${CBUILD}
258: ${CBUILD} install
259: cd -
260:
261: cd $CROSS_AITPELCO
262: ${AITPELCO_CFG}
263: ${CBUILD} clean
264: ${CBUILD}
265: ${CBUILD} install
266: cd -
267:
268: cd $CROSS_AITSYNC
269: ${AITSYNC_CFG}
270: ${CBUILD} clean
271: ${CBUILD}
272: ${CBUILD} install
273: cd -
274:
275: cd $CROSS_AITCLI
276: ${AITCLI_CFG}
277: ${CBUILD} clean
278: ${CBUILD}
279: ${CBUILD} install
280: cd -
281:
282: cd $CROSS_AITMQTT
283: ${AITMQTT_CFG}
284: ${CBUILD} clean
285: ${CBUILD}
286: ${CBUILD} install
287: cd -
288:
289: cd $CROSS_EMBEDTOOLS
290: ${EMBEDTOOLS_CFG}
291: ${CBUILD} clean
292: ${CBUILD}
293: ${CBUILD} install
294: cd -
295:
296: cd $CROSS_ANSH
297: ${ANSH_CFG}
298: ${CBUILD} clean
299: ${CBUILD}
300: ${CBUILD} install
301: cd -
302:
303: cd $CROSS_MQTT
304: ${MQTT_CFG}
305: ${CBUILD} clean
306: ${CBUILD}
307: ${CBUILD} install
308: cd -
309:
310: cd $CROSS_WIFINATOR
311: ${WIFINATOR_CFG}
312: ${CBUILD} clean
313: ${CBUILD}
314: ${CBUILD} install
315: cd -
316: }
317:
318: install_tools()
319: {
320: LIBS="${ROMFS_USR2}/lib"
321: LIBEXEC="${ROMFS_USR2}/libexec"
322: BIN="${ROMFS_USR2}/bin"
323: SBIN="${ROMFS_USR2}/sbin"
324: ETC="${ROMFS_USR2}/etc"
325:
326: echo "+++ Install ELWIX RomFS secondary firmware ..."
327:
328: StripFiles \*.so\* ${PKG}/lib
329: InstallFiles \*.so\* ${PKG}/lib $LIBS
330: StripFiles \* ${PKG}/libexec
331: InstallFiles \* ${PKG}/libexec $LIBEXEC
332: StripFiles \* ${PKG}/bin
333: InstallFiles \* ${PKG}/bin $BIN
334: StripFiles \* ${PKG}/sbin
335: InstallFiles \* ${PKG}/sbin $SBIN
336:
337: InstallFiles \* ${PKG}/etc $ETC
338:
339: chown -R root:wheel $SBIN $BIN $LIBDATA $LIBEXEC $LIBS
340: }
341:
342: build_tools()
343: {
344: echo "+++ Build ELWIX core firmware image ..."
345:
346: cd ${WORLD}/usr/local
347: pax -w -z -v -f${REL}/${LOCALFS_IMG} .
348: cd -
349: }
350:
351: ### main()
352: if ! SnitVer ${WORLD}/elwix/elwix.ver; then
353: compile_deps || exit 1
354: # clean_bootstrap
355: # compile_bootstrap || exit 1
356:
357: echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/elwix/elwix.ver
358: else
359: echo "Skipped ELWIX bootstrap pkgsrc tools build ..."
360: fi
361:
362: if ! SnitVer ${WORLD}/usr/local/elwix.ver; then
363: clean_tools
364: compile_fbsdtools
365: compile_files
366: compile_tools
367: build_tools
368:
369: echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/usr/local/elwix.ver
370: else
371: echo "Skipped ELWIX tools build ..."
372: fi
373:
374: echo "+++ Complete build ELWIX tools"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>