File:  [ELWIX - Embedded LightWeight unIX -] / elwix / Attic / build_cross.sh
Revision 1.2: download - view: text, annotated - select for diffs - revision graph
Tue Oct 18 09:02:05 2011 UTC (12 years, 7 months ago) by misho
Branches: MAIN
CVS tags: elwix1_5, HEAD
ver 1.5

#!/bin/sh
#
# ELWIX build script for cross
#
# (C) AITNET ltd - Sofia/Bulgaria <office@aitnet.org>
#    by Michael Pounov <misho@elwix.org>
#
# $Id: build_cross.sh,v 1.2 2011/10/18 09:02:05 misho Exp $
#

[ -r ./config/rc.elwix ] && . ./config/rc.elwix
if [ X"${ELWIX_IS_CONFIGURED}" != X"YES" ]; then
	echo
	echo "ELWIX project is not configured !?!"
	echo
	exit 1
fi

if [ ! -d $BSDSRC ]; then
	echo
	echo "ELWIX project is not configured - missing BSD sources !?!"
	echo
	exit 1
fi

if [ ! -d $DEST ]; then
	echo
	echo "ELWIX project is not configured - missing Dest directory !?!"
	echo
	exit 1
fi

clean_cross()
{
	echo "+++ Clean ELWIX Cross script ..."
	rm -f ${CBUILD}

	rm -rf ${PKG}
	install -d ${PKG}
	install -d ${PKG}/bin
	install -d ${PKG}/etc
	install -d ${PKG}/include
	install -d ${PKG}/man
	install -d ${PKG}/lib
	install -d ${PKG}/libexec
	install -d ${PKG}/sbin
}

build_cross()
{
	echo "+++ Build ELWIX Cross script ..."
	cd $BSDSRC
	cat >${CBUILD} <<_EOF
#!/bin/sh
#
# Create auto cross build env script
#
_EOF
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		buildenvvars >> ${DEST}/cross_build.sh
	cd -
	cp ${CBUILD} ${CGBUILD}
	cat >>${CBUILD} <<_EOF
PATH=$PATH:/usr/local/bin:/usr/local/sbin
make \$*
_EOF
	cat >>${CGBUILD} <<_EOF
PATH=$PATH:/usr/local/bin:/usr/local/sbin
/usr/local/bin/gmake \$*
_EOF

	chmod +x ${CBUILD} ${CGBUILD}
	echo "Done."
}

compile_fbsdtools()
{
	echo "+++ Compile ELWIX Cross FreeBSD tools ..."

	rm -rf ${WORLD}/usr/local
	install -d ${WORLD}/usr/local
	install -d ${WORLD}/usr/local/bin
	install -d ${WORLD}/usr/local/sbin
	install -d ${WORLD}/usr/local/lib
	install -d ${WORLD}/usr/local/libdata

	cd $CROSS_FT_ATH
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		clean DESTDIR=${WORLD}
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		DESTDIR=${WORLD}
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		install DESTDIR=${WORLD}
	cd -

	cd $CROSS_FT_IPW
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		clean DESTDIR=${WORLD}
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		DESTDIR=${WORLD}
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		install DESTDIR=${WORLD}/usr/local/bin
	cd -

	cd $CROSS_FT_IWI
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		clean DESTDIR=${WORLD}
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		DESTDIR=${WORLD}
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		install DESTDIR=${WORLD}/usr/local/bin
	cd -

	cd $CROSS_FT_MWL
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		clean DESTDIR=${WORLD}
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		DESTDIR=${WORLD}
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		install DESTDIR=${WORLD}
	cd -

	cd $CROSS_FT_NET80211
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		clean DESTDIR=${WORLD}
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		DESTDIR=${WORLD}
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		install DESTDIR=${WORLD}
	cd -

	cd $CROSS_FT_VIMAGE
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		clean DESTDIR=${WORLD}
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		DESTDIR=${WORLD}
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		install DESTDIR=${WORLD}
	cd -

	echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${PKG}/elwix0.ver
}

