#!/bin/sh

umount /mnt # optional

test -x "bin/busybox-$HOST" && {
	echo "Found bin/busybox-$HOST, using it"
	cp -a "bin/busybox-$HOST" bin/busybox
	bin/busybox --install -s bin/
	# Supply missing stuff (e.g. bzip2):
	PATH="$PATH:$PWD/bin"
	# Override known-buggy host binaries:
	cp -af bin/od `which od`
}

(
	#set -e -x
	cd busybox

	make defconfig
	# Want static build
	sed 's/^.*CONFIG_STATIC.*$/CONFIG_STATIC=y/' -i .config
	bzip2 </dev/null >/dev/null || {
		# Drats, newer Aboriginal Linux has no bzip2
		sed 's/^.*CONFIG_FEATURE_COMPRESS_USAGE.*$/# CONFIG_FEATURE_COMPRESS_USAGE is not set/' -i .config
	}
	test x"`uname -m`" = x"mips" && {
		# Without this, I get MIPS-I binary instead of MIPS32.
		# No idea what's the difference, but my router wants MIPS32.
		sed 's/^.*CONFIG_EXTRA_CFLAGS.*$/CONFIG_EXTRA_CFLAGS="-mips32"/' -i .config
	}
	# These won't build because of toolchain/libc breakage:
	sed 's/^.*CONFIG_FEATURE_SYNC_FANCY.*$/# CONFIG_FEATURE_SYNC_FANCY is not set/' -i .config # no syncfs() on armv4l, sparc
	sed 's/^.*CONFIG_FEATURE_WTMP.*$/# CONFIG_FEATURE_WTMP is not set/' -i .config
	sed 's/^.*CONFIG_FEATURE_UTMP.*$/# CONFIG_FEATURE_UTMP is not set/' -i .config
	sed 's/^.*CONFIG_FEATURE_INETD_RPC.*$/# CONFIG_FEATURE_INETD_RPC is not set/' -i .config

	make #V=1 || sh
	test -f busybox || exit 1
	size busybox
	./busybox || echo "Exit code: $?"
	if uuencode TEST </dev/null >/dev/null && bzip2 </dev/null >/dev/null; then
		bzip2 <busybox | uuencode busybox.bz2
	else
		od -v -tx1 <busybox
	fi
	#test "x$FTP_PORT" = x ||
	#	ftpput -P "$FTP_PORT" "$FTP_SERVER" strace
) 2>&1 | tee build.log
mount -o remount,ro /home
sync
sleep 1
