#!/bin/sh
set -e
export KBUILD_OUTPUT=""

ARCH=$1

case ${ARCH} in
aarch64)
	CROSS_COMPILE=aarch64-linux-gnu-
	;;
arm)
	CROSS_COMPILE=arm-linux-gnueabi-
	;;
armhf)
	CROSS_COMPILE=arm-linux-gnueabihf-
	;;
powerpc)
	CROSS_COMPILE=powerpc-linux-gnu-
	;;
*)
	echo $0 "(powerpc,armhf,aarch64,sparc) - Build a busybox initrd image"
	exit 0
	;;
esac

BUILD_PATH=`pwd`/.build/$ARCH
IMAGE_PATH=`pwd`/../images
export CROSS_COMPILE ARCH

mkdir -p $BUILD_PATH
if [ -d $BUILD_PATH/_install ] ; then rm -r $BUILD_PATH/_install ; fi

make O=$BUILD_PATH defconfig
../linux/scripts/config --file $BUILD_PATH/.config -e STATIC
../linux/scripts/config --file $BUILD_PATH/.config -d FEATURE_INITRD
../linux/scripts/config --file $BUILD_PATH/.config -e FEATURE_KILL_REMOVED

make O=$BUILD_PATH oldconfig
make O=$BUILD_PATH -j5
make O=$BUILD_PATH install

cd $BUILD_PATH/_install
mkdir etc etc/init.d proc sys dev

cat > etc/inittab << EOF
::sysinit:/etc/init.d/rcS
#::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
::restart:/sbin/init
EOF

cat > etc/init.d/rcS << EOF
#!/bin/sh
mount devtmpfs /dev -t devtmpfs
mount proc /proc -t proc
mount sys /sys -t sysfs
mount debug /sys/kernel/debug -t debugfs

sed 's/\(tty[a-zA-Z0-9]*\).*/\1::askfirst:-\/bin\/sh/' /proc/consoles >> /etc/inittab
kill -SIGHUP 1
EOF
chmod a+x etc/init.d/rcS

find . | cpio -o --format=newc > $IMAGE_PATH/busybox-$ARCH.img

