--- elwix/build_rootfs.sh 2013/01/28 01:47:34 1.4 +++ elwix/build_rootfs.sh 2014/09/15 19:06:42 1.9 @@ -5,7 +5,7 @@ # (C) AITNET ltd - Sofia/Bulgaria # by Michael Pounov # -# $Id: build_rootfs.sh,v 1.4 2013/01/28 01:47:34 misho Exp $ +# $Id: build_rootfs.sh,v 1.9 2014/09/15 19:06:42 misho Exp $ # [ -r ./config/rc.elwix ] && . ./config/rc.elwix @@ -30,16 +30,22 @@ if [ "${USER}" != "root" ]; then exit 1 fi -NEWKERN="${REL}/kernel" +KRNNAME="kernel_rootfs" +NEWKERN="${REL}/${KRNNAME}" +MKF="Makefile.elwix" +MKH="Makefile.inc" +# Set TARGET_CPUTYPE only for world compiling. Don't use this in kernel build! +X_TARGET_CPUTYPE="TARGET_CPUTYPE=${TARGET_CPUTYPE}" + clean_elwix() { echo "+++ Clean elwix binary from ELWIX World ..." rm -rf $BSDOBJ/elwix echo "+++ Clean ELWIX RootFS firmware ..." - rm -rf $MKDIR - mkdir $MKDIR + rm -rf $ROOTFS_MKDIR + mkdir $ROOTFS_MKDIR echo "+++ Clean RootFS directory ..." chflags -R noschg $ROOTFS @@ -53,7 +59,7 @@ clean_elwix() prepare_elwix() { echo "+++ Prepair ELWIX RootFS firmware ..." - cd $MKDIR + cd $ROOTFS_MKDIR cat >$MKH <<_EOF # Auto-generated Makefile include for crungegen # !!! Dont edit by hand !!! @@ -68,25 +74,32 @@ srcdirs ${BSDSRC}/bin ${BSDSRC}/sbin ${BSDSRC}/libexec srcdirs ${BSDSRC}/usr.bin ${BSDSRC}/usr.sbin ${BSDSRC}/usr.sbin/wpa srcdirs ${BSDSRC}/secure/usr.bin ${BSDSRC}/secure/usr.sbin ${BSDSRC}/secure/libexec +buildopts TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} ${X_TARGET_CPUTYPE} __MAKE_CONF=${MAKECONF} buildopts -DNO_PAM -DNO_KERBEROS WITHOUT_PAM_SUPPORT=yes WITHOUT_KERBEROS_SUPPORT=yes WITHOUT_KERBEROS=yes -buildopts TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} MAKEOBJDIRPREFIX=${BSDOBJ}/elwix +buildopts -DMK_CASPER=no WITHOUT_CASPER=yes _EOF cat $CFGDIR/$ROOTFS_CONF >>$ROOTFS_CONF - . ${CENV} install -d ${BSDOBJ}/elwix - crunchgen -f -o -p ${BSDOBJ}/elwix -h $MKDIR/$MKH -m $MKF -c elwix.c -e elwix $ROOTFS_CONF + env MAKEOBJDIRPREFIX=${BSDOBJ}/elwix crunchgen -f \ + -h $ROOTFS_MKDIR/$MKH -m $MKF \ + -c elwix.c -e elwix $ROOTFS_CONF + if [ $? -ne 0 ]; then + exit 1 + fi cd - } build_elwix() { echo "+++ Build ELWIX RootFS firmware ..." - cd $MKDIR - . ${CENV} - MAKEOBJDIRPREFIX=${BSDOBJ}/elwix - make -f $MKF clean - make -f $MKF + cd $ROOTFS_MKDIR + env MAKEOBJDIRPREFIX=${BSDOBJ}/elwix make -f $MKF \ + TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ + ${X_TARGET_CPUTYPE} __MAKE_CONF=${MAKECONF} clean + env MAKEOBJDIRPREFIX=${BSDOBJ}/elwix make -f $MKF \ + TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ + ${X_TARGET_CPUTYPE} __MAKE_CONF=${MAKECONF} if [ $? -ne 0 ]; then exit 1 fi @@ -138,7 +151,7 @@ install_rootfs() LNPRG="${SBIN}/elwix" echo "+++ Install ELWIX into RootFS directory ..." - install $MKDIR/elwix $SBIN + install $ROOTFS_MKDIR/elwix $SBIN InstallList ${ELWIX_ROOTFS} ${WORLD} ${ROOTFS} @@ -153,6 +166,10 @@ install_rootfs() ln -s $PRG $BIN/chio ln -s $PRG $BIN/chmod ln -s $PRG $BIN/cp + ln -s $PRG $BIN/csh + ln -s $PRG $BIN/-csh + ln -s $PRG $BIN/tcsh + ln -s $PRG $BIN/-tcsh ln -s $PRG $BIN/date ln -s $PRG $BIN/dd ln -s $PRG $BIN/df @@ -362,6 +379,7 @@ install_rootfs() echo "+++ ELWIX clean CVS tags ..." CleanCVS $ETC CleanCVS $ETC/etc + echo } build_image() @@ -373,32 +391,32 @@ build_image() install_image() { echo "+++ Install ELWIX RootFS Image into kernel ..." - START=`strings -td $KERNEL | grep "MFS Filesystem" | cut -d ' ' -f 1 | head -1` - STOP=`strings -td $KERNEL | grep "MFS Filesystem" | cut -d ' ' -f 1 | tail -1` + START=`strings -td $KERNEL_ROOTFS | grep "MFS Filesystem" | cut -d ' ' -f 1 | head -1` + STOP=`strings -td $KERNEL_ROOTFS | grep "MFS Filesystem" | cut -d ' ' -f 1 | tail -1` STOP=$(($STOP + 1)) - head -c $START $KERNEL >$NEWKERN + head -c $START $KERNEL_ROOTFS >$NEWKERN cat $REL/$ROOTFS_IMG >>$NEWKERN - tail -c +$STOP $KERNEL >>$NEWKERN + tail -c +$STOP $KERNEL_ROOTFS >>$NEWKERN cd $REL - gzip -9 kernel + gzip -9 $KRNNAME cd - } ### main() if SnitVer ${WORLD}/elwix.ver; then clean_elwix - prepare_elwix - build_elwix + prepare_elwix || exit 1 + build_elwix || exit 1 - build_rootdir - install_rootfs + build_rootdir || exit 1 + install_rootfs || exit 1 - build_image - install_image + build_image || exit 1 + install_image || exit 1 else - echo "Skipped ELWIX RootFS build ..." + echo "$? Skipped ELWIX RootFS build ..." fi echo "+++ Complete build ELWIX RootFS"