#!/bin/sh # # ELWIX build script for cross compiling 3th party software # # (C) AITNET ltd - Sofia/Bulgaria # by Michael Pounov # # $Id: build_3thparty.sh,v 1.8 2021/07/16 18:35:50 misho Exp $ # [ -r ./config/rc.elwix ] && . ./config/rc.elwix if [ ! -r ./config/rc.3thparty_helper ]; then echo echo "ELWIX project is not configured - Missing rc.3thparty_helper script" echo exit 1 fi 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_3th() { echo "+++ Clean ELWIX 3th party ... ${PKG}, ${ROMFS_USR2}" rm -rf ${PKG} ${ROMFS_USR2} 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 install -d ${ROMFS_USR2} install -d ${ROMFS_USR2}/bin install -d ${ROMFS_USR2}/etc install -d ${ROMFS_USR2}/lib install -d ${ROMFS_USR2}/libexec install -d ${ROMFS_USR2}/sbin } compile_3th() { echo "+++ Compile ELWIX 3th party ..." BUILD_SH="./config/rc.3thparty_helper" for i in ${CROSS_3THPARTY}; do MK=$(eval echo "\$${i}_MAKE") env CFLAGS="-I${PKG}/include" LDFLAGS="-L${PKG}/lib" ${BUILD_SH} \ $i $MK ${PKG} ${TARGET_BUILD} || Die "ERROR:: with $i packet!" done echo } install_3th() { 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 InstallLinks \*.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_3th() { echo "+++ Build ELWIX Firmware secondary image ... ${ROMFS_USR2} --> ${REL}/${ROMFS_IMG2}" cd ${ROMFS_USR2} pax -w -z -v -f${REL}/${ROMFS_IMG2} . cd - # Stop using uzip fs # makefs -ominfree=0,bsize=8192,fsize=1024,optimization=space -s${ROMFS_SIZE2} \ # ${REL}/${ROMFS_IMG2} ${ROMFS_USR2} # MDDEV=$(mdconfig -a -t vnode -f ${REL}/${ROMFS_IMG2}); # tunefs -L elwixFirmware2 /dev/$MDDEV; # mdconfig -d -u $MDDEV; # mkuzip -s 8192 -o ${REL}/${ROMFS_IMG2}.uzip ${REL}/${ROMFS_IMG2}; # mv ${REL}/${ROMFS_IMG2}.uzip ${REL}/${ROMFS_IMG2} echo "+++ Complited ELWIX Firmware secondary image ... ${REL}/${ROMFS_IMG2}" } ### main() if [ -n "${1}" ]; then rm ${PKG}/elwix.ver fi if ! SnitVer ${PKG}/elwix.ver; then clean_3th || exit 1 compile_3th || exit 1 install_3th || exit 1 build_3th || exit 1 echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${PKG}/elwix.ver else echo "Skipped ELWIX 3th party build ..." fi echo "+++ Complete build ELWIX 3th party"