#!/bin/bash

CROSS_COMPILE="~/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-"
SRC_DIR="~/kernel-src"
BIN_DIR="~/kernel-bin"
TMP_DIR="~/kernel-tmp"
KBUILD_BUILD_USER=user
KBUILD_BUILD_HOST=host
ARCH="arm"
MAKE_CMD="make -C $SRC_DIR O=$TMP_DIR CROSS_COMPILE=$CROSS_COMPILE ARCH=$ARCH"

mkdir -p $BIN_DIR/boot
mkdir -p $TMP_DIR

print_error () {
        echo -e "\033[0;31m[ERROR\033[0m] Code $1"
        exit 1
}

case "$1" in
        "")
                echo "Use as $0 {menu|modules|device_name|make_command}"
                exit 65;;
        "menu")
                $MAKE_CMD menuconfig
                ;;
        "armada-375-wdmc-gen2")
                $MAKE_CMD zImage || print_error $?
                $MAKE_CMD $1.dts || print_error $?

                cat arch/arm/boot/zImage arch/arm/boot/dts/$1.dtb > $TMP_DIR/zImage_dtb
                mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n $1 -d $TMP_DIR/zImage_dtb $BIN_DIR/boot/uImage
                cp .config $BIN_DIR/boot/kernel.config
                ;;
        "modules")
                $MAKE_CMD modules || print_error $?
                $MAKE_CMD INSTALL_MOD_PATH=$BIN_DIR modules_install || print_error $?
                ;;
        "clean")
                rm -r $TMP_DIR
                ;;
        *)
                $MAKE_CMD "$@"
                ;;
esac
