diff --git a/build_mainline.sh b/build_mainline.sh
index 0b93fe1a0e2e784d680c4162fd776d2b82c2d280..765a0e9cfd95331ab5e767b3fb73ec83e696be1e 100755
--- a/build_mainline.sh
+++ b/build_mainline.sh
@@ -1,4 +1,4 @@
-#!/bin/bash -e
+#!/bin/sh -e
 #
 # Copyright (c) 2009-2013 Robert Nelson <robertcnelson@gmail.com>
 #
@@ -24,11 +24,11 @@ DIR=$PWD
 
 mkdir -p ${DIR}/deploy/
 
-function patch_kernel {
+patch_kernel () {
 	cd ${DIR}/KERNEL
 
 	export DIR GIT_OPTS
-	/bin/bash -e ${DIR}/patch.sh || { git add . ; exit 1 ; }
+	/bin/sh -e ${DIR}/patch.sh || { git add . ; exit 1 ; }
 
 	if [ ! "${RUN_BISECT}" ] ; then
 		git add .
@@ -40,13 +40,13 @@ function patch_kernel {
 
 	if [ "${LOCAL_PATCH_DIR}" ] ; then
 		for i in ${LOCAL_PATCH_DIR}/*.patch ; do patch  -s -p1 < $i ; done
-		BUILD+='+'
+		BUILD="${BUILD}+"
 	fi
 
 	cd ${DIR}/
 }
 
-function copy_defconfig {
+copy_defconfig () {
 	cd ${DIR}/KERNEL/
 	make ARCH=arm CROSS_COMPILE=${CC} distclean
 	make ARCH=arm CROSS_COMPILE=${CC} ${config}
@@ -54,25 +54,25 @@ function copy_defconfig {
 	cd ${DIR}/
 }
 
-function make_menuconfig {
+make_menuconfig () {
 	cd ${DIR}/KERNEL/
 	make ARCH=arm CROSS_COMPILE=${CC} menuconfig
 	cp -v .config ${DIR}/patches/MOD_${config}
 	cd ${DIR}/
 }
 
-function make_kernel {
+make_kernel () {
 	cd ${DIR}/KERNEL/
 	echo "-----------------------------"
 	echo "make -j${CORES} ARCH=arm LOCALVERSION=-${BUILD} CROSS_COMPILE=\"${CC}\" ${CONFIG_DEBUG_SECTION} zImage modules"
 	echo "-----------------------------"
-	time make -j${CORES} ARCH=arm LOCALVERSION=-${BUILD} CROSS_COMPILE="${CC}" ${CONFIG_DEBUG_SECTION} zImage modules
+	make -j${CORES} ARCH=arm LOCALVERSION=-${BUILD} CROSS_COMPILE="${CC}" ${CONFIG_DEBUG_SECTION} zImage modules
 
 	unset DTBS
-	cat ${DIR}/KERNEL/arch/arm/Makefile | grep "dtbs:" &> /dev/null && DTBS=1
+	cat ${DIR}/KERNEL/arch/arm/Makefile | grep "dtbs:" >/dev/null 2>&1 && DTBS=1
 	if [ "x${DTBS}" != "x" ] ; then
 		echo "make -j${CORES} ARCH=arm LOCALVERSION=-${BUILD} CROSS_COMPILE=\"${CC}\" ${CONFIG_DEBUG_SECTION} dtbs"
-		time make -j${CORES} ARCH=arm LOCALVERSION=-${BUILD} CROSS_COMPILE="${CC}" ${CONFIG_DEBUG_SECTION} dtbs
+		make -j${CORES} ARCH=arm LOCALVERSION=-${BUILD} CROSS_COMPILE="${CC}" ${CONFIG_DEBUG_SECTION} dtbs
 		ls arch/arm/boot/* | grep dtb || unset DTBS
 	fi
 
@@ -88,61 +88,79 @@ function make_kernel {
 	cd ${DIR}/
 }
 
-function make_modules_pkg {
+make_modules_pkg () {
 	cd ${DIR}/KERNEL/
 
 	echo "-----------------------------"
 	echo "Building Module Archive"
 	echo "-----------------------------"
 
-	rm -rf ${DIR}/deploy/mod &> /dev/null || true
-	mkdir -p ${DIR}/deploy/mod
-	make ARCH=arm CROSS_COMPILE=${CC} modules_install INSTALL_MOD_PATH=${DIR}/deploy/mod
+	if [ -d ${DIR}/deploy/tmp ] ; then
+		rm -rf ${DIR}/deploy/tmp || true
+	fi
+	mkdir -p ${DIR}/deploy/tmp
+
+	make ARCH=arm CROSS_COMPILE=${CC} modules_install INSTALL_MOD_PATH=${DIR}/deploy/tmp
+
+	cd ${DIR}/deploy/tmp
 	echo "-----------------------------"
 	echo "Building ${KERNEL_UTS}-modules.tar.gz"
-	cd ${DIR}/deploy/mod
 	tar czf ../${KERNEL_UTS}-modules.tar.gz *
 	echo "-----------------------------"
+
 	cd ${DIR}/
+	rm -rf ${DIR}/deploy/tmp || true
 }
 
-function make_firmware_pkg {
+make_firmware_pkg () {
 	cd ${DIR}/KERNEL/
 
 	echo "-----------------------------"
 	echo "Building Firmware Archive"
 	echo "-----------------------------"
 
-	rm -rf ${DIR}/deploy/fir &> /dev/null || true
-	mkdir -p ${DIR}/deploy/fir
-	make ARCH=arm CROSS_COMPILE=${CC} firmware_install INSTALL_FW_PATH=${DIR}/deploy/fir
+	if [ -d ${DIR}/deploy/tmp ] ; then
+		rm -rf ${DIR}/deploy/tmp || true
+	fi
+	mkdir -p ${DIR}/deploy/tmp
+
+	make ARCH=arm CROSS_COMPILE=${CC} firmware_install INSTALL_FW_PATH=${DIR}/deploy/tmp
+
+	cd ${DIR}/deploy/tmp
 	echo "-----------------------------"
 	echo "Building ${KERNEL_UTS}-firmware.tar.gz"
-	cd ${DIR}/deploy/fir
 	tar czf ../${KERNEL_UTS}-firmware.tar.gz *
 	echo "-----------------------------"
+
 	cd ${DIR}/
+	rm -rf ${DIR}/deploy/tmp || true
 }
 
-function make_dtbs_pkg {
+make_dtbs_pkg () {
 	cd ${DIR}/KERNEL/
 
 	echo "-----------------------------"
 	echo "Building DTBS Archive"
 	echo "-----------------------------"
 
-	rm -rf ${DIR}/deploy/dtbs &> /dev/null || true
-	mkdir -p ${DIR}/deploy/dtbs
-	find ./arch/arm/boot/ -iname "*.dtb" -exec cp -v '{}' ${DIR}/deploy/dtbs/ \;
-	cd ${DIR}/deploy/dtbs
+	if [ -d ${DIR}/deploy/tmp ] ; then
+		rm -rf ${DIR}/deploy/tmp || true
+	fi
+	mkdir -p ${DIR}/deploy/tmp
+
+	find ./arch/arm/boot/ -iname "*.dtb" -exec cp -v '{}' ${DIR}/deploy/tmp/ \;
+
+	cd ${DIR}/deploy/tmp
 	echo "-----------------------------"
 	echo "Building ${KERNEL_UTS}-dtbs.tar.gz"
 	tar czf ../${KERNEL_UTS}-dtbs.tar.gz *
 	echo "-----------------------------"
+
 	cd ${DIR}/
+	rm -rf ${DIR}/deploy/tmp || true
 }
 
-/bin/bash -e ${DIR}/tools/host_det.sh || { exit 1 ; }
+/bin/sh -e ${DIR}/tools/host_det.sh || { exit 1 ; }
 
 if [ ! -f ${DIR}/system.sh ] ; then
 	cp ${DIR}/system.sh.sample ${DIR}/system.sh
@@ -152,12 +170,12 @@ unset CC
 unset DEBUG_SECTION
 unset LINUX_GIT
 unset LOCAL_PATCH_DIR
-source ${DIR}/system.sh
-/bin/bash -e "${DIR}/scripts/gcc.sh" || { exit 1 ; }
-source ${DIR}/.CC
+. ${DIR}/system.sh
+/bin/sh -e "${DIR}/scripts/gcc.sh" || { exit 1 ; }
+. ${DIR}/.CC
 echo "debug: CC=${CC}"
 
-source ${DIR}/version.sh
+. ${DIR}/version.sh
 export LINUX_GIT
 
 unset CONFIG_DEBUG_SECTION
@@ -169,10 +187,10 @@ fi
 FULL_REBUILD=1
 if [ "${FULL_REBUILD}" ] ; then
 	export TOPOFTREE=1
-	/bin/bash -e "${DIR}/scripts/git.sh" || { exit 1 ; }
+	/bin/sh -e "${DIR}/scripts/git.sh" || { exit 1 ; }
 
 	if [ "${RUN_BISECT}" ] ; then
-		/bin/bash -e "${DIR}/scripts/bisect.sh" || { exit 1 ; }
+		/bin/sh -e "${DIR}/scripts/bisect.sh" || { exit 1 ; }
 	fi
 
 	#patch_kernel