#!/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.3.2.2 2012/01/31 13:46:32 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 >> ${CBUILD}
cat >>${CBUILD} <<_EOF
PATH=$PKG/bin:$PKG/sbin:\$PATH:$PATH
_EOF
cd -
cp ${CBUILD} ${CGBUILD}
cp ${CBUILD} ${CENV}
cat >>${CBUILD} <<_EOF
make \$*
_EOF
cat >>${CGBUILD} <<_EOF
/usr/local/bin/gmake \$*
_EOF
cat >>${CENV} <<_EOF
exec \$*
_EOF
chmod +x ${CBUILD} ${CGBUILD} ${CENV}
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_AITMQTT
${AITMQTT_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} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh libevent ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh libiconv ${CGBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh pcre ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh mini_sendmail ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh choparp ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh scan_ffs ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh pciutils ${CGBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh istgt ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh rsync ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh ttcp ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh ifstated ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh mpd ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh igmpproxy ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh sudo ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh bmon ${CGBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh mtr ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh ipguard ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh iperf ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh smartmontools ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh sqlite3 ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh quagga ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh coova-chilli ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh ntpd ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh iftop ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh arping ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh hping ${CGBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh trafshow ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh ipsec-tools ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh dhcp ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh dhcdrop ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh spawn-fcgi ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh lighttpd ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -ne 0 ] && exit 1
./build.sh php ${CBUILD} ${PKG} ${TARGET_BUILD}
[ $? -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>