#!/bin/sh set -e NCPU=$(sysctl -n hw.ncpu) args=`getopt cdiktwmr $*` if [ $? -ne 0 ]; then echo 'Usage: -kwticmdr config' exit 2 fi set -- $args build_toolchain="no" build_kernel="no" build_world="no" with_modules="no" do_install="no" do_distribution="no" do_clean="no" do_release="no" while true; do case "$1" in -k) build_kernel="${1#-}$build_kernel" shift ;; -w) build_world="${1#-}$build_world" shift ;; -t) build_toolchain="${1#-}$build_toolchain" shift ;; -i) do_install="${1#-}$do_install" shift ;; -c) do_clean="${1#-}$do_clean" shift ;; -d) do_distribution="${1#-}$do_distribution" shift ;; -r) do_release="${1#-}$do_release" shift ;; -m) with_modules="${1#-}$with_modules" shift ;; --) shift; break ;; esac done . $1 if [ "$with_modules" = "no" ]; then MODULES_FLAG="NO_MODULES=1" fi if [ "$do_install" != "no" -a -z "$DESTDIR" ]; then echo "DESTDIR can't be empty for install targets" exit 1 fi CLEAN_FLAGS="-DNO_CLEAN -DNO_KERNELONFIG -DNO_KERNELDEPEND" if [ "$do_clean" != "no" ]; then CLEAN_FLAGS= fi if [ "$build_toolchain" != "no" ]; then make -j${NCPU} -C $SRCROOT $CLEAN_FLAGS WITHOUT_KERBEROS=1 WITHOUT_SENDMAIL=1 WITHOUT_EXAMPLES=1 kernel-toolchain fi if [ "$build_world" != "no" ]; then make -j${NCPU} -C $SRCROOT $CLEAN_FLAGS WITHOUT_KERBEROS=1 WITHOUT_SENDMAIL=1 WITHOUT_EXAMPLES=1 buildworld fi if [ "$build_kernel" != "no" ]; then make -j${NCPU} -C $SRCROOT KERNCONF=$KERNCONF $MODULES_FLAG $CLEAN_FLAGS WITHOUT_KERBEROS=1 WITHOUT_SENDMAIL=1 WITHOUT_EXAMPLES=1 buildkernel fi if [ "$build_world" != "no" -a "$do_install" != "no" ]; then sudo -E make -C $SRCROOT KERNCONF=$KERNCONF $CLEAN_FLAGS DESTDIR=$DESTDIR WITHOUT_KERBEROS=1 WITHOUT_SENDMAIL=1 WITHOUT_EXAMPLES=1 installworld yes | sudo -E make -C $SRCROOT KERNCONF=$KERNCONF $CLEAN_FLAGS DESTDIR=$DESTDIR WITHOUT_KERBEROS=1 WITHOUT_SENDMAIL=1 WITHOUT_EXAMPLES=1 delete-old fi if [ "$build_kernel" != "no" -a "$do_install" != "no" ]; then sudo -E make -C $SRCROOT KERNCONF=$KERNCONF $MODULES_FLAG $CLEAN_FLAGS DESTDIR=$DESTDIR WITHOUT_KERBEROS=1 WITHOUT_SENDMAIL=1 WITHOUT_EXAMPLES=1 installkernel # sudo cp $DESTDIR/boot/dtb/*.dtb /src/tftpboot/ fi if [ "$do_distribution" != "no" ]; then sudo -E make -C $SRCROOT KERNCONF=$KERNCONF $MODULES_FLAG $CLEAN_FLAGS DESTDIR=$DESTDIR WITHOUT_KERBEROS=1 WITHOUT_SENDMAIL=1 WITHOUT_EXAMPLES=1 WITHOUT_TESTS=1 distribution distributeworld distributekernel # sudo cp $DESTDIR/boot/dtb/*.dtb /src/tftpboot/ fi if [ "$do_release" != "no" ]; then sudo -E make -C $SRCROOT/release KERNCONF=$KERNCONF $MODULES_FLAG $CLEAN_FLAGS DESTDIR=$DESTDIR WITHOUT_KERBEROS=1 WITHOUT_SENDMAIL=1 WITHOUT_EXAMPLES=1 WITHOUT_TESTS=1 WITHOUT_PORTS=1 WITHOUT_SRC=1 WITHOUT_PKG=1 WITHOUT_DOC=1 WITHOUT_DEBUG=1 WITHOUT_DEBUG_FILES=yes WITHOUT_MAN=1 WITH_VMIMAGES=1 vm-image # sudo -E make -C $SRCROOT/release KERNCONF=$KERNCONF $MODULES_FLAG $CLEAN_FLAGS DESTDIR=$DESTDIR WITHOUT_KERBEROS=1 WITHOUT_SENDMAIL=1 WITHOUT_EXAMPLES=1 WITHOUT_TESTS=1 WITHOUT_PORTS=1 WITHOUT_SRC=1 WITHOUT_PKG=1 WITHOUT_DOC=1 WITHOUT_DEBUG=1 WITHOUT_DEBUG_FILES=yes WITHOUT_MAN=1 WITH_CLOUDWARE=yes CLOUDWARE=ec2 VMSIZE=4G VMFORMATS=raw cloudware-release fi