#!/usr/bin/make -f

PWD:=$(shell pwd)
BOOT_PATH:=$(PWD)/debian/tmp/boot/u-boot

BUILD_DIR:=$(PWD)/debian/build
BUILD_DIR_R5:=$(PWD)/debian/build/r5
BUILD_DIR_A53:=$(PWD)/debian/build/a53

# TI Linux Firmware is a build dependency
TI_LINUX_FIRMWARE_PATH:=$(BUILD_DIR)/ti-linux-firmware/
TI_LINUX_FIRMWARE_BRANCH:=09.02.00.010

# OP-TEE is a build dependency
OPTEE_OS_PATH:=$(BUILD_DIR)/optee_os/out/arm-plat-k3/core/tee-raw.bin
OPTEE_OS_BRANCH:=4.2.0

# ARM Trusted Firmware is a build dependency
ATF_PATH:=$(BUILD_DIR)/trusted-firmware-a/build/k3/lite/release/bl31.bin
ATF_BRANCH:=lts-v2.10.3

# Common make options for R5 image
MAKE_OPTS_R5= ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=$(BUILD_DIR_R5)
# Common make options for A53 image
MAKE_OPTS_A53= ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- O=$(BUILD_DIR_A53)
# Common make options for OP-TEE
MAKE_OPTS_OPTEE= CROSS_COMPILE=arm-linux-gnueabihf- CROSS_COMPILE64=aarch64-linux-gnu- PLATFORM=k3-am64x CFG_ARM64_core=y
# Common make options for Trusted Firmware A
MAKE_OPTS_TFA= CROSS_COMPILE=aarch64-linux-gnu- ARCH=aarch64 SPD=opteed TARGET_BOARD=lite

#export DH_VERBOSE=1
export LDFLAGS=
export CFLAGS=

override_dh_auto_test:
	# skip tests.

override_dh_auto_clean:
	rm -rf $(BUILD_DIR)
	rm -f debian/files
	rm -rf debian/tmp

override_dh_auto_configure:
	mkdir -p $(BUILD_DIR)
	mkdir -p $(BUILD_DIR_R5)
	mkdir -p $(BUILD_DIR_A53)
	\
	git clone https://git.ti.com/git/processor-firmware/ti-linux-firmware.git --branch $(TI_LINUX_FIRMWARE_BRANCH) --single-branch --depth 1 $(BUILD_DIR)/ti-linux-firmware
	git clone https://github.com/OP-TEE/optee_os.git --branch $(OPTEE_OS_BRANCH) --single-branch --depth 1 $(BUILD_DIR)/optee_os
	git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git --branch $(ATF_BRANCH) --single-branch --depth 1 $(BUILD_DIR)/trusted-firmware-a
	\
	${MAKE_OPTS_OPTEE} make -C $(BUILD_DIR)/optee_os
	${MAKE_OPTS_TFA} make -C $(BUILD_DIR)/trusted-firmware-a PLAT=k3
	\
	make $(MAKE_OPTS_R5) am64x_evm_r5_defconfig
	make $(MAKE_OPTS_A53) am64x_evm_a53_defconfig

override_dh_auto_build:
	BINMAN_INDIRS=${TI_LINUX_FIRMWARE_PATH} make -j $(shell nproc) $(MAKE_OPTS_R5)
	BINMAN_INDIRS=${TI_LINUX_FIRMWARE_PATH} BL31=${ATF_PATH} TEE=${OPTEE_OS_PATH} make -j $(shell nproc) $(MAKE_OPTS_A53)

override_dh_auto_install:
	mkdir -p $(BOOT_PATH)
	cp $(BUILD_DIR_R5)/tiboot3-am64x_sr2-hs-fs-evm.bin $(BOOT_PATH)/tiboot3.bin
	cp $(BUILD_DIR_A53)/tispl.bin $(BOOT_PATH)
	cp $(BUILD_DIR_A53)/u-boot.img $(BOOT_PATH)


# Override the default dh_builddeb target to use xz compression (otherwise when using Ubuntu for packaging .zst will be used which isn't supported in bullseye)
override_dh_builddeb:
	dh_builddeb -- -Zxz

%:
	dh $@