--- elwix/build_world.sh 2012/02/16 23:18:47 1.1.1.1.6.1 +++ elwix/build_world.sh 2014/01/15 09:15:43 1.3.2.4 @@ -5,7 +5,7 @@ # (C) AITNET ltd - Sofia/Bulgaria # by Michael Pounov # -# $Id: build_world.sh,v 1.1.1.1.6.1 2012/02/16 23:18:47 misho Exp $ +# $Id: build_world.sh,v 1.3.2.4 2014/01/15 09:15:43 misho Exp $ # [ -r ./config/rc.elwix ] && . ./config/rc.elwix @@ -37,6 +37,9 @@ if [ "${USER}" != "root" ]; then exit 1 fi +# Set TARGET_CPUTYPE only for world compiling. Don't use this in kernel build! +X_TARGET_CPUTYPE="TARGET_CPUTYPE=${TARGET_CPUTYPE}" + clean_world() { echo "+++ Clean ELWIX World ..." @@ -46,24 +49,52 @@ clean_world() rm -f ${CBUILD} ${CGBUILD} ${CENV} } +build_toolchain() +{ + echo "+++ Build ELWIX Toolchain ..." + cd $BSDSRC + env MAKEOBJDIRPREFIX=${BSDOBJ} make ${PARALLEL_BUILD} \ + TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} ${X_TARGET_CPUTYPE} \ + SRCCONF=${SRCCONF} __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} toolchain + if [ $? -eq 0 ]; then + cd - + else + exit 1 + fi +} + build_world() { echo "+++ Build ELWIX World ..." cd $BSDSRC - env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ - -j${PARALLEL_BUILD} buildworld DESTDIR=${WORLD} - cd - + if [ -z "$1" ]; then + env MAKEOBJDIRPREFIX=${BSDOBJ} make ${PARALLEL_BUILD} \ + TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} ${X_TARGET_CPUTYPE} \ + SRCCONF=${SRCCONF} __MAKE_CONF=${MAKECONF} buildworld + else + env MAKEOBJDIRPREFIX=${BSDOBJ} NO_CLEAN="YES" make ${PARALLEL_BUILD} \ + TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} ${X_TARGET_CPUTYPE} \ + SRCCONF=${SRCCONF} __MAKE_CONF=${MAKECONF} buildworld + fi + if [ $? -eq 0 ]; then + cd - + else + exit 1 + fi } install_world() { echo "+++ Install ELWIX World ..." cd $BSDSRC - env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ - installworld DESTDIR=${WORLD} + env MAKEOBJDIRPREFIX=${BSDOBJ} make \ + TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} ${X_TARGET_CPUTYPE} \ + SRCCONF=${SRCCONF} __MAKE_CONF=${MAKECONF} DESTDIR=${WORLD} installworld cd - - echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/elwix.ver + if [ $? -eq 0 ]; then + echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/elwix.ver + fi } build_cross() @@ -75,35 +106,42 @@ build_cross() # # Create auto cross build env script # +export \\ _EOF - env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ + env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} ${X_TARGET_CPUTYPE} \ buildenvvars >> ${CENV} cat >>${CENV} <<_EOF -PATH=$PKG/bin:$PKG/sbin:\$PATH:$PATH +PATH=$WORLD/elwix/pkg/bin:$WORLD/elwix/pkg/sbin:/elwix/pkg/bin:/elwix/pkg/sbin:$PKG/bin:$PKG/sbin:\$PATH:$PATH _EOF cd - cp ${CENV} ${CBUILD} cp ${CENV} ${CGBUILD} + cp ${CENV} ${CEXEC} cat >>${CBUILD} <<_EOF make \$* _EOF cat >>${CGBUILD} <<_EOF gmake \$* _EOF - chmod +x ${CBUILD} ${CGBUILD} ${CENV} + cat >>${CEXEC} <<_EOF +eval \$* +_EOF + chmod +x ${CBUILD} ${CGBUILD} ${CEXEC} ${CENV} echo "Done." } ### main() if ! SnitVer ${WORLD}/elwix.ver; then - clean_world - build_world + if [ -z "$1" ]; then + clean_world + fi +# build_toolchain $1 + build_world $1 install_world build_cross else echo "Skipped ELWIX World build ..." fi - echo "+++ Complete build ELWIX World"