#!/usr/bin/make -f

export DH_VERBOSE=1

include /usr/share/dpkg/pkg-info.mk
include /usr/share/dpkg/architecture.mk
include /usr/share/dpkg/buildflags.mk

SHELL=/bin/bash

%:
	dh $@

override_dh_strip:
	# pass

override_dh_auto_build-arch:
	# /usr/src/packages/SOURCES is OBS specific path
	mkdir edk2-platforms; \
	tar xf /usr/src/packages/SOURCES/edk2-platforms-03d1c51.tar.gz -C edk2-platforms --strip-components=1; \
	for i in edk2-submodule-BaseTools-Source-C-BrotliCompress-brotli.tar.gz \
		edk2-submodule-CryptoPkg-Library-OpensslLib-openssl.tar.gz \
		edk2-submodule-MdeModulePkg-Library-BrotliCustomDecompressLib-brotli.tar.gz \
		edk2-submodule-MdeModulePkg-Universal-RegularExpressionDxe-oniguruma.tar.gz \
		edk2-submodule-RedfishPkg-Library-JsonLib-jansson.tar.gz \
		edk2-submodule-UnitTestFrameworkPkg-Library-CmockaLib-cmocka.tar.gz \
		edk2-submodule-CryptoPkg-Library-MbedTlsLib-mbedtls.tar.gz \
		edk2-submodule-MdePkg-Library-BaseFdtLib-libfdt.tar.gz \
		edk2-submodule-MdePkg-Library-MipiSysTLib-mipisyst.tar.gz \
		edk2-submodule-SecurityPkg-DeviceSecurity-SpdmLib-libspdm.tar.gz \
		edk2-submodule-UnitTestFrameworkPkg-Library-GoogleTestLib-googletest.tar.gz \
		edk2-submodule-UnitTestFrameworkPkg-Library-SubhookLib-subhook.tar.gz; do \
		tar xf /usr/src/packages/SOURCES/$$i; \
	done; \
	export PACKAGES_PATH=$(EDK2_PACKAGES_PATH); \
	. ./edksetup.sh; \
	make -C BaseTools EXTRA_OPTFLAGS="-Wno-vla-parameter"; \
	sed -ie 's,-Werror,,g' Conf/tools_def.txt; \
	build -a $(EDK2_ARCH) -t GCC5 -p $(EDK2_DSC) -b RELEASE

override_dh_auto_install:
	
	install -d debian/edk2-cloud-hypervisor/usr
	install -d debian/edk2-cloud-hypervisor/usr/share
	install -d debian/edk2-cloud-hypervisor/usr/share/cloud-hypervisor
	install -D -m 644 $(EDK2_FD_PATH) debian/edk2-cloud-hypervisor/usr/share/cloud-hypervisor/CLOUDHV_EFI.fd

override_dh_auto_clean:
	rm -rf edk2-platforms

ifeq ($(DEB_BUILD_ARCH_CPU), amd64)
    EDK2_ARCH := X64
    EDK2_DSC := OvmfPkg/CloudHv/CloudHvX64.dsc
    EDK2_FD_PATH := Build/CloudHvX64/RELEASE_GCC5/FV/CLOUDHV.fd
    EDK2_PACKAGES_PATH := $$PWD
else ifeq ($(DEB_BUILD_ARCH_CPU), arm64)
    EDK2_ARCH := AARCH64
    EDK2_DSC := ArmVirtPkg/ArmVirtCloudHv.dsc
    EDK2_FD_PATH := Build/ArmVirtCloudHv-AARCH64/RELEASE_GCC5/FV/CLOUDHV_EFI.fd
    EDK2_PACKAGES_PATH := $$PWD:$$PWD/edk2-platforms
else
    $(error unrecognized build host instruction set $(DEB_HOST_ARCH_CPU)!)
endif

