File:  [ELWIX - Embedded LightWeight unIX -] / elwix / build_world.sh
Revision 1.3.2.1: download - view: text, annotated - select for diffs - revision graph
Tue Jan 14 14:25:23 2014 UTC (10 years, 5 months ago) by misho
Branches: elwix2_2
Diff to: branchpoint 1.3: preferred, unified
fix obj paths for cross compiling

    1: #!/bin/sh
    2: #
    3: # ELWIX build script for world
    4: #
    5: # (C) AITNET ltd - Sofia/Bulgaria <office@aitnet.org>
    6: #    by Michael Pounov <misho@elwix.org>
    7: #
    8: # $Id: build_world.sh,v 1.3.2.1 2014/01/14 14:25:23 misho Exp $
    9: #
   10: 
   11: [ -r ./config/rc.elwix ] && . ./config/rc.elwix
   12: if [ X"${ELWIX_IS_CONFIGURED}" != X"YES" ]; then
   13: 	echo
   14: 	echo "ELWIX project is not configured !?!"
   15: 	echo
   16: 	exit 1
   17: fi
   18: 
   19: if [ ! -d $BSDSRC ]; then
   20: 	echo
   21: 	echo "ELWIX project is not configured - missing BSD sources !?!"
   22: 	echo
   23: 	exit 1
   24: fi
   25: 
   26: if [ ! -d $ADIR ]; then
   27: 	echo
   28: 	echo "ELWIX project is not configured - missing TargetArch directory !?!"
   29: 	echo
   30: 	exit 1
   31: fi
   32: 
   33: if [ "${USER}" != "root" ]; then
   34: 	echo
   35: 	echo "ELWIX project is not configured - BSD kernel must compile under root !?!"
   36: 	echo
   37: 	exit 1
   38: fi
   39: 
   40: clean_world()
   41: {
   42: 	echo "+++ Clean ELWIX World ..."
   43: 	rm -rf $WORLD
   44: 	mkdir -p $WORLD
   45: 
   46: 	rm -f ${CBUILD} ${CGBUILD} ${CENV}
   47: }
   48: 
   49: build_toolchain()
   50: {
   51: 	echo "+++ Build ELWIX Toolchain ..."
   52: 	cd $BSDSRC
   53: 	env MAKEOBJDIRPREFIX=${BSDOBJ} make ${PARALLEL_BUILD} \
   54: 		TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
   55: 		SRCCONF=${SRCCONF} DESTDIR=${WORLD} toolchain
   56: 	if [ $? -eq 0 ]; then
   57: 		cd -
   58: 	else
   59: 		exit 1
   60: 	fi
   61: }
   62: 
   63: build_world()
   64: {
   65: 	echo "+++ Build ELWIX World ..."
   66: 	cd $BSDSRC
   67: 	if [ -z "$1" ]; then
   68: 		env MAKEOBJDIRPREFIX=${BSDOBJ} make ${PARALLEL_BUILD} \
   69: 			TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
   70: 			SRCCONF=${SRCCONF} buildworld
   71: 	else
   72: 		env MAKEOBJDIRPREFIX=${BSDOBJ} NO_CLEAN="YES" make ${PARALLEL_BUILD} \
   73: 			TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
   74: 			SRCCONF=${SRCCONF} buildworld
   75: 	fi
   76: 	if [ $? -eq 0 ]; then
   77: 		cd -
   78: 	else
   79: 		exit 1
   80: 	fi
   81: }
   82: 
   83: install_world()
   84: {
   85: 	echo "+++ Install ELWIX World ..."
   86: 	cd $BSDSRC
   87: 	env MAKEOBJDIRPREFIX=${BSDOBJ} make \
   88: 		TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
   89: 		SRCCONF=${SRCCONF} DESTDIR=${WORLD} installworld
   90: 	cd -
   91: 
   92: 	if [ $? -eq 0 ]; then
   93: 		echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/elwix.ver
   94: 	fi
   95: }
   96: 
   97: build_cross()
   98: {
   99: 	echo "+++ Build ELWIX Cross script ..."
  100: 	cd $BSDSRC
  101: 	cat >${CENV} <<_EOF
  102: #!/bin/sh
  103: #
  104: # Create auto cross build env script
  105: #
  106: export \\
  107: _EOF
  108: 	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
  109: 		buildenvvars >> ${CENV}
  110: 	cat >>${CENV} <<_EOF
  111: PATH=$WORLD/elwix/pkg/bin:$WORLD/elwix/pkg/sbin:/elwix/pkg/bin:/elwix/pkg/sbin:$PKG/bin:$PKG/sbin:\$PATH:$PATH
  112: _EOF
  113: 	cd -
  114: 	cp ${CENV} ${CBUILD}
  115: 	cp ${CENV} ${CGBUILD}
  116: 	cp ${CENV} ${CEXEC}
  117: 	cat >>${CBUILD} <<_EOF
  118: make \$*
  119: _EOF
  120: 	cat >>${CGBUILD} <<_EOF
  121: gmake \$*
  122: _EOF
  123: 	cat >>${CEXEC} <<_EOF
  124: eval \$*
  125: _EOF
  126: 	chmod +x ${CBUILD} ${CGBUILD} ${CEXEC} ${CENV}
  127: 	echo "Done."
  128: }
  129: 
  130: ### main()
  131: if ! SnitVer ${WORLD}/elwix.ver; then
  132: 	if [ -z "$1" ]; then
  133: 		clean_world
  134: 	fi
  135: #	build_toolchain $1
  136: 	build_world $1
  137: 	install_world
  138: 
  139: 	build_cross
  140: else
  141: 	echo "Skipped ELWIX World build ..."
  142: fi
  143: 
  144: echo "+++ Complete build ELWIX World"

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>