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