--- elwix/build_tools.sh 2013/07/21 16:48:54 1.5.2.1 +++ elwix/build_tools.sh 2017/01/19 00:31:39 1.7.2.5 @@ -5,7 +5,7 @@ # (C) AITNET ltd - Sofia/Bulgaria # by Michael Pounov # -# $Id: build_tools.sh,v 1.5.2.1 2013/07/21 16:48:54 misho Exp $ +# $Id: build_tools.sh,v 1.7.2.5 2017/01/19 00:31:39 misho Exp $ # [ -r ./config/rc.elwix ] && . ./config/rc.elwix @@ -16,11 +16,13 @@ if [ X"${ELWIX_IS_CONFIGURED}" != X"YES" ]; then exit 1 fi V=${VERSION} -[ -r ${CENV} ] && . ${CENV} +#[ -r ${CENV} ] && . ${CENV} unset INSTALL unset VERSION VERSION="$V" +# Set TARGET_CPUTYPE only for world compiling. Don't use this in kernel build! +X_TARGET_CPUTYPE="TARGET_CPUTYPE=${TARGET_CPUTYPE}" if [ ! -d $BSDSRC ]; then echo @@ -38,7 +40,7 @@ fi clean_tools() { - echo "+++ Clean ELWIX FreeBSD tools ..." + echo "+++ Clean ELWIX FreeBSD tools ... ${WORLD}/usr/local" rm -rf ${WORLD}/usr/local install -d ${WORLD}/usr/local @@ -118,212 +120,224 @@ compile_fbsdtools() { echo "+++ Compile ELWIX FreeBSD tools ..." + if [ "$(uname -m)" != ${TARGET} ]; then + BSDSTATDIR="${BSDOBJ}/${TARGET}.${TARGET_ARCH}${BSDSRC}/lib/libbsdstat" + else + BSDSTATDIR="${BSDOBJ}${BSDSRC}/lib/libbsdstat" + fi + 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} + ${CBUILD} DESTDIR=${WORLD} clean || exit 1 + ${CBUILD} DESTDIR=${WORLD} || exit 1 + ${CBUILD} DESTDIR=${WORLD} install || exit 1 cd - 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} + ${CBUILD} DESTDIR=${WORLD} clean || exit 1 + cp ${CROSSTOOLDIR}/usr/include/private/bsdstat/bsdstat.h ${BSDTOOLS}/ath/common || exit 1 + ${CBUILD} DESTDIR=${WORLD} LIBBSDSTATDIR="${BSDSTATDIR}" || exit 1 + ${CBUILD} DESTDIR=${WORLD} install || exit 1 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_IPW +# ${CBUILD} DESTDIR=${WORLD} clean || exit 1 +# ${CBUILD} DESTDIR=${WORLD} || exit 1 +# ${CBUILD} DESTDIR=${WORLD}/usr/local/bin install || exit 1 +# 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_IWI +# ${CBUILD} DESTDIR=${WORLD} clean || exit 1 +# ${CBUILD} DESTDIR=${WORLD} || exit 1 +# ${CBUILD} DESTDIR=${WORLD}/usr/local/bin install || exit 1 +# 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_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 $CROSS_FT_MWL +# ${CBUILD} DESTDIR=${WORLD} clean || exit 1 +# cp ${CROSSTOOLDIR}/usr/include/private/bsdstat/bsdstat.h ${BSDTOOLS}/mwl/mwlstats || exit 1 +# ${CBUILD} DESTDIR=${WORLD} LIBBSDSTATDIR="${BSDSTATDIR}" || exit 1 +# ${CBUILD} DESTDIR=${WORLD} install || exit 1 # 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} + ${CBUILD} DESTDIR=${WORLD} clean || exit 1 + ${CBUILD} DESTDIR=${WORLD} obj || exit 1 + ${CBUILD} DESTDIR=${WORLD} depend || exit 1 + ${CBUILD} DESTDIR=${WORLD} || exit 1 + ${CBUILD} DESTDIR=${WORLD} install || exit 1 cd - - -# strip -s ${WORLD}/usr/bin/csh } compile_tools() { echo "+++ Compile ELWIX Cross ..." - cd $CROSS_AXL - ${AXL_CFG} + cd $CROSS_ELWIX + ${CEXEC} INSTALL=`echo "/bin/$INSTALL"` ${ELWIX_CFG} ${CBUILD} clean ${CBUILD} ${CBUILD} install cd - - cd $CROSS_ELWIX - ${ELWIX_CFG} + cd $CROSS_AITSCHED + ${CEXEC} INSTALL=`echo "/bin/$INSTALL"` ${AITSCHED_CFG} ${CBUILD} clean ${CBUILD} ${CBUILD} install cd - cd $CROSS_AITIO - ${AITIO_CFG} + ${CEXEC} INSTALL=`echo "/bin/$INSTALL"` ${AITIO_CFG} ${CBUILD} clean ${CBUILD} ${CBUILD} install cd - cd $CROSS_AITCFG - ${AITCFG_CFG} + ${CEXEC} INSTALL=`echo "/bin/$INSTALL"` ${AITCFG_CFG} ${CBUILD} clean ${CBUILD} ${CBUILD} install cd - - cd $CROSS_AITSCHED - ${AITSCHED_CFG} - ${CBUILD} clean - ${CBUILD} - ${CBUILD} install - cd - - cd $CROSS_AITRPC - ${AITRPC_CFG} + ${CEXEC} INSTALL=`echo "/bin/$INSTALL"` ${AITRPC_CFG} ${CBUILD} clean ${CBUILD} ${CBUILD} install cd - cd $CROSS_AITWWW - ${AITWWW_CFG} + ${CEXEC} INSTALL=`echo "/bin/$INSTALL"` ${AITWWW_CFG} ${CBUILD} clean ${CBUILD} ${CBUILD} install cd - cd $CROSS_AITPELCO - ${AITPELCO_CFG} + ${CEXEC} INSTALL=`echo "/bin/$INSTALL"` ${AITPELCO_CFG} ${CBUILD} clean ${CBUILD} ${CBUILD} install cd - cd $CROSS_AITSYNC - ${AITSYNC_CFG} + ${CEXEC} INSTALL=`echo "/bin/$INSTALL"` ${AITSYNC_CFG} ${CBUILD} clean ${CBUILD} ${CBUILD} install cd - cd $CROSS_AITCLI - ${AITCLI_CFG} + ${CEXEC} INSTALL=`echo "/bin/$INSTALL"` ${AITCLI_CFG} ${CBUILD} clean ${CBUILD} ${CBUILD} install cd - cd $CROSS_AITMQTT - ${AITMQTT_CFG} + ${CEXEC} INSTALL=`echo "/bin/$INSTALL"` ${AITMQTT_CFG} ${CBUILD} clean ${CBUILD} ${CBUILD} install cd - cd $CROSS_EMBEDTOOLS - ${EMBEDTOOLS_CFG} + ${CEXEC} INSTALL=`echo "/bin/$INSTALL"` ${EMBEDTOOLS_CFG} ${CBUILD} clean ${CBUILD} ${CBUILD} install cd - cd $CROSS_ANSH - ${ANSH_CFG} + ${CEXEC} INSTALL=`echo "/bin/$INSTALL"` ${ANSH_CFG} ${CBUILD} clean ${CBUILD} ${CBUILD} install cd - cd $CROSS_MQTT - ${MQTT_CFG} + ${CEXEC} INSTALL=`echo "/bin/$INSTALL"` ${MQTT_CFG} ${CBUILD} clean ${CBUILD} ${CBUILD} install cd - cd $CROSS_WIFINATOR - ${WIFINATOR_CFG} + ${CEXEC} INSTALL=`echo "/bin/$INSTALL"` ${WIFINATOR_CFG} ${CBUILD} clean ${CBUILD} ${CBUILD} install cd - + + cd $CROSS_TFTPD + ${CEXEC} INSTALL=`echo "/bin/$INSTALL"` ${TFTPD_CFG} + ${CBUILD} clean + ${CBUILD} + ${CBUILD} install + cd - } +install_tools() +{ + LIBS="${ROMFS_USR2}/lib" + LIBEXEC="${ROMFS_USR2}/libexec" + BIN="${ROMFS_USR2}/bin" + SBIN="${ROMFS_USR2}/sbin" + ETC="${ROMFS_USR2}/etc" + + echo "+++ Install ELWIX RomFS secondary firmware ... ${ROMFS_USR2}" + + StripFiles \*.so\* ${PKG}/lib + InstallFiles \*.so\* ${PKG}/lib $LIBS + StripFiles \* ${PKG}/libexec + InstallFiles \* ${PKG}/libexec $LIBEXEC + StripFiles \* ${PKG}/bin + InstallFiles \* ${PKG}/bin $BIN + StripFiles \* ${PKG}/sbin + InstallFiles \* ${PKG}/sbin $SBIN + + InstallFiles \* ${PKG}/etc $ETC + + chown -R root:wheel $SBIN $BIN $LIBDATA $LIBEXEC $LIBS +} + +build_tools() +{ + echo "+++ Build ELWIX core firmware image ... ${WORLD}/usr/local --> ${REL}/${LOCALFS_IMG}" + + cd ${WORLD}/usr/local + find . -name ".debug" -exec rm -rf {} \; + pax -w -z -v -f${REL}/${LOCALFS_IMG} . + cd - + + echo "+++ Completed ELWIX core firmware image ... ${REL}/${LOCALFS_IMG}" +} + ### main() -if ! SnitVer ${WORLD}/elwix/elwix.ver; then +if [ "${COMPILE_DEPTOOLS}" = "YES" ]; then compile_deps || exit 1 - clean_bootstrap - compile_bootstrap || exit 1 - - echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/elwix/elwix.ver -else - echo "Skipped ELWIX bootstrap pkgsrc tools build ..." fi +#if ! SnitVer ${WORLD}/elwix/elwix.ver; then +# clean_bootstrap +# compile_bootstrap || exit 1 +# +# echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/elwix/elwix.ver +#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 + clean_tools || exit 1 + + compile_fbsdtools || exit 1 + compile_files || exit 1 + compile_tools || exit 1 + + build_tools || exit 1 echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/usr/local/elwix.ver else