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.4 2012/02/15 15:27:07 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: # cd $CROSS_FT_WTAP
146: # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
147: # clean DESTDIR=${WORLD}
148: # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
149: # DESTDIR=${WORLD}
150: # env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
151: # install DESTDIR=${WORLD}
152: # cd -
153:
154: echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${PKG}/elwix0.ver
155: }
156:
157: compile_cross()
158: {
159: echo "+++ Compile ELWIX Cross ..."
160: cd $CROSS_AXL
161: ${AXL_CFG}
162: ${CBUILD} clean
163: ${CBUILD}
164: ${CBUILD} install
165: cd -
166:
167: cd $CROSS_AITIO
168: ${AITIO_CFG}
169: ${CBUILD} clean
170: ${CBUILD}
171: ${CBUILD} install
172: cd -
173:
174: cd $CROSS_AITCRC
175: ${AITCRC_CFG}
176: ${CBUILD} clean
177: ${CBUILD}
178: ${CBUILD} install
179: cd -
180:
181: cd $CROSS_AITCFG
182: ${AITCFG_CFG}
183: ${CBUILD} clean
184: ${CBUILD}
185: ${CBUILD} install
186: cd -
187:
188: cd $CROSS_AITSESS
189: ${AITSESS_CFG}
190: ${CBUILD} clean
191: ${CBUILD}
192: ${CBUILD} install
193: cd -
194:
195: cd $CROSS_AITRPC
196: ${AITRPC_CFG}
197: ${CBUILD} clean
198: ${CBUILD}
199: ${CBUILD} install
200: cd -
201:
202: cd $CROSS_AITSCHED
203: ${AITSCHED_CFG}
204: ${CBUILD} clean
205: ${CBUILD}
206: ${CBUILD} install
207: cd -
208:
209: cd $CROSS_AITPELCO
210: ${AITPELCO_CFG}
211: ${CBUILD} clean
212: ${CBUILD}
213: ${CBUILD} install
214: cd -
215:
216: cd $CROSS_AITPWD
217: ${AITPWD_CFG}
218: ${CBUILD} clean
219: ${CBUILD}
220: ${CBUILD} install
221: cd -
222:
223: cd $CROSS_AITSYNC
224: ${AITSYNC_CFG}
225: ${CBUILD} clean
226: ${CBUILD}
227: ${CBUILD} install
228: cd -
229:
230: cd $CROSS_AITCLI
231: ${AITCLI_CFG}
232: ${CBUILD} clean
233: ${CBUILD}
234: ${CBUILD} install
235: cd -
236:
237: cd $CROSS_AITMQTT
238: ${AITMQTT_CFG}
239: ${CBUILD} clean
240: ${CBUILD}
241: ${CBUILD} install
242: cd -
243:
244: cd $CROSS_EMBEDTOOLS
245: ${EMBEDTOOLS_CFG}
246: ${CBUILD} clean
247: ${CBUILD}
248: ${CBUILD} install
249: cd -
250:
251: cd $CROSS_ANSH
252: ${ANSH_CFG}
253: ${CBUILD} clean
254: ${CBUILD}
255: ${CBUILD} install
256: cd -
257:
258: echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${PKG}/elwix.ver
259: }
260:
261: compile_3th()
262: {
263: echo "+++ Compile ELWIX 3th party ..."
264:
265: cd $CROSS_3TH
266: ./build.sh expat ${CBUILD} ${PKG} ${TARGET_BUILD}
267: [ $? -ne 0 ] && exit 1
268: ./build.sh libevent ${CBUILD} ${PKG} ${TARGET_BUILD}
269: [ $? -ne 0 ] && exit 1
270: ./build.sh libiconv ${CGBUILD} ${PKG} ${TARGET_BUILD}
271: [ $? -ne 0 ] && exit 1
272: ./build.sh pcre ${CBUILD} ${PKG} ${TARGET_BUILD}
273: [ $? -ne 0 ] && exit 1
274: ./build.sh mini_sendmail ${CBUILD} ${PKG} ${TARGET_BUILD}
275: [ $? -ne 0 ] && exit 1
276: ./build.sh choparp ${CBUILD} ${PKG} ${TARGET_BUILD}
277: [ $? -ne 0 ] && exit 1
278: ./build.sh scan_ffs ${CBUILD} ${PKG} ${TARGET_BUILD}
279: [ $? -ne 0 ] && exit 1
280: ./build.sh pciutils ${CGBUILD} ${PKG} ${TARGET_BUILD}
281: [ $? -ne 0 ] && exit 1
282: ./build.sh istgt ${CBUILD} ${PKG} ${TARGET_BUILD}
283: [ $? -ne 0 ] && exit 1
284: ./build.sh rsync ${CBUILD} ${PKG} ${TARGET_BUILD}
285: [ $? -ne 0 ] && exit 1
286: ./build.sh ttcp ${CBUILD} ${PKG} ${TARGET_BUILD}
287: [ $? -ne 0 ] && exit 1
288: ./build.sh ifstated ${CBUILD} ${PKG} ${TARGET_BUILD}
289: [ $? -ne 0 ] && exit 1
290: ./build.sh mpd ${CBUILD} ${PKG} ${TARGET_BUILD}
291: [ $? -ne 0 ] && exit 1
292: ./build.sh igmpproxy ${CBUILD} ${PKG} ${TARGET_BUILD}
293: [ $? -ne 0 ] && exit 1
294: ./build.sh sudo ${CBUILD} ${PKG} ${TARGET_BUILD}
295: [ $? -ne 0 ] && exit 1
296: ./build.sh bmon ${CGBUILD} ${PKG} ${TARGET_BUILD}
297: [ $? -ne 0 ] && exit 1
298: ./build.sh mtr ${CBUILD} ${PKG} ${TARGET_BUILD}
299: [ $? -ne 0 ] && exit 1
300: ./build.sh ipguard ${CBUILD} ${PKG} ${TARGET_BUILD}
301: [ $? -ne 0 ] && exit 1
302: ./build.sh iperf ${CBUILD} ${PKG} ${TARGET_BUILD}
303: [ $? -ne 0 ] && exit 1
304: ./build.sh smartmontools ${CBUILD} ${PKG} ${TARGET_BUILD}
305: [ $? -ne 0 ] && exit 1
306: ./build.sh sqlite3 ${CBUILD} ${PKG} ${TARGET_BUILD}
307: [ $? -ne 0 ] && exit 1
308: ./build.sh quagga ${CBUILD} ${PKG} ${TARGET_BUILD}
309: [ $? -ne 0 ] && exit 1
310: ./build.sh coova-chilli ${CBUILD} ${PKG} ${TARGET_BUILD}
311: [ $? -ne 0 ] && exit 1
312: ./build.sh iftop ${CBUILD} ${PKG} ${TARGET_BUILD}
313: [ $? -ne 0 ] && exit 1
314: ./build.sh arping ${CBUILD} ${PKG} ${TARGET_BUILD}
315: [ $? -ne 0 ] && exit 1
316: ./build.sh hping ${CGBUILD} ${PKG} ${TARGET_BUILD}
317: [ $? -ne 0 ] && exit 1
318: ./build.sh trafshow ${CBUILD} ${PKG} ${TARGET_BUILD}
319: [ $? -ne 0 ] && exit 1
320: ./build.sh ipsec-tools ${CBUILD} ${PKG} ${TARGET_BUILD}
321: [ $? -ne 0 ] && exit 1
322: ./build.sh dhcp ${CBUILD} ${PKG} ${TARGET_BUILD}
323: [ $? -ne 0 ] && exit 1
324: ./build.sh dhcdrop ${CBUILD} ${PKG} ${TARGET_BUILD}
325: [ $? -ne 0 ] && exit 1
326: ./build.sh spawn-fcgi ${CBUILD} ${PKG} ${TARGET_BUILD}
327: [ $? -ne 0 ] && exit 1
328: ./build.sh lighttpd ${CBUILD} ${PKG} ${TARGET_BUILD}
329: [ $? -ne 0 ] && exit 1
330: ./build.sh php ${CBUILD} ${PKG} ${TARGET_BUILD}
331: [ $? -ne 0 ] && exit 1
332: cd -
333:
334: echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${PKG}/elwix1.ver
335: }
336:
337: ### main()
338: if ! SnitVer ${PKG}/elwix0.ver; then
339: compile_fbsdtools
340: else
341: echo "Skipped ELWIX Cross FreeBSD tools build ..."
342: fi
343:
344: if ! SnitVer ${PKG}/elwix.ver; then
345: clean_cross
346: build_cross
347: compile_cross
348: else
349: echo "Skipped ELWIX Cross build ..."
350: fi
351:
352: if ! SnitVer ${PKG}/elwix1.ver; then
353: compile_3th
354: else
355: echo "Skipped ELWIX Cross 3th party build ..."
356: fi
357:
358: echo "+++ Complete build ELWIX Cross"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>