File:  [ELWIX - Embedded LightWeight unIX -] / elwix / build_world.sh
Revision 1.2: download - view: text, annotated - select for diffs - revision graph
Fri Oct 12 08:22:43 2012 UTC (11 years, 8 months ago) by misho
Branches: MAIN
CVS tags: elwix2_1, elwix2_0, elwix1_9_mips, elwix1_9, elwix1_8, elwix1_7, HEAD, ELWIX2_0, ELWIX1_9, ELWIX1_8, ELWIX1_7, ELWIX1_6
ELWIX 1.6

    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.2 2012/10/12 08:22:43 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_world()
   50: {
   51: 	echo "+++ Build ELWIX World ..."
   52: 	cd $BSDSRC
   53: 	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
   54: 		-j${PARALLEL_BUILD} buildworld DESTDIR=${WORLD}
   55: 	if [ $? -eq 0 ]; then
   56: 		cd -
   57: 	else
   58: 		exit 1
   59: 	fi
   60: }
   61: 
   62: install_world()
   63: {
   64: 	echo "+++ Install ELWIX World ..."
   65: 	cd $BSDSRC
   66: 	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
   67: 		installworld DESTDIR=${WORLD}
   68: 	cd -
   69: 
   70: 	if [ $? -eq 0 ]; then
   71: 		echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/elwix.ver
   72: 	fi
   73: }
   74: 
   75: build_cross()
   76: {
   77: 	echo "+++ Build ELWIX Cross script ..."
   78: 	cd $BSDSRC
   79: 	cat >${CENV} <<_EOF
   80: #!/bin/sh
   81: #
   82: # Create auto cross build env script
   83: #
   84: export \\
   85: _EOF
   86: 	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
   87: 		buildenvvars >> ${CENV}
   88: 	cat >>${CENV} <<_EOF
   89: PATH=$WORLD/elwix/pkg/bin:$WORLD/elwix/pkg/sbin:/elwix/pkg/bin:/elwix/pkg/sbin:$PKG/bin:$PKG/sbin:\$PATH:$PATH
   90: _EOF
   91: 	cd -
   92: 	cp ${CENV} ${CBUILD}
   93: 	cp ${CENV} ${CGBUILD}
   94: 	cp ${CENV} ${CEXEC}
   95: 	cat >>${CBUILD} <<_EOF
   96: make \$*
   97: _EOF
   98: 	cat >>${CGBUILD} <<_EOF
   99: gmake \$*
  100: _EOF
  101: 	cat >>${CEXEC} <<_EOF
  102: eval \$*
  103: _EOF
  104: 	chmod +x ${CBUILD} ${CGBUILD} ${CEXEC} ${CENV}
  105: 	echo "Done."
  106: }
  107: 
  108: ### main()
  109: if ! SnitVer ${WORLD}/elwix.ver; then
  110: 	clean_world
  111: 	build_world
  112: 	install_world
  113: 
  114: 	build_cross
  115: else
  116: 	echo "Skipped ELWIX World build ..."
  117: fi
  118: 
  119: echo "+++ Complete build ELWIX World"

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