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.1.1.1.2.6 2011/07/20 14:28:34 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 >> ${DEST}/cross_build.sh
61: cd -
62: cp ${CBUILD} ${CGBUILD}
63: cat >>${CBUILD} <<_EOF
64: PATH=$PATH:/usr/local/bin:/usr/local/sbin
65: make \$*
66: _EOF
67: cat >>${CGBUILD} <<_EOF
68: PATH=$PATH:/usr/local/bin:/usr/local/sbin
69: /usr/local/bin/gmake \$*
70: _EOF
71:
72: chmod +x ${CBUILD} ${CGBUILD}
73: echo "Done."
74: }
75:
76: compile_fbsdtools()
77: {
78: echo "+++ Compile ELWIX Cross FreeBSD tools ..."
79:
80: rm -rf ${WORLD}/usr/local
81: install -d ${WORLD}/usr/local
82: install -d ${WORLD}/usr/local/bin
83: install -d ${WORLD}/usr/local/sbin
84:
85: cd $CROSS_FT_ATH
86: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
87: clean DESTDIR=${WORLD}
88: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
89: DESTDIR=${WORLD}
90: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
91: install DESTDIR=${WORLD}
92: cd -
93:
94: cd $CROSS_FT_IPW
95: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
96: clean DESTDIR=${WORLD}
97: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
98: DESTDIR=${WORLD}
99: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
100: install DESTDIR=${WORLD}/usr/local/bin
101: cd -
102:
103: cd $CROSS_FT_IWI
104: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
105: clean DESTDIR=${WORLD}
106: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
107: DESTDIR=${WORLD}
108: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
109: install DESTDIR=${WORLD}/usr/local/bin
110: cd -
111:
112: cd $CROSS_FT_MWL
113: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
114: clean DESTDIR=${WORLD}
115: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
116: DESTDIR=${WORLD}
117: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
118: install DESTDIR=${WORLD}
119: cd -
120:
121: cd $CROSS_FT_NET80211
122: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
123: clean DESTDIR=${WORLD}
124: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
125: DESTDIR=${WORLD}
126: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
127: install DESTDIR=${WORLD}
128: cd -
129:
130: cd $CROSS_FT_VIMAGE
131: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
132: clean DESTDIR=${WORLD}
133: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
134: DESTDIR=${WORLD}
135: env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
136: install DESTDIR=${WORLD}
137: cd -
138:
139: echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${PKG}/elwix0.ver
140: }
141:
142: compile_cross()
143: {
144: echo "+++ Compile ELWIX Cross ..."
145: cd $CROSS_AXL
146: ${AXL_CFG}
147: ${CBUILD} clean
148: ${CBUILD}
149: ${CBUILD} install
150: cd -
151:
152: cd $CROSS_AITIO
153: ${AITIO_CFG}
154: ${CBUILD} clean
155: ${CBUILD}
156: ${CBUILD} install
157: cd -
158:
159: cd $CROSS_AITCRC
160: ${AITCRC_CFG}
161: ${CBUILD} clean
162: ${CBUILD}
163: ${CBUILD} install
164: cd -
165:
166: cd $CROSS_AITCFG
167: ${AITCFG_CFG}
168: ${CBUILD} clean
169: ${CBUILD}
170: ${CBUILD} install
171: cd -
172:
173: cd $CROSS_AITSESS
174: ${AITSESS_CFG}
175: ${CBUILD} clean
176: ${CBUILD}
177: ${CBUILD} install
178: cd -
179:
180: cd $CROSS_AITRPC
181: ${AITRPC_CFG}
182: ${CBUILD} clean
183: ${CBUILD}
184: ${CBUILD} install
185: cd -
186:
187: cd $CROSS_AITPELCO
188: ${AITPELCO_CFG}
189: ${CBUILD} clean
190: ${CBUILD}
191: ${CBUILD} install
192: cd -
193:
194: cd $CROSS_AITPWD
195: ${AITPWD_CFG}
196: ${CBUILD} clean
197: ${CBUILD}
198: ${CBUILD} install
199: cd -
200:
201: cd $CROSS_AITSYNC
202: ${AITSYNC_CFG}
203: ${CBUILD} clean
204: ${CBUILD}
205: ${CBUILD} install
206: cd -
207:
208: cd $CROSS_AITCLI
209: ${AITCLI_CFG}
210: ${CBUILD} clean
211: ${CBUILD}
212: ${CBUILD} install
213: cd -
214:
215: cd $CROSS_EMBEDTOOLS
216: ${EMBEDTOOLS_CFG}
217: ${CBUILD} clean
218: ${CBUILD}
219: ${CBUILD} install
220: cd -
221:
222: echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${PKG}/elwix.ver
223: }
224:
225: compile_3th()
226: {
227: echo "+++ Compile ELWIX 3th party ..."
228:
229: cd $CROSS_3TH
230: ./build.sh expat ${CBUILD} ${PKG}
231: [ $? -ne 0 ] && exit 1
232: ./build.sh libevent ${CBUILD} ${PKG}
233: [ $? -ne 0 ] && exit 1
234: ./build.sh lzo ${CBUILD} ${PKG}
235: [ $? -ne 0 ] && exit 1
236: ./build.sh libiconv ${CGBUILD} ${PKG}
237: [ $? -ne 0 ] && exit 1
238: ./build.sh libgcrypt ${CGBUILD} ${PKG}
239: [ $? -ne 0 ] && exit 1
240: ./build.sh curl ${CBUILD} ${PKG}
241: [ $? -ne 0 ] && exit 1
242: ./build.sh pcre ${CBUILD} ${PKG}
243: [ $? -ne 0 ] && exit 1
244: ./build.sh mini_sendmail ${CBUILD} ${PKG}
245: [ $? -ne 0 ] && exit 1
246: ./build.sh choparp ${CBUILD} ${PKG}
247: [ $? -ne 0 ] && exit 1
248: ./build.sh scan_ffs ${CBUILD} ${PKG}
249: [ $? -ne 0 ] && exit 1
250: ./build.sh pciutils ${CGBUILD} ${PKG}
251: [ $? -ne 0 ] && exit 1
252: ./build.sh rsync ${CBUILD} ${PKG}
253: [ $? -ne 0 ] && exit 1
254: ./build.sh ttcp ${CBUILD} ${PKG}
255: [ $? -ne 0 ] && exit 1
256: ./build.sh ifstated ${CBUILD} ${PKG}
257: [ $? -ne 0 ] && exit 1
258: ./build.sh mpd ${CBUILD} ${PKG}
259: [ $? -ne 0 ] && exit 1
260: ./build.sh mrouted ${CBUILD} ${PKG}
261: [ $? -ne 0 ] && exit 1
262: ./build.sh igmpproxy ${CBUILD} ${PKG}
263: [ $? -ne 0 ] && exit 1
264: ./build.sh sudo ${CBUILD} ${PKG}
265: [ $? -ne 0 ] && exit 1
266: ./build.sh pwgen ${CGBUILD} ${PKG}
267: [ $? -ne 0 ] && exit 1
268: ./build.sh ladvd ${CBUILD} ${PKG}
269: [ $? -ne 0 ] && exit 1
270: ./build.sh bmon ${CGBUILD} ${PKG}
271: [ $? -ne 0 ] && exit 1
272: ./build.sh mtr ${CBUILD} ${PKG}
273: [ $? -ne 0 ] && exit 1
274: ./build.sh ipguard ${CBUILD} ${PKG}
275: [ $? -ne 0 ] && exit 1
276: ./build.sh ishell ${CBUILD} ${PKG}
277: [ $? -ne 0 ] && exit 1
278: ./build.sh miniupnpd ${CBUILD} ${PKG}
279: [ $? -ne 0 ] && exit 1
280: ./build.sh miniupnpc ${CGBUILD} ${PKG}
281: [ $? -ne 0 ] && exit 1
282: ./build.sh iperf ${CBUILD} ${PKG}
283: [ $? -ne 0 ] && exit 1
284: ./build.sh strobe ${CBUILD} ${PKG}
285: [ $? -ne 0 ] && exit 1
286: ./build.sh smartmontools ${CBUILD} ${PKG}
287: [ $? -ne 0 ] && exit 1
288: ./build.sh conserver ${CBUILD} ${PKG}
289: [ $? -ne 0 ] && exit 1
290: ./build.sh sqlite3 ${CBUILD} ${PKG}
291: [ $? -ne 0 ] && exit 1
292: ./build.sh openvpn ${CBUILD} ${PKG}
293: [ $? -ne 0 ] && exit 1
294: ./build.sh quagga ${CBUILD} ${PKG}
295: [ $? -ne 0 ] && exit 1
296: ./build.sh coova-chilli ${CBUILD} ${PKG}
297: [ $? -ne 0 ] && exit 1
298: ./build.sh ntpd ${CBUILD} ${PKG}
299: [ $? -ne 0 ] && exit 1
300: ./build.sh iftop ${CBUILD} ${PKG}
301: [ $? -ne 0 ] && exit 1
302: ./build.sh arping ${CBUILD} ${PKG}
303: [ $? -ne 0 ] && exit 1
304: ./build.sh hping2 ${CGBUILD} ${PKG}
305: [ $? -ne 0 ] && exit 1
306: ./build.sh trafshow ${CBUILD} ${PKG}
307: [ $? -ne 0 ] && exit 1
308: ./build.sh ipsec-tools ${CBUILD} ${PKG}
309: [ $? -ne 0 ] && exit 1
310: ./build.sh dhcp ${CBUILD} ${PKG}
311: [ $? -ne 0 ] && exit 1
312: ./build.sh dhcping ${CBUILD} ${PKG}
313: [ $? -ne 0 ] && exit 1
314: ./build.sh dhcdrop ${CBUILD} ${PKG}
315: [ $? -ne 0 ] && exit 1
316: ./build.sh pure-ftpd ${CBUILD} ${PKG}
317: [ $? -ne 0 ] && exit 1
318: ./build.sh spawn-fcgi ${CBUILD} ${PKG}
319: [ $? -ne 0 ] && exit 1
320: ./build.sh lighttpd ${CBUILD} ${PKG}
321: [ $? -ne 0 ] && exit 1
322: ./build.sh php ${CBUILD} ${PKG}
323: [ $? -ne 0 ] && exit 1
324: cd -
325:
326: echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${PKG}/elwix1.ver
327: }
328:
329: ### main()
330: if ! SnitVer ${PKG}/elwix0.ver; then
331: compile_fbsdtools
332: else
333: echo "Skipped ELWIX Cross FreeBSD tools build ..."
334: fi
335:
336: if ! SnitVer ${PKG}/elwix.ver; then
337: clean_cross
338: build_cross
339: compile_cross
340: else
341: echo "Skipped ELWIX Cross build ..."
342: fi
343:
344: if ! SnitVer ${PKG}/elwix1.ver; then
345: compile_3th
346: else
347: echo "Skipped ELWIX Cross 3th party build ..."
348: fi
349:
350: echo "+++ Complete build ELWIX Cross"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>