Annotation of elwix/build_tools.sh, revision 1.6.6.2
1.2 misho 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: #
1.6.6.2 ! misho 8: # $Id: build_tools.sh,v 1.6.6.1 2014/01/14 22:19:36 misho Exp $
1.2 misho 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:
1.6 misho 24:
1.2 misho 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:
1.6 misho 57: rm -Rf ${WORLD}/usr/pkgsrc/bootstrap/work
1.2 misho 58: rm -f /elwix ${WORLD}/usr/pkgsrc
1.6 misho 59: rm -Rf ${WORLD}/elwix
1.2 misho 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:
1.6 misho 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:
1.2 misho 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
1.6 misho 88: ./cleanup --prefix /elwix/pkg --pkgdbdir /elwix/pkg/db
1.2 misho 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:
1.3 misho 121: cd $CROSS_FT_VIMAGE
1.2 misho 122: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 123: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} clean
1.2 misho 124: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 125: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD}
1.2 misho 126: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 127: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} install
1.2 misho 128: cd -
129:
1.3 misho 130: cd $CROSS_FT_ATH
1.2 misho 131: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 132: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} clean
1.2 misho 133: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 134: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD}
1.2 misho 135: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 136: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} install
1.2 misho 137: cd -
138:
1.3 misho 139: cd $CROSS_FT_IPW
1.2 misho 140: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 141: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} clean
1.2 misho 142: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 143: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD}
1.2 misho 144: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 145: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD}/usr/local/bin install
1.2 misho 146: cd -
147:
1.3 misho 148: cd $CROSS_FT_IWI
1.2 misho 149: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 150: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} clean
1.2 misho 151: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 152: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD}
1.2 misho 153: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 154: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD}/usr/local/bin install
1.2 misho 155: cd -
156:
1.3 misho 157: cd $CROSS_FT_MWL
1.2 misho 158: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 159: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} clean
1.2 misho 160: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 161: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD}
1.2 misho 162: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 163: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} install
1.2 misho 164: cd -
165:
1.6 misho 166: # cd $CROSS_FT_NET80211
167: # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 168: # __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} clean
1.6 misho 169: # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 170: # __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD}
1.6 misho 171: # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 172: # __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} install
1.6 misho 173: # cd -
1.2 misho 174:
175: # cd $CROSS_FT_WTAP
176: # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 177: # __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} clean
1.2 misho 178: # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 179: # __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD}
1.2 misho 180: # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 181: # __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} install
1.2 misho 182: # cd -
183: }
184:
185: compile_files()
186: {
187: cd files
1.6.6.1 misho 188: env MAKEOBJDIRPREFIX=${BSDOBJ} make \
189: TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 190: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} clean
1.6.6.1 misho 191: env MAKEOBJDIRPREFIX=${BSDOBJ} make \
192: TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 193: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} obj
1.6.6.1 misho 194: env MAKEOBJDIRPREFIX=${BSDOBJ} make \
195: TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 196: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} depend
1.6.6.1 misho 197: env MAKEOBJDIRPREFIX=${BSDOBJ} make \
198: TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 199: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD}
1.6.6.1 misho 200: env MAKEOBJDIRPREFIX=${BSDOBJ} make \
201: TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
1.6.6.2 ! misho 202: __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} install
1.2 misho 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:
1.3 misho 219: cd $CROSS_ELWIX
220: ${ELWIX_CFG}
1.2 misho 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:
1.6 misho 240: cd $CROSS_AITSCHED
241: ${AITSCHED_CFG}
1.2 misho 242: ${CBUILD} clean
243: ${CBUILD}
244: ${CBUILD} install
245: cd -
246:
1.6 misho 247: cd $CROSS_AITRPC
248: ${AITRPC_CFG}
1.2 misho 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:
1.6 misho 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 -
1.2 misho 349: }
350:
351: ### main()
352: if ! SnitVer ${WORLD}/elwix/elwix.ver; then
1.6 misho 353: compile_deps || exit 1
1.6.6.1 misho 354: # clean_bootstrap
355: # compile_bootstrap || exit 1
1.6 misho 356:
357: echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/elwix/elwix.ver
1.2 misho 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
1.6 misho 367: build_tools
368:
369: echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/usr/local/elwix.ver
1.2 misho 370: else
371: echo "Skipped ELWIX tools build ..."
372: fi
373:
374: echo "+++ Complete build ELWIX tools"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>