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, 7 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

#!/bin/sh
#
# ELWIX build script for world
#
# (C) AITNET ltd - Sofia/Bulgaria <office@aitnet.org>
#    by Michael Pounov <misho@elwix.org>
#
# $Id: build_world.sh,v 1.2 2012/10/12 08:22:43 misho Exp $
#

[ -r ./config/rc.elwix ] && . ./config/rc.elwix
if [ X"${ELWIX_IS_CONFIGURED}" != X"YES" ]; then
	echo
	echo "ELWIX project is not configured !?!"
	echo
	exit 1
fi

if [ ! -d $BSDSRC ]; then
	echo
	echo "ELWIX project is not configured - missing BSD sources !?!"
	echo
	exit 1
fi

if [ ! -d $ADIR ]; then
	echo
	echo "ELWIX project is not configured - missing TargetArch directory !?!"
	echo
	exit 1
fi

if [ "${USER}" != "root" ]; then
	echo
	echo "ELWIX project is not configured - BSD kernel must compile under root !?!"
	echo
	exit 1
fi

clean_world()
{
	echo "+++ Clean ELWIX World ..."
	rm -rf $WORLD
	mkdir -p $WORLD

	rm -f ${CBUILD} ${CGBUILD} ${CENV}
}

build_world()
{
	echo "+++ Build ELWIX World ..."
	cd $BSDSRC
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		-j${PARALLEL_BUILD} buildworld DESTDIR=${WORLD}
	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}
	cd -

	if [ $? -eq 0 ]; then
		echo "ELWIX Platform:${PLATFORM} Version:${VERSION} TargetArch:${TARGET_ARCH}" >${WORLD}/elwix.ver
	fi
}

build_cross()
{
	echo "+++ Build ELWIX Cross script ..."
	cd $BSDSRC
	cat >${CENV} <<_EOF
#!/bin/sh
#
# Create auto cross build env script
#
export \\
_EOF
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		buildenvvars >> ${CENV}
	cat >>${CENV} <<_EOF
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
	cat >>${CEXEC} <<_EOF
eval \$*
_EOF
	chmod +x ${CBUILD} ${CGBUILD} ${CEXEC} ${CENV}
	echo "Done."
}

### main()
if ! SnitVer ${WORLD}/elwix.ver; then
	clean_world
	build_world
	install_world

	build_cross
else
	echo "Skipped ELWIX World build ..."
fi

echo "+++ Complete build ELWIX World"

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