compile_cross()
{
	echo "+++ Compile ELWIX Cross ..."
	cd $CROSS_AXL
	${AXL_CFG}
	${CBUILD} clean
	${CBUILD}
	${CBUILD} install
	cd -

	cd $CROSS_AITIO
	${AITIO_CFG}
	${CBUILD} clean
	${CBUILD}
	${CBUILD} install
	cd -

	cd $CROSS_AITCRC
	${AITCRC_CFG}
	${CBUILD} clean
	${CBUILD}
	${CBUILD} install
	cd -

	cd $CROSS_AITCFG
	${AITCFG_CFG}
	${CBUILD} clean
	${CBUILD}
	${CBUILD} install
	cd -

	cd $CROSS_AITSESS
	${AITSESS_CFG}
	${CBUILD} clean
	${CBUILD}
	${CBUILD} install
	cd -

	cd $CROSS_AITRPC
	${AITRPC_CFG}
	${CBUILD} clean
	${CBUILD}
	${CBUILD} install
	cd -

	cd $CROSS_AITSCHED
	${AITSCHED_CFG}
	${CBUILD} clean
	${CBUILD}
	${CBUILD} install
	cd -

	cd $CROSS_AITPELCO
	${AITPELCO_CFG}
	${CBUILD} clean
	${CBUILD}
	${CBUILD} install
	cd -

	cd $CROSS_AITPWD
	${AITPWD_CFG}
	${CBUILD} clean
	${CBUILD}
	${CBUILD} install
	cd -

	cd $CROSS_AITSYNC
	${AITSYNC_CFG}
	${CBUILD} clean
	${CBUILD}
	${CBUILD} install
	cd -

	cd $CROSS_AITCLI
	${AITCLI_CFG}
	${CBUILD} clean
	${CBUILD}
	${CBUILD} install
	cd -

	cd $CROSS_EMBEDTOOLS
	${EMBEDTOOLS_CFG}
	${CBUILD} clean
	${CBUILD}
	${CBUILD} install
	cd -

	cd $CROSS_ANSH
	${ANSH_CFG}
	${CBUILD} clean
	${CBUILD}
	${CBUILD} install
	cd -

	echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${PKG}/elwix.ver
}

compile_3th()
{
	echo "+++ Compile ELWIX 3th party ..."

	cd $CROSS_3TH
	./build.sh expat ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh libevent ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh lzo ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh libiconv ${CGBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh pcre ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh mini_sendmail ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh choparp ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh scan_ffs ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh pciutils ${CGBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh rsync ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh ttcp ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh ifstated ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh mpd ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh mrouted ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh igmpproxy ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh sudo ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh pwgen ${CGBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh ladvd ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh bmon ${CGBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh mtr ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh ipguard ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh ishell ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh miniupnpd ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh miniupnpc ${CGBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh iperf ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh strobe ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh smartmontools ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh conserver ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh sqlite3 ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh openvpn ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh quagga ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh coova-chilli ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh ntpd ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh iftop ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh arping ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh hping ${CGBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh trafshow ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh ipsec-tools ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh dhcp ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh dhcping ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh dhcdrop ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh spawn-fcgi ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh lighttpd ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	./build.sh php ${CBUILD} ${PKG}
	[ $? -ne 0 ] && exit 1
	cd -

	echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${PKG}/elwix1.ver
}

### main()
if ! SnitVer ${PKG}/elwix0.ver; then
	compile_fbsdtools
else
	echo "Skipped ELWIX Cross FreeBSD tools build ..."
fi

if ! SnitVer ${PKG}/elwix.ver; then
	clean_cross
	build_cross
	compile_cross
else
	echo "Skipped ELWIX Cross build ..."
fi

if ! SnitVer ${PKG}/elwix1.ver; then
	compile_3th
else
	echo "Skipped ELWIX Cross 3th party build ..."
fi

echo "+++ Complete build ELWIX Cross"

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>