File:  [ELWIX - Embedded LightWeight unIX -] / elwix / build_kernel.sh
Revision 1.6: download - view: text, annotated - select for diffs - revision graph
Mon Sep 15 19:06:42 2014 UTC (9 years, 7 months ago) by misho
Branches: MAIN
CVS tags: elwix2_3, HEAD, ELWIX2_2p0
elwix 2.2

#!/bin/sh
#
# ELWIX build script for kernel
#
# (C) AITNET ltd - Sofia/Bulgaria <office@aitnet.org>
#    by Michael Pounov <misho@elwix.org>
#
# $Id: build_kernel.sh,v 1.6 2014/09/15 19:06:42 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 -o ! -d ${BSDKERNCONF} ]; then
	echo
	echo "ELWIX project is not configured - missing BSD sources !?!"
	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_kernel()
{
	echo "+++ Clean ELWIX Kernel ..."
	rm -rf $1
	mkdir -p $1

	ln -sf ${CFGDIR}/$2 ${BSDKERNCONF}
	ln -sf ${CFGDIR}/${KERNHINT:=$KERNCONF.hints} ${BSDKERNCONF}
}

build_kernel()
{
	echo "+++ Build ELWIX Kernel ..."
	cd $BSDSRC
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		${PARALLEL_BUILD} SRCCONF=${SRCCONF} __MAKE_CONF=${MAKECONF} DESTDIR=$1 \
		buildkernel KERNCONF=$2
	if [ $? -eq 0 ]; then
		cd -
	else
		exit 1
	fi
}

install_kernel()
{
	echo "+++ Install ELWIX Kernel ..."
	cd $BSDSRC
	env MAKEOBJDIRPREFIX=${BSDOBJ} make TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
		SRCCONF=${SRCCONF} __MAKE_CONF=${MAKECONF} DESTDIR=$1 installkernel KERNCONF=$2
	cd -

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

### main()
if ! SnitVer ${KERN}/elwix.ver; then
	clean_kernel ${KERN} ${KERNCONF}
	build_kernel ${KERN} ${KERNCONF}
	install_kernel ${KERN} ${KERNCONF}
else
	echo "Skipped ELWIX Kernel build ..."
fi

if ! SnitVer ${KERN_ROOTFS}/elwix.ver; then
	clean_kernel ${KERN_ROOTFS} ${KERNCONF_ROOTFS}
	build_kernel ${KERN_ROOTFS} ${KERNCONF_ROOTFS}
	install_kernel ${KERN_ROOTFS} ${KERNCONF_ROOTFS}
else
	echo "Skipped ELWIX rootfs Kernel build ..."
fi

echo "+++ Complete build ELWIX Kernels"

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