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 2011/11/02 09:51: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_EMBEDTOOLS
229: ${EMBEDTOOLS_CFG}
230: ${CBUILD} clean
231: ${CBUILD}
232: ${CBUILD} install
233: cd -
234:
235: cd $CROSS_ANSH
236: ${ANSH_CFG}
237: ${CBUILD} clean
238: ${CBUILD}
239: ${CBUILD} install
240: cd -
241:
242: echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${PKG}/elwix.ver
243: }
244:
245: compile_3th()
246: {
247: echo "+++ Compile ELWIX 3th party ..."
248:
249: cd $CROSS_3TH
250: ./build.sh expat ${CBUILD} ${PKG} ${TARGET_BUILD}
251: [ $? -ne 0 ] && exit 1
252: ./build.sh libevent ${CBUILD} ${PKG} ${TARGET_BUILD}
253: [ $? -ne 0 ] && exit 1
254: ./build.sh libiconv ${CGBUILD} ${PKG} ${TARGET_BUILD}
255: [ $? -ne 0 ] && exit 1
256: ./build.sh pcre ${CBUILD} ${PKG} ${TARGET_BUILD}
257: [ $? -ne 0 ] && exit 1
258: ./build.sh mini_sendmail ${CBUILD} ${PKG} ${TARGET_BUILD}
259: [ $? -ne 0 ] && exit 1
260: ./build.sh choparp ${CBUILD} ${PKG} ${TARGET_BUILD}
261: [ $? -ne 0 ] && exit 1
262: ./build.sh scan_ffs ${CBUILD} ${PKG} ${TARGET_BUILD}
263: [ $? -ne 0 ] && exit 1
264: ./build.sh pciutils ${CGBUILD} ${PKG} ${TARGET_BUILD}
265: [ $? -ne 0 ] && exit 1
266: ./build.sh rsync ${CBUILD} ${PKG} ${TARGET_BUILD}
267: [ $? -ne 0 ] && exit 1
268: ./build.sh ttcp ${CBUILD} ${PKG} ${TARGET_BUILD}
269: [ $? -ne 0 ] && exit 1
270: ./build.sh ifstated ${CBUILD} ${PKG} ${TARGET_BUILD}
271: [ $? -ne 0 ] && exit 1
272: ./build.sh mpd ${CBUILD} ${PKG} ${TARGET_BUILD}
273: [ $? -ne 0 ] && exit 1
274: ./build.sh igmpproxy ${CBUILD} ${PKG} ${TARGET_BUILD}
275: [ $? -ne 0 ] && exit 1
276: ./build.sh sudo ${CBUILD} ${PKG} ${TARGET_BUILD}
277: [ $? -ne 0 ] && exit 1
278: ./build.sh bmon ${CGBUILD} ${PKG} ${TARGET_BUILD}
279: [ $? -ne 0 ] && exit 1
280: ./build.sh mtr ${CBUILD} ${PKG} ${TARGET_BUILD}
281: [ $? -ne 0 ] && exit 1
282: ./build.sh ipguard ${CBUILD} ${PKG} ${TARGET_BUILD}
283: [ $? -ne 0 ] && exit 1
284: ./build.sh iperf ${CBUILD} ${PKG} ${TARGET_BUILD}
285: [ $? -ne 0 ] && exit 1
286: ./build.sh smartmontools ${CBUILD} ${PKG} ${TARGET_BUILD}
287: [ $? -ne 0 ] && exit 1
288: ./build.sh sqlite3 ${CBUILD} ${PKG} ${TARGET_BUILD}
289: [ $? -ne 0 ] && exit 1
290: ./build.sh quagga ${CBUILD} ${PKG} ${TARGET_BUILD}
291: [ $? -ne 0 ] && exit 1
292: ./build.sh coova-chilli ${CBUILD} ${PKG} ${TARGET_BUILD}
293: [ $? -ne 0 ] && exit 1
294: ./build.sh ntpd ${CBUILD} ${PKG} ${TARGET_BUILD}
295: [ $? -ne 0 ] && exit 1
296: ./build.sh iftop ${CBUILD} ${PKG} ${TARGET_BUILD}
297: [ $? -ne 0 ] && exit 1
298: ./build.sh arping ${CBUILD} ${PKG} ${TARGET_BUILD}
299: [ $? -ne 0 ] && exit 1
300: ./build.sh hping ${CGBUILD} ${PKG} ${TARGET_BUILD}
301: [ $? -ne 0 ] && exit 1
302: ./build.sh trafshow ${CBUILD} ${PKG} ${TARGET_BUILD}
303: [ $? -ne 0 ] && exit 1
304: ./build.sh ipsec-tools ${CBUILD} ${PKG} ${TARGET_BUILD}
305: [ $? -ne 0 ] && exit 1
306: ./build.sh dhcp ${CBUILD} ${PKG} ${TARGET_BUILD}
307: [ $? -ne 0 ] && exit 1
308: ./build.sh dhcdrop ${CBUILD} ${PKG} ${TARGET_BUILD}
309: [ $? -ne 0 ] && exit 1
310: ./build.sh spawn-fcgi ${CBUILD} ${PKG} ${TARGET_BUILD}
311: [ $? -ne 0 ] && exit 1
312: ./build.sh lighttpd ${CBUILD} ${PKG} ${TARGET_BUILD}
313: [ $? -ne 0 ] && exit 1
314: ./build.sh php ${CBUILD} ${PKG} ${TARGET_BUILD}
315: [ $? -ne 0 ] && exit 1
316: cd -
317:
318: echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${PKG}/elwix1.ver
319: }
320:
321: ### main()
322: if ! SnitVer ${PKG}/elwix0.ver; then
323: compile_fbsdtools
324: else
325: echo "Skipped ELWIX Cross FreeBSD tools build ..."
326: fi
327:
328: if ! SnitVer ${PKG}/elwix.ver; then
329: clean_cross
330: build_cross
331: compile_cross
332: else
333: echo "Skipped ELWIX Cross build ..."
334: fi
335:
336: if ! SnitVer ${PKG}/elwix1.ver; then
337: compile_3th
338: else
339: echo "Skipped ELWIX Cross 3th party build ..."
340: fi
341:
342: echo "+++ Complete build ELWIX Cross"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>