1: #!/bin/sh
2: #
3: # ELWIX build script for cross
4: #
5: # (C) AITNET ltd - Sofia/Bulgaria <office@aitnet.org>
6: # by Michael Pounov <misho@elwix.org>
7: #
8: # $Id: build_cross.sh,v 1.3.2.2 2012/01/31 13:46:32 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:
19: if [ ! -d $BSDSRC ]; then
20: echo
21: echo "ELWIX project is not configured - missing BSD sources !?!"
22: echo
23: exit 1
24: fi
25:
26: if [ ! -d $DEST ]; then
27: echo
28: echo "ELWIX project is not configured - missing Dest directory !?!"
29: echo
30: exit 1
31: fi
32:
33: clean_cross()
34: {
35: echo "+++ Clean ELWIX Cross script ..."
36: rm -f ${CBUILD}
37:
38: rm -rf ${PKG}
39: install -d ${PKG}
40: install -d ${PKG}/bin
41: install -d ${PKG}/etc
42: install -d ${PKG}/include
43: install -d ${PKG}/man
44: install -d ${PKG}/lib
45: install -d ${PKG}/libexec
46: install -d ${PKG}/sbin
47: }
48:
49: build_cross()
50: {
51: echo "+++ Build ELWIX Cross script ..."
52: cd $BSDSRC
53: cat >${CBUILD} <<_EOF
54: #!/bin/sh
55: #
56: # Create auto cross build env script
57: #
58: _EOF
59: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
60: buildenvvars >> ${CBUILD}
61: cat >>${CBUILD} <<_EOF
62: PATH=$PKG/bin:$PKG/sbin:\$PATH:$PATH
63: _EOF
64: cd -
65: cp ${CBUILD} ${CGBUILD}
66: cp ${CBUILD} ${CENV}
67: cat >>${CBUILD} <<_EOF
68: make \$*
69: _EOF
70: cat >>${CGBUILD} <<_EOF
71: /usr/local/bin/gmake \$*
72: _EOF
73: cat >>${CENV} <<_EOF
74: exec \$*
75: _EOF
76: chmod +x ${CBUILD} ${CGBUILD} ${CENV}
77: echo "Done."
78: }
79:
80: compile_fbsdtools()
81: {
82: echo "+++ Compile ELWIX Cross FreeBSD tools ..."
83:
84: rm -rf ${WORLD}/usr/local
85: install -d ${WORLD}/usr/local
86: install -d ${WORLD}/usr/local/bin
87: install -d ${WORLD}/usr/local/sbin
88: install -d ${WORLD}/usr/local/lib
89: install -d ${WORLD}/usr/local/libdata
90:
91: cd $CROSS_FT_ATH
92: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
93: clean DESTDIR=${WORLD}
94: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
95: DESTDIR=${WORLD}
96: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
97: install DESTDIR=${WORLD}
98: cd -
99:
100: cd $CROSS_FT_IPW
101: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
102: clean DESTDIR=${WORLD}
103: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
104: DESTDIR=${WORLD}
105: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
106: install DESTDIR=${WORLD}/usr/local/bin
107: cd -
108:
109: cd $CROSS_FT_IWI
110: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
111: clean DESTDIR=${WORLD}
112: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
113: DESTDIR=${WORLD}
114: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
115: install DESTDIR=${WORLD}/usr/local/bin
116: cd -
117:
118: cd $CROSS_FT_MWL
119: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
120: clean DESTDIR=${WORLD}
121: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
122: DESTDIR=${WORLD}
123: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
124: install DESTDIR=${WORLD}
125: cd -
126:
127: cd $CROSS_FT_NET80211
128: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
129: clean DESTDIR=${WORLD}
130: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
131: DESTDIR=${WORLD}
132: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
133: install DESTDIR=${WORLD}
134: cd -
135:
136: cd $CROSS_FT_VIMAGE
137: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
138: clean DESTDIR=${WORLD}
139: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
140: DESTDIR=${WORLD}
141: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
142: install DESTDIR=${WORLD}
143: cd -
144:
145: echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${PKG}/elwix0.ver
146: }
147:
148: compile_cross()
149: {
150: echo "+++ Compile ELWIX Cross ..."
151: cd $CROSS_AXL
152: ${AXL_CFG}
153: ${CBUILD} clean
154: ${CBUILD}
155: ${CBUILD} install
156: cd -
157:
158: cd $CROSS_AITIO
159: ${AITIO_CFG}
160: ${CBUILD} clean
161: ${CBUILD}
162: ${CBUILD} install
163: cd -
164:
165: cd $CROSS_AITCRC
166: ${AITCRC_CFG}
167: ${CBUILD} clean
168: ${CBUILD}
169: ${CBUILD} install
170: cd -
171:
172: cd $CROSS_AITCFG
173: ${AITCFG_CFG}
174: ${CBUILD} clean
175: ${CBUILD}
176: ${CBUILD} install
177: cd -
178:
179: cd $CROSS_AITSESS
180: ${AITSESS_CFG}
181: ${CBUILD} clean
182: ${CBUILD}
183: ${CBUILD} install
184: cd -
185:
186: cd $CROSS_AITRPC
187: ${AITRPC_CFG}
188: ${CBUILD} clean
189: ${CBUILD}
190: ${CBUILD} install
191: cd -
192:
193: cd $CROSS_AITSCHED
194: ${AITSCHED_CFG}
195: ${CBUILD} clean
196: ${CBUILD}
197: ${CBUILD} install
198: cd -
199:
200: cd $CROSS_AITPELCO
201: ${AITPELCO_CFG}
202: ${CBUILD} clean
203: ${CBUILD}
204: ${CBUILD} install
205: cd -
206:
207: cd $CROSS_AITPWD
208: ${AITPWD_CFG}
209: ${CBUILD} clean
210: ${CBUILD}
211: ${CBUILD} install
212: cd -
213:
214: cd $CROSS_AITSYNC
215: ${AITSYNC_CFG}
216: ${CBUILD} clean
217: ${CBUILD}
218: ${CBUILD} install
219: cd -
220:
221: cd $CROSS_AITCLI
222: ${AITCLI_CFG}
223: ${CBUILD} clean
224: ${CBUILD}
225: ${CBUILD} install
226: cd -
227:
228: cd $CROSS_AITMQTT
229: ${AITMQTT_CFG}
230: ${CBUILD} clean
231: ${CBUILD}
232: ${CBUILD} install
233: cd -
234:
235: cd $CROSS_EMBEDTOOLS
236: ${EMBEDTOOLS_CFG}
237: ${CBUILD} clean
238: ${CBUILD}
239: ${CBUILD} install
240: cd -
241:
242: cd $CROSS_ANSH
243: ${ANSH_CFG}
244: ${CBUILD} clean
245: ${CBUILD}
246: ${CBUILD} install
247: cd -
248:
249: echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${PKG}/elwix.ver
250: }
251:
252: compile_3th()
253: {
254: echo "+++ Compile ELWIX 3th party ..."
255:
256: cd $CROSS_3TH
257: ./build.sh expat ${CBUILD} ${PKG} ${TARGET_BUILD}
258: [ $? -ne 0 ] && exit 1
259: ./build.sh libevent ${CBUILD} ${PKG} ${TARGET_BUILD}
260: [ $? -ne 0 ] && exit 1
261: ./build.sh libiconv ${CGBUILD} ${PKG} ${TARGET_BUILD}
262: [ $? -ne 0 ] && exit 1
263: ./build.sh pcre ${CBUILD} ${PKG} ${TARGET_BUILD}
264: [ $? -ne 0 ] && exit 1
265: ./build.sh mini_sendmail ${CBUILD} ${PKG} ${TARGET_BUILD}
266: [ $? -ne 0 ] && exit 1
267: ./build.sh choparp ${CBUILD} ${PKG} ${TARGET_BUILD}
268: [ $? -ne 0 ] && exit 1
269: ./build.sh scan_ffs ${CBUILD} ${PKG} ${TARGET_BUILD}
270: [ $? -ne 0 ] && exit 1
271: ./build.sh pciutils ${CGBUILD} ${PKG} ${TARGET_BUILD}
272: [ $? -ne 0 ] && exit 1
273: ./build.sh istgt ${CBUILD} ${PKG} ${TARGET_BUILD}
274: [ $? -ne 0 ] && exit 1
275: ./build.sh rsync ${CBUILD} ${PKG} ${TARGET_BUILD}
276: [ $? -ne 0 ] && exit 1
277: ./build.sh ttcp ${CBUILD} ${PKG} ${TARGET_BUILD}
278: [ $? -ne 0 ] && exit 1
279: ./build.sh ifstated ${CBUILD} ${PKG} ${TARGET_BUILD}
280: [ $? -ne 0 ] && exit 1
281: ./build.sh mpd ${CBUILD} ${PKG} ${TARGET_BUILD}
282: [ $? -ne 0 ] && exit 1
283: ./build.sh igmpproxy ${CBUILD} ${PKG} ${TARGET_BUILD}
284: [ $? -ne 0 ] && exit 1
285: ./build.sh sudo ${CBUILD} ${PKG} ${TARGET_BUILD}
286: [ $? -ne 0 ] && exit 1
287: ./build.sh bmon ${CGBUILD} ${PKG} ${TARGET_BUILD}
288: [ $? -ne 0 ] && exit 1
289: ./build.sh mtr ${CBUILD} ${PKG} ${TARGET_BUILD}
290: [ $? -ne 0 ] && exit 1
291: ./build.sh ipguard ${CBUILD} ${PKG} ${TARGET_BUILD}
292: [ $? -ne 0 ] && exit 1
293: ./build.sh iperf ${CBUILD} ${PKG} ${TARGET_BUILD}
294: [ $? -ne 0 ] && exit 1
295: ./build.sh smartmontools ${CBUILD} ${PKG} ${TARGET_BUILD}
296: [ $? -ne 0 ] && exit 1
297: ./build.sh sqlite3 ${CBUILD} ${PKG} ${TARGET_BUILD}
298: [ $? -ne 0 ] && exit 1
299: ./build.sh quagga ${CBUILD} ${PKG} ${TARGET_BUILD}
300: [ $? -ne 0 ] && exit 1
301: ./build.sh coova-chilli ${CBUILD} ${PKG} ${TARGET_BUILD}
302: [ $? -ne 0 ] && exit 1
303: ./build.sh ntpd ${CBUILD} ${PKG} ${TARGET_BUILD}
304: [ $? -ne 0 ] && exit 1
305: ./build.sh iftop ${CBUILD} ${PKG} ${TARGET_BUILD}
306: [ $? -ne 0 ] && exit 1
307: ./build.sh arping ${CBUILD} ${PKG} ${TARGET_BUILD}
308: [ $? -ne 0 ] && exit 1
309: ./build.sh hping ${CGBUILD} ${PKG} ${TARGET_BUILD}
310: [ $? -ne 0 ] && exit 1
311: ./build.sh trafshow ${CBUILD} ${PKG} ${TARGET_BUILD}
312: [ $? -ne 0 ] && exit 1
313: ./build.sh ipsec-tools ${CBUILD} ${PKG} ${TARGET_BUILD}
314: [ $? -ne 0 ] && exit 1
315: ./build.sh dhcp ${CBUILD} ${PKG} ${TARGET_BUILD}
316: [ $? -ne 0 ] && exit 1
317: ./build.sh dhcdrop ${CBUILD} ${PKG} ${TARGET_BUILD}
318: [ $? -ne 0 ] && exit 1
319: ./build.sh spawn-fcgi ${CBUILD} ${PKG} ${TARGET_BUILD}
320: [ $? -ne 0 ] && exit 1
321: ./build.sh lighttpd ${CBUILD} ${PKG} ${TARGET_BUILD}
322: [ $? -ne 0 ] && exit 1
323: ./build.sh php ${CBUILD} ${PKG} ${TARGET_BUILD}
324: [ $? -ne 0 ] && exit 1
325: cd -
326:
327: echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${PKG}/elwix1.ver
328: }
329:
330: ### main()
331: if ! SnitVer ${PKG}/elwix0.ver; then
332: compile_fbsdtools
333: else
334: echo "Skipped ELWIX Cross FreeBSD tools build ..."
335: fi
336:
337: if ! SnitVer ${PKG}/elwix.ver; then
338: clean_cross
339: build_cross
340: compile_cross
341: else
342: echo "Skipped ELWIX Cross build ..."
343: fi
344:
345: if ! SnitVer ${PKG}/elwix1.ver; then
346: compile_3th
347: else
348: echo "Skipped ELWIX Cross 3th party build ..."
349: fi
350:
351: echo "+++ Complete build ELWIX Cross"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>