--- elwix/build_tools.sh 2012/02/17 13:41:19 1.1 +++ elwix/build_tools.sh 2012/10/12 08:22:43 1.2 @@ -0,0 +1,316 @@ +#!/bin/sh +# +# ELWIX build script for tools +# +# (C) AITNET ltd - Sofia/Bulgaria +# by Michael Pounov +# +# $Id: build_tools.sh,v 1.2 2012/10/12 08:22:43 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 +V=${VERSION} +[ -r ${CENV} ] && . ${CENV} +unset INSTALL +unset VERSION +VERSION="$V" + +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_tools() +{ + echo "+++ Clean ELWIX FreeBSD tools ..." + + rm -rf ${WORLD}/usr/local + install -d ${WORLD}/usr/local + install -d ${WORLD}/usr/local/bin + install -d ${WORLD}/usr/local/include + install -d ${WORLD}/usr/local/lib + install -d ${WORLD}/usr/local/libdata + install -d ${WORLD}/usr/local/sbin + +} + +clean_bootstrap() +{ + echo "+++ Clean ELWIX pkgsrc bootstrap tools ..." + + rm -rf ${WORLD}/usr/pkgsrc/bootstrap/work + rm -f /elwix ${WORLD}/usr/pkgsrc + rm -rf ${WORLD}/elwix + install -d ${WORLD}/elwix + ln -sf ${WORLD}/elwix /elwix + ln -sf ${PKGSRC} ${WORLD}/usr/pkgsrc + + install -d ${PKGDIR} + install -d ${PKGDIR}/db + install -d ${PKGDIR}/etc +} + +compile_bootstrap() +{ + echo "+++ Compile ELWIX pkgsrc bootstrap tools ..." + if [ ! -d ${WORLD}/usr/pkgsrc/bootstrap/work ]; then + cd ${WORLD}/usr/pkgsrc/bootstrap + ./bootstrap --prefix /elwix/pkg --pkgdbdir /elwix/pkg/db + cd - + else + echo " Skip bootstrap pkgsrc - already inited pkgsrc" + fi + + cat >>/elwix/pkg/etc/mk.conf << _EOF + +.if defined(USE_CROSS_COMPILE) && !empty(USE_CROSS_COMPILE:M[yY][eE][sS]) +USE_DESTDIR= yes +DEPENDS_TARGET= package-install + +TOOLDIR= ${CROSSTOOLDIR} +CROSS_DESTDIR= ${WORLD} + +TARGET= ${TARGET} +TARGET_ARCH= ${TARGET_ARCH} +MACHINE_PLATFORM= FreeBSD-${PLATFORM}-${TARGET_ARCH} +MACHINE_GNU_PLATFORM= ${TARGET_ARCH}-elwix-freebsd + +PKGSRC_COMPILER= gcc +USE_PKGSRC_GCC= no +USE_NATIVE_GCC= yes + +.endif # end cross-compilation settings +_EOF + + echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/elwix/elwix.ver +} + +compile_fbsdtools() +{ + echo "+++ Compile ELWIX FreeBSD tools ..." + + 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 - + +# cd $CROSS_FT_WTAP +# 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 - +} + +compile_files() +{ + cd files + env MAKEOBJDIRPREFIX=${BSDOBJ} BSDSRC=${BSDSRC} make TARGET=${TARGET} \ + TARGET_ARCH=${TARGET_ARCH} clean DESTDIR=${WORLD} + env MAKEOBJDIRPREFIX=${BSDOBJ} BSDSRC=${BSDSRC} make TARGET=${TARGET} \ + TARGET_ARCH=${TARGET_ARCH} obj depend DESTDIR=${WORLD} + env MAKEOBJDIRPREFIX=${BSDOBJ} BSDSRC=${BSDSRC} make TARGET=${TARGET} \ + TARGET_ARCH=${TARGET_ARCH} DESTDIR=${WORLD} + env MAKEOBJDIRPREFIX=${BSDOBJ} BSDSRC=${BSDSRC} make TARGET=${TARGET} \ + TARGET_ARCH=${TARGET_ARCH} install DESTDIR=${WORLD} + cd - + + strip -s ${WORLD}/usr/bin/csh +} + +compile_tools() +{ + echo "+++ Compile ELWIX Cross ..." + + cd $CROSS_AXL + ${AXL_CFG} + ${CBUILD} clean + ${CBUILD} + ${CBUILD} install + cd - + + cd $CROSS_AITCRC + ${AITCRC_CFG} + ${CBUILD} clean + ${CBUILD} + ${CBUILD} install + cd - + + cd $CROSS_AITIO + ${AITIO_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_AITWWW + ${AITWWW_CFG} + ${CBUILD} clean + ${CBUILD} + ${CBUILD} install + cd - + + cd $CROSS_AITPELCO + ${AITPELCO_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 - + + cd $CROSS_MQTT + ${MQTT_CFG} + ${CBUILD} clean + ${CBUILD} + ${CBUILD} install + cd - + + echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/usr/local/elwix.ver +} + +### main() +if ! SnitVer ${WORLD}/elwix/elwix.ver; then + clean_bootstrap + compile_bootstrap +else + echo "Skipped ELWIX bootstrap pkgsrc tools build ..." +fi + +if ! SnitVer ${WORLD}/usr/local/elwix.ver; then + clean_tools + compile_fbsdtools + compile_files + compile_tools +else + echo "Skipped ELWIX tools build ..." +fi + +echo "+++ Complete build ELWIX tools"