File:  [ELWIX - Embedded LightWeight unIX -] / elwix / build_world.sh
Revision 1.3: download - view: text, annotated - select for diffs - revision graph
Sun Jan 5 23:14:22 2014 UTC (10 years, 5 months ago) by misho
Branches: MAIN
CVS tags: elwix2_2, HEAD, ELWIX2_1
version 2.1

    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 2014/01/05 23:14:22 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: 		MAKEOBJDIRPREFIX=${BSDOBJ} SRCCONF=${SRCCONF} \
   56: 		DESTDIR=${WORLD} toolchain
   57: 	if [ $? -eq 0 ]; then
   58: 		cd -
   59: 	else
   60: 		exit 1
   61: 	fi
   62: }
   63: 
   64: build_world()
   65: {
   66: 	echo "+++ Build ELWIX World ..."
   67: 	cd $BSDSRC
   68: 	if [ -z "$1" ]; then
   69: 		env MAKEOBJDIRPREFIX=${BSDOBJ} make ${PARALLEL_BUILD} \
   70: 			TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
   71: 			MAKEOBJDIRPREFIX=${BSDOBJ} SRCCONF=${SRCCONF} buildworld
   72: 	else
   73: 		env MAKEOBJDIRPREFIX=${BSDOBJ} NO_CLEAN="YES" make ${PARALLEL_BUILD} \
   74: 			TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
   75: 			MAKEOBJDIRPREFIX=${BSDOBJ} SRCCONF=${SRCCONF} buildworld
   76: 	fi
   77: 	if [ $? -eq 0 ]; then
   78: 		cd -
   79: 	else
   80: 		exit 1
   81: 	fi
   82: }
   83: 
   84: install_world()
   85: {
   86: 	echo "+++ Install ELWIX World ..."
   87: 	cd $BSDSRC
   88: 	env MAKEOBJDIRPREFIX=${BSDOBJ} make \
   89: 		TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
   90: 		MAKEOBJDIRPREFIX=${BSDOBJ} SRCCONF=${SRCCONF} DESTDIR=${WORLD} installworld
   91: 	cd -
   92: 
   93: 	if [ $? -eq 0 ]; then
   94: 		echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/elwix.ver
   95: 	fi
   96: }
   97: 
   98: build_cross()
   99: {
  100: 	echo "+++ Build ELWIX Cross script ..."
  101: 	cd $BSDSRC
  102: 	cat >${CENV} <<_EOF
  103: #!/bin/sh
  104: #
  105: # Create auto cross build env script
  106: #
  107: export \\
  108: _EOF
  109: 	make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
  110: 		MAKEOBJDIRPREFIX=${BSDOBJ} buildenvvars >> ${CENV}
  111: 	cat >>${CENV} <<_EOF
  112: PATH=$WORLD/elwix/pkg/bin:$WORLD/elwix/pkg/sbin:/elwix/pkg/bin:/elwix/pkg/sbin:$PKG/bin:$PKG/sbin:\$PATH:$PATH
  113: _EOF
  114: 	cd -
  115: 	cp ${CENV} ${CBUILD}
  116: 	cp ${CENV} ${CGBUILD}
  117: 	cp ${CENV} ${CEXEC}
  118: 	cat >>${CBUILD} <<_EOF
  119: make \$*
  120: _EOF
  121: 	cat >>${CGBUILD} <<_EOF
  122: gmake \$*
  123: _EOF
  124: 	cat >>${CEXEC} <<_EOF
  125: eval \$*
  126: _EOF
  127: 	chmod +x ${CBUILD} ${CGBUILD} ${CEXEC} ${CENV}
  128: 	echo "Done."
  129: }
  130: 
  131: ### main()
  132: if ! SnitVer ${WORLD}/elwix.ver; then
  133: 	if [ -z "$1" ]; then
  134: 		clean_world
  135: 	fi
  136: #	build_toolchain $1
  137: 	build_world $1
  138: 	install_world
  139: 
  140: 	build_cross
  141: else
  142: 	echo "Skipped ELWIX World build ..."
  143: fi
  144: 
  145: echo "+++ Complete build ELWIX World"

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