#!/bin/bash LOCAL_PATH=`pwd` BASE_PATH=$(cd "$(dirname $0)"; pwd) export ARCH=arm if [ ${ARCH} = arm ] then KERNEL_CONFIG=meson64_a32_defconfig export KERNEL_A32_SUPPORT=true export CROSS_COMPILE=arm-linux-gnueabihf- else KERNEL_CONFIG=meson64_a64_defconfig export CROSS_COMPILE=aarch64-linux-gnu- fi if [ "${KERNEL_SRC_DIR}" = "" ] then KERNEL_SRC_DIR=${BASE_PATH}/../../../../../common/ fi if [ "${KERNEL_OUT_DIR}" = "" ] then KERNEL_OUT_DIR=${BASE_PATH}/../../../../../common/ fi show_help() { echo "*** Please export KERNEL_SRC_DIR and KERNEL_OUT_DIR before building." echo "e.g." echo " export KERNEL_SRC_DIR=/mnt/fileroot/peifu/kernel" echo " export KERNEL_OUT_DIR=/mnt/fileroot/peifu/kernel/out" echo " ./build_gx.sh" } show_path() { echo "*** KERNEL_SRC_DIR=$KERNEL_SRC_DIR" echo "*** KERNEL_OUT_DIR=$KERNEL_OUT_DIR" } do_build() { if [ ! -d $KERNEL_SRC_DIR ]; then echo "*** $KERNEL_SRC_DIR: No such directory!" show_help; exit; fi if [ ! -d $KERNEL_OUT_DIR ]; then echo "*** $KERNEL_OUT_DIR not exist, create now\n" mkdir -p $KERNEL_OUT_DIR fi if [ ! -e $KERNEL_OUT_DIR/include/generated/autoconf.h ]; then make -C $KERNEL_SRC_DIR O=$KERNEL_OUT_DIR $KERNEL_CONFIG make -C $KERNEL_SRC_DIR O=$KERNEL_OUT_DIR modules_prepare fi make -C $KERNEL_SRC_DIR O=$KERNEL_OUT_DIR M=$LOCAL_PATH modules } do_clean() { if [ ! -d $KERNEL_SRC_DIR ]; then echo "*** $KERNEL_SRC_DIR: No such directory!\n" show_help; exit; fi make -C $KERNEL_SRC_DIR O=$KERNEL_OUT_DIR M=$LOCAL_PATH clean } if [ "$1" = "help" ]; then show_help; exit; elif [ "$1" = "clean" ]; then do_clean; exit; else show_path; do_build; fi