#!/bin/bash

exec_name=$0

set -o errtrace
trap 'echo Fatal error: script ${exec_name} aborting at line $LINENO, command \"$BASH_COMMAND\" returned $?; exit 1' ERR

KERNEL_ARCH=arm64
LOCAL_PATH=$(pwd)
CROSS_COMPILE=${LOCAL_PATH}/../prebuilt/toolchain/aarch64/bin/aarch64-cros-linux-gnu-
KDIR=${LOCAL_PATH}/../kernel
cpu_num=$(grep -c processor /proc/cpuinfo)

GPU_VERSION_BIFROST=r44p0
GPU_LOW_MEM=0

EXTRA_INCLUDE=-I${LOCAL_PATH}/bifrost/${GPU_VERSION_BIFROST}/kernel/include

echo "make mali module KERNEL_ARCH is ${KERNEL_ARCH}"

function usage(){
  echo "Usage: ${exec_name} <product> [workspace path]"
  echo "supported products: sabrina"
  echo "Note: if [workspace path] is not set, it still builds"
}

function run_module_make(){
  pushd .
  echo "***** building $1 *****"
  case $1 in
    bifrost)
      make -C ${KDIR} M=${LOCAL_PATH}/bifrost/${GPU_VERSION_BIFROST}/kernel/drivers/gpu/arm/midgard \
            ARCH=${KERNEL_ARCH} CROSS_COMPILE=${CROSS_COMPILE} \
            EXTRA_CFLAGS="-DCONFIG_MALI_LOW_MEM=${GPU_LOW_MEM} -DCONFIG_MALI_REAL_HW -DCONFIG_MALI_PLATFORM_DEVICETREE -DCONFIG_MALI_MIDGARD_DVFS -DCONFIG_MALI_BACKEND=gpu -DCONFIG_MALI_GATOR_SUPPORT " \
            CONFIG_MALI_MIDGARD=m CONFIG_MALI_PLATFORM_DEVICETREE=y CONFIG_MALI_MIDGARD_DVFS=y CONFIG_MALI_BACKEND=gpu  CONFIG_MALI_GATOR_SUPPORT=y CONFIG_MALI_PLATFORM_NAME="devicetree" CONFIG_MALI_REAL_HW=y \
            EXTRA_CFLAGS+="-Wno-error=larger-than=16384 -DCONFIG_MALI_DMA_BUF_MAP_ON_DEMAND=1 -DCONFIG_MALI_DMA_BUF_LEGACY_COMPAT=0 ${EXTRA_INCLUDE}" \
            EXTRA_LDFLAGS+="--strip-debug" \
            -j$cpu_num modules
    ;;
  esac
  echo "***** completed building *****"
  popd
}

if (( $# < 1 ))
then
  usage
  exit 2
fi

readonly product=$1
readonly workspace_path=$2

case $product in
  sabrina)
    run_module_make bifrost
    if [ ! -z $workspace_path ]; then
      prebuilt_path=${workspace_path}/device/google/sabrina-kernel
      mali_ko_path=${prebuilt_path}/lib/modules
      mkdir -p ${mali_ko_path}
      cp -v ${LOCAL_PATH}/bifrost/${GPU_VERSION_BIFROST}/kernel/drivers/gpu/arm/midgard/mali_kbase.ko ${mali_ko_path}/mali.ko
    fi
    ;;
  *)
    echo "unknown product: $product"
    exit 1
esac
