[isar-cip-core][PATCH 1/8] add recipe for edk2


Jan Kiszka
 

On 27.10.22 18:14, Schultschik, Sven (DI PA DCP R&D 2) wrote:
The last release they had was in Aug 27 2020 and the commit used in
edk2 Is from Januar 10, 2022.
So google/brotli would be added as git again, trying to get all at the
right spot.
I don't think that you would safe speed and space and you would add
Complexity.
I think you can use below link to get a commit:
https://github.co
m%2Fgoogle%2Fbrotli%2Farchive%2Ff4153a09f87cbb9c826d8fc12c74642bb2d8
79.tar.gz&

which results in:

-rw-r--r-- 1 *** *** 501K Oct 27 09:32
f4153a09f87cbb9c826d8fc12c74642bb2d879.tar.gz
I reworked with tarballs. But I only added those needed for this build
scenario
to keep the complexity low.
Sounds like a good improvement.

We are only building part of EDK2 here, right? Then please rename the
recipe accordingly.


Therefor I would keep it as bb.
?

Jan

--
Siemens AG, Technology
Competence Center Embedded Linux


Schultschik, Sven
 

The last release they had was in Aug 27 2020 and the commit used in
edk2 Is from Januar 10, 2022.
So google/brotli would be added as git again, trying to get all at the
right spot.
I don't think that you would safe speed and space and you would add
Complexity.
I think you can use below link to get a commit:
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.co
m%2Fgoogle%2Fbrotli%2Farchive%2Ff4153a09f87cbb9c826d8fc12c74642bb2d8
79.tar.gz&

which results in:

-rw-r--r-- 1 *** *** 501K Oct 27 09:32
f4153a09f87cbb9c826d8fc12c74642bb2d879.tar.gz
I reworked with tarballs. But I only added those needed for this build
scenario
to keep the complexity low.

Therefor I would keep it as bb.


Su, Bao Cheng
 

On Wed, 2022-10-26 at 14:44 +0000, Schultschik, Sven (DI PA DCP R&D 2)
wrote:

-----Ursprüngliche Nachricht-----
Von: Su, Bao Cheng (DI FA CTR IPC CN PRC4) <baocheng.su@...>
Gesendet: Dienstag, 25. Oktober 2022 10:23
An: Schultschik, Sven (DI PA DCP R&D 2) <sven.schultschik@...>;
cip-
dev@...
Cc: Kiszka, Jan (T CED) <jan.kiszka@...>
Betreff: Re: [isar-cip-core][PATCH 1/8] add recipe for edk2

On Mon, 2022-10-24 at 14:27 +0200, sven.schultschik@... wrote:
From: Sven Schultschik <sven.schultschik@...>

+SRC_URI =
"gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https;destsuff
ix=git/edk2;name=edk2 \
+ git://github.com/tianocore/edk2-
platforms.git;protocol=https;destsuffix=git/edk2-platforms;name=edk2-
platforms \
+ file://rules.tmpl \
+ "
+SRCREV_edk2 = "edk2-stable${PV}"
+SRCREV_edk2-platforms = "3b896d1a325686de3942723c42f286090453e37a"
+
git clone shows almost 3GiB need be cloned:

Receiving objects: 100% (449873/449873), 345.43 MiB | 645.00 KiB/s
Receiving
objects: 100% (621839/621839), 387.81 MiB | 2.70 MiB/s Receiving objects:
100% (294131/294131), 379.77 MiB | 2.84 MiB/s Receiving objects: 100%
(193740/193740), 1.40 GiB | 2.61 MiB/s Receiving objects: 100%
(257204/257204), 75.65 MiB | 2.82 MiB/s Receiving objects: 100%
(2931/2931),
827.33 KiB | 661.00 KiB/s Receiving objects: 100% (3254/3254), 945.31 KiB

974.00 KiB/s Receiving objects: 100% (14888/14888), 6.26 MiB | 2.19 MiB/s
Receiving objects: 100% (9737/9737), 47.26 MiB | 2.69 MiB/s Receiving
objects:
100% (8383/8383), 2.24 MiB | 1.57 MiB/s, Receiving objects: 100%
(300301/300301), 271.63 MiB | 1.72 MiB/s

This is too huge, use tarballs instead?
I checked and in my opinion it is not an option.
EDK2 has a released tar.gz, but it is missing the submodules.
The first submodule I tried to add as tar file as well was google/brotli
https://github.com/google/brotli/tree/f4153a09f87cbb9c826d8fc12c74642bb2d879
ea
The last release they had was in Aug 27 2020 and the commit used in edk2
Is from Januar 10, 2022.
So google/brotli would be added as git again, trying to get all at the right
spot.
I don't think that you would safe speed and space and you would add
Complexity.
I think you can use below link to get a commit:
https://github.com/google/brotli/archive/f4153a09f87cbb9c826d8fc12c74642bb2d879.tar.gz

which results in:

-rw-r--r-- 1 *** *** 501K Oct 27 09:32
f4153a09f87cbb9c826d8fc12c74642bb2d879.tar.gz

And the git clone size is 49MB for this repo.

- Baocheng Su


Schultschik, Sven
 

-----Ursprüngliche Nachricht-----
Von: Su, Bao Cheng (DI FA CTR IPC CN PRC4) <baocheng.su@...>
Gesendet: Dienstag, 25. Oktober 2022 10:23
An: Schultschik, Sven (DI PA DCP R&D 2) <sven.schultschik@...>;
cip-
dev@...
Cc: Kiszka, Jan (T CED) <jan.kiszka@...>
Betreff: Re: [isar-cip-core][PATCH 1/8] add recipe for edk2

On Mon, 2022-10-24 at 14:27 +0200, sven.schultschik@... wrote:
From: Sven Schultschik <sven.schultschik@...>

+SRC_URI =
"gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https;destsuff
ix=git/edk2;name=edk2 \
+ git://github.com/tianocore/edk2-
platforms.git;protocol=https;destsuffix=git/edk2-platforms;name=edk2-
platforms \
+ file://rules.tmpl \
+ "
+SRCREV_edk2 = "edk2-stable${PV}"
+SRCREV_edk2-platforms = "3b896d1a325686de3942723c42f286090453e37a"
+
git clone shows almost 3GiB need be cloned:

Receiving objects: 100% (449873/449873), 345.43 MiB | 645.00 KiB/s
Receiving
objects: 100% (621839/621839), 387.81 MiB | 2.70 MiB/s Receiving objects:
100% (294131/294131), 379.77 MiB | 2.84 MiB/s Receiving objects: 100%
(193740/193740), 1.40 GiB | 2.61 MiB/s Receiving objects: 100%
(257204/257204), 75.65 MiB | 2.82 MiB/s Receiving objects: 100%
(2931/2931),
827.33 KiB | 661.00 KiB/s Receiving objects: 100% (3254/3254), 945.31 KiB
|
974.00 KiB/s Receiving objects: 100% (14888/14888), 6.26 MiB | 2.19 MiB/s
Receiving objects: 100% (9737/9737), 47.26 MiB | 2.69 MiB/s Receiving
objects:
100% (8383/8383), 2.24 MiB | 1.57 MiB/s, Receiving objects: 100%
(300301/300301), 271.63 MiB | 1.72 MiB/s

This is too huge, use tarballs instead?
I checked and in my opinion it is not an option.
EDK2 has a released tar.gz, but it is missing the submodules.
The first submodule I tried to add as tar file as well was google/brotli
https://github.com/google/brotli/tree/f4153a09f87cbb9c826d8fc12c74642bb2d879
ea
The last release they had was in Aug 27 2020 and the commit used in edk2
Is from Januar 10, 2022.
So google/brotli would be added as git again, trying to get all at the right
spot.
I don't think that you would safe speed and space and you would add
Complexity.


Su, Bao Cheng
 

On Mon, 2022-10-24 at 14:27 +0200, sven.schultschik@... wrote:
From: Sven Schultschik <sven.schultschik@...>

provide a recipe to create the BL32_AP_MM.fd binary by edk2 which is needed for the qemu optee generation as dependency.

Signed-off-by: Sven Schultschik <sven.schultschik@...>
---
 recipes-bsp/edk2/edk2_202205.bb | 43 ++++++++++++++++++++++
 recipes-bsp/edk2/files/rules.tmpl | 61 +++++++++++++++++++++++++++++++
 2 files changed, 104 insertions(+)
 create mode 100644 recipes-bsp/edk2/edk2_202205.bb
 create mode 100755 recipes-bsp/edk2/files/rules.tmpl

diff --git a/recipes-bsp/edk2/edk2_202205.bb b/recipes-bsp/edk2/edk2_202205.bb
What about turn this one to a .inc so downstream could easily choose
another edk2 version?

new file mode 100644
index 000000000..056b612ce
--- /dev/null
+++ b/recipes-bsp/edk2/edk2_202205.bb
@@ -0,0 +1,43 @@
+#
+# CIP Core, generic profile
+#
+# Copyright (c) Siemens AG, 2022
+#
+# Authors:
+# Sven Schultschik <sven.schultschik@...>
+#
+# SPDX-License-Identifier: MIT
+#
+
+HOMEPAGE = "https://github.com/tianocore/edk2"
+MAINTAINER = "Sven Schultschik <sven.schultschik@...>"
+LICENSE = "BSD-2-Clause-Patent"
+
+inherit dpkg
+
+SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https;destsuffix=git/edk2;name=edk2 \
+ git://github.com/tianocore/edk2-platforms.git;protocol=https;destsuffix=git/edk2-platforms;name=edk2-platforms \
+ file://rules.tmpl \
+ "
+SRCREV_edk2 = "edk2-stable${PV}"
+SRCREV_edk2-platforms = "3b896d1a325686de3942723c42f286090453e37a"
+
+S = "${WORKDIR}/git"
+
+DEBIAN_BUILD_DEPENDS = "python3:native, dh-python, uuid-dev:native"
+
+EDK2_BINARIES ?= "Build/MmStandaloneRpmb/RELEASE_GCC5/FV/BL32_AP_MM.fd"
+
+BUILD_DEPENDS += ""
+
+TEMPLATE_FILES = "rules.tmpl"
+
+do_prepare_build() {
+ deb_debianize
+
+ rm -f ${S}/debian/edk2.install
+ for binary in ${EDK2_BINARIES}; do
+ echo "$binary /usr/lib/edk2/" >> \
+ ${S}/debian/edk2.install
+ done
+}
diff --git a/recipes-bsp/edk2/files/rules.tmpl b/recipes-bsp/edk2/files/rules.tmpl
new file mode 100755
index 000000000..0a09c50e8
--- /dev/null
+++ b/recipes-bsp/edk2/files/rules.tmpl
@@ -0,0 +1,61 @@
+#!/usr/bin/make -f
+#
+# Copyright (c) Siemens AG, 2022
+#
+# SPDX-License-Identifier: MIT
+
+ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+export CROSS_COMPILE=$(DEB_HOST_GNU_TYPE)-
+endif
+
+export WORKSPACE=$(shell pwd)
+export PACKAGES_PATH=$(WORKSPACE)/edk2:$(WORKSPACE)/edk2-platforms
+export ACTIVE_PLATFORM="Platform/StandaloneMm/PlatformStandaloneMmPkg/PlatformStandaloneMmRpmb.dsc"
+
+# https://github.com/tianocore/edk2-platforms/blob/master/Readme.md#if-cross-compiling
+ifeq (arm64,$(DEB_TARGET_ARCH))
+export TARGET_ARCH = 'AARCH64'
+else ifeq ((armhf,$(DEB_TARGET_ARCH))
+export TARGET_ARCH = 'ARM'
+else ifeq ((amd64,$(DEB_TARGET_ARCH))
+export TARGET_ARCH = 'X64'
+else ifeq ((i386,$(DEB_TARGET_ARCH))
+export TARGET_ARCH = 'IA32'
+else
+$(error DEB_TARGET_ARCH $(DEB_TARGET_ARCH) unsupported)
+endif
+# When cross-compiling, or building with a different version of the compiler than
+# the default `gcc`, we additionally need to inform the
+# build command which toolchain to use. We do this by setting the environment
+# variable `{TOOL_CHAIN_TAG}_{TARGET_ARCH}_PREFIX` - in the case above,
+# **GCC5_AARCH64_PREFIX**.
+# export GCC5_AARCH64_PREFIX=aarch64-linux-gnu-
+# using export here at TOP Level does not work, because
+# GCC5_$(TARGET_ARCH)_PREFIX gets deleted again for what reason ever
+# Therefore it is set right before the build command
+# export GCC5_$(TARGET_ARCH)_PREFIX=$(DEB_HOST_GNU_TYPE)-
+
+
+export SHELL=/bin/bash
+
+# ENV Vars which should get set by edksetup.sh
+export PYTHON_COMMAND=python3
+export PYTHONHASHSEED=1
+export CONF_PATH=$(WORKSPACE)/edk2/Conf
+export EDK_TOOLS_PATH=$(WORKSPACE)/edk2/BaseTools
+export PATH=$(WORKSPACE)/edk2/BaseTools/Bin/Linux-$(TARGET_ARCH):$(WORKSPACE)/edk2/BaseTools/BinWrappers/PosixLike::/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+
+override_dh_auto_build:
+ source edk2/edksetup.sh --reconfig
+
+ CFLAGS= LDFLAGS= make -C edk2/BaseTools
+
+ (export GCC5_$(TARGET_ARCH)_PREFIX=$(DEB_HOST_GNU_TYPE)- && \
+ build -p $(ACTIVE_PLATFORM) -b RELEASE -a $(TARGET_ARCH) -t GCC5 -n $(shell nproc))
+
+override_dh_auto_install:
+
+override_dh_auto_test:
+
+%:
+ dh $@ --with python3 --no-parallel


Su, Bao Cheng
 

On Mon, 2022-10-24 at 14:27 +0200, sven.schultschik@... wrote:
From: Sven Schultschik <sven.schultschik@...>

provide a recipe to create the BL32_AP_MM.fd binary by edk2 which is needed for the qemu optee generation as dependency.

Signed-off-by: Sven Schultschik <sven.schultschik@...>
---
 recipes-bsp/edk2/edk2_202205.bb | 43 ++++++++++++++++++++++
 recipes-bsp/edk2/files/rules.tmpl | 61 +++++++++++++++++++++++++++++++
 2 files changed, 104 insertions(+)
 create mode 100644 recipes-bsp/edk2/edk2_202205.bb
 create mode 100755 recipes-bsp/edk2/files/rules.tmpl

diff --git a/recipes-bsp/edk2/edk2_202205.bb b/recipes-bsp/edk2/edk2_202205.bb
new file mode 100644
index 000000000..056b612ce
--- /dev/null
+++ b/recipes-bsp/edk2/edk2_202205.bb
@@ -0,0 +1,43 @@
+#
+# CIP Core, generic profile
+#
+# Copyright (c) Siemens AG, 2022
+#
+# Authors:
+# Sven Schultschik <sven.schultschik@...>
+#
+# SPDX-License-Identifier: MIT
+#
+
+HOMEPAGE = "https://github.com/tianocore/edk2"
+MAINTAINER = "Sven Schultschik <sven.schultschik@...>"
+LICENSE = "BSD-2-Clause-Patent"
+
+inherit dpkg
+
+SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https;destsuffix=git/edk2;name=edk2 \
+ git://github.com/tianocore/edk2-platforms.git;protocol=https;destsuffix=git/edk2-platforms;name=edk2-platforms \
+ file://rules.tmpl \
+ "
+SRCREV_edk2 = "edk2-stable${PV}"
+SRCREV_edk2-platforms = "3b896d1a325686de3942723c42f286090453e37a"
+
git clone shows almost 3GiB need be cloned:

Receiving objects: 100% (449873/449873), 345.43 MiB | 645.00 KiB/s
Receiving objects: 100% (621839/621839), 387.81 MiB | 2.70 MiB/s
Receiving objects: 100% (294131/294131), 379.77 MiB | 2.84 MiB/s
Receiving objects: 100% (193740/193740), 1.40 GiB | 2.61 MiB/s
Receiving objects: 100% (257204/257204), 75.65 MiB | 2.82 MiB/s
Receiving objects: 100% (2931/2931), 827.33 KiB | 661.00 KiB/s
Receiving objects: 100% (3254/3254), 945.31 KiB | 974.00 KiB/s
Receiving objects: 100% (14888/14888), 6.26 MiB | 2.19 MiB/s
Receiving objects: 100% (9737/9737), 47.26 MiB | 2.69 MiB/s
Receiving objects: 100% (8383/8383), 2.24 MiB | 1.57 MiB/s,
Receiving objects: 100% (300301/300301), 271.63 MiB | 1.72 MiB/s

This is too huge, use tarballs instead?

+S = "${WORKDIR}/git"
+
+DEBIAN_BUILD_DEPENDS = "python3:native, dh-python, uuid-dev:native"
+
+EDK2_BINARIES ?= "Build/MmStandaloneRpmb/RELEASE_GCC5/FV/BL32_AP_MM.fd"
+
+BUILD_DEPENDS += ""
+
+TEMPLATE_FILES = "rules.tmpl"
+
+do_prepare_build() {
+ deb_debianize
+
+ rm -f ${S}/debian/edk2.install
+ for binary in ${EDK2_BINARIES}; do
+ echo "$binary /usr/lib/edk2/" >> \
+ ${S}/debian/edk2.install
+ done
+}
diff --git a/recipes-bsp/edk2/files/rules.tmpl b/recipes-bsp/edk2/files/rules.tmpl
new file mode 100755
index 000000000..0a09c50e8
--- /dev/null
+++ b/recipes-bsp/edk2/files/rules.tmpl
@@ -0,0 +1,61 @@
+#!/usr/bin/make -f
+#
+# Copyright (c) Siemens AG, 2022
+#
+# SPDX-License-Identifier: MIT
+
+ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+export CROSS_COMPILE=$(DEB_HOST_GNU_TYPE)-
+endif
+
+export WORKSPACE=$(shell pwd)
+export PACKAGES_PATH=$(WORKSPACE)/edk2:$(WORKSPACE)/edk2-platforms
+export ACTIVE_PLATFORM="Platform/StandaloneMm/PlatformStandaloneMmPkg/PlatformStandaloneMmRpmb.dsc"
+
+# https://github.com/tianocore/edk2-platforms/blob/master/Readme.md#if-cross-compiling
+ifeq (arm64,$(DEB_TARGET_ARCH))
+export TARGET_ARCH = 'AARCH64'
+else ifeq ((armhf,$(DEB_TARGET_ARCH))
+export TARGET_ARCH = 'ARM'
+else ifeq ((amd64,$(DEB_TARGET_ARCH))
+export TARGET_ARCH = 'X64'
+else ifeq ((i386,$(DEB_TARGET_ARCH))
+export TARGET_ARCH = 'IA32'
+else
+$(error DEB_TARGET_ARCH $(DEB_TARGET_ARCH) unsupported)
+endif
+# When cross-compiling, or building with a different version of the compiler than
+# the default `gcc`, we additionally need to inform the
+# build command which toolchain to use. We do this by setting the environment
+# variable `{TOOL_CHAIN_TAG}_{TARGET_ARCH}_PREFIX` - in the case above,
+# **GCC5_AARCH64_PREFIX**.
+# export GCC5_AARCH64_PREFIX=aarch64-linux-gnu-
+# using export here at TOP Level does not work, because
+# GCC5_$(TARGET_ARCH)_PREFIX gets deleted again for what reason ever
+# Therefore it is set right before the build command
+# export GCC5_$(TARGET_ARCH)_PREFIX=$(DEB_HOST_GNU_TYPE)-
+
+
+export SHELL=/bin/bash
+
+# ENV Vars which should get set by edksetup.sh
+export PYTHON_COMMAND=python3
+export PYTHONHASHSEED=1
+export CONF_PATH=$(WORKSPACE)/edk2/Conf
+export EDK_TOOLS_PATH=$(WORKSPACE)/edk2/BaseTools
+export PATH=$(WORKSPACE)/edk2/BaseTools/Bin/Linux-$(TARGET_ARCH):$(WORKSPACE)/edk2/BaseTools/BinWrappers/PosixLike::/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+
+override_dh_auto_build:
+ source edk2/edksetup.sh --reconfig
+
+ CFLAGS= LDFLAGS= make -C edk2/BaseTools
+
+ (export GCC5_$(TARGET_ARCH)_PREFIX=$(DEB_HOST_GNU_TYPE)- && \
+ build -p $(ACTIVE_PLATFORM) -b RELEASE -a $(TARGET_ARCH) -t GCC5 -n $(shell nproc))
+
+override_dh_auto_install:
+
+override_dh_auto_test:
+
+%:
+ dh $@ --with python3 --no-parallel
According to man page for dh, `--with python3 ` seems redundant if dh-
python is already in the Build-Depends.

- Baocheng Su


Schultschik, Sven
 

From: Sven Schultschik <sven.schultschik@...>

provide a recipe to create the BL32_AP_MM.fd binary by edk2 which is needed for the qemu optee generation as dependency.

Signed-off-by: Sven Schultschik <sven.schultschik@...>
---
recipes-bsp/edk2/edk2_202205.bb | 43 ++++++++++++++++++++++
recipes-bsp/edk2/files/rules.tmpl | 61 +++++++++++++++++++++++++++++++
2 files changed, 104 insertions(+)
create mode 100644 recipes-bsp/edk2/edk2_202205.bb
create mode 100755 recipes-bsp/edk2/files/rules.tmpl

diff --git a/recipes-bsp/edk2/edk2_202205.bb b/recipes-bsp/edk2/edk2_202205.bb
new file mode 100644
index 000000000..056b612ce
--- /dev/null
+++ b/recipes-bsp/edk2/edk2_202205.bb
@@ -0,0 +1,43 @@
+#
+# CIP Core, generic profile
+#
+# Copyright (c) Siemens AG, 2022
+#
+# Authors:
+# Sven Schultschik <sven.schultschik@...>
+#
+# SPDX-License-Identifier: MIT
+#
+
+HOMEPAGE = "https://github.com/tianocore/edk2"
+MAINTAINER = "Sven Schultschik <sven.schultschik@...>"
+LICENSE = "BSD-2-Clause-Patent"
+
+inherit dpkg
+
+SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https;destsuffix=git/edk2;name=edk2 \
+ git://github.com/tianocore/edk2-platforms.git;protocol=https;destsuffix=git/edk2-platforms;name=edk2-platforms \
+ file://rules.tmpl \
+ "
+SRCREV_edk2 = "edk2-stable${PV}"
+SRCREV_edk2-platforms = "3b896d1a325686de3942723c42f286090453e37a"
+
+S = "${WORKDIR}/git"
+
+DEBIAN_BUILD_DEPENDS = "python3:native, dh-python, uuid-dev:native"
+
+EDK2_BINARIES ?= "Build/MmStandaloneRpmb/RELEASE_GCC5/FV/BL32_AP_MM.fd"
+
+BUILD_DEPENDS += ""
+
+TEMPLATE_FILES = "rules.tmpl"
+
+do_prepare_build() {
+ deb_debianize
+
+ rm -f ${S}/debian/edk2.install
+ for binary in ${EDK2_BINARIES}; do
+ echo "$binary /usr/lib/edk2/" >> \
+ ${S}/debian/edk2.install
+ done
+}
diff --git a/recipes-bsp/edk2/files/rules.tmpl b/recipes-bsp/edk2/files/rules.tmpl
new file mode 100755
index 000000000..0a09c50e8
--- /dev/null
+++ b/recipes-bsp/edk2/files/rules.tmpl
@@ -0,0 +1,61 @@
+#!/usr/bin/make -f
+#
+# Copyright (c) Siemens AG, 2022
+#
+# SPDX-License-Identifier: MIT
+
+ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+export CROSS_COMPILE=$(DEB_HOST_GNU_TYPE)-
+endif
+
+export WORKSPACE=$(shell pwd)
+export PACKAGES_PATH=$(WORKSPACE)/edk2:$(WORKSPACE)/edk2-platforms
+export ACTIVE_PLATFORM="Platform/StandaloneMm/PlatformStandaloneMmPkg/PlatformStandaloneMmRpmb.dsc"
+
+# https://github.com/tianocore/edk2-platforms/blob/master/Readme.md#if-cross-compiling
+ifeq (arm64,$(DEB_TARGET_ARCH))
+export TARGET_ARCH = 'AARCH64'
+else ifeq ((armhf,$(DEB_TARGET_ARCH))
+export TARGET_ARCH = 'ARM'
+else ifeq ((amd64,$(DEB_TARGET_ARCH))
+export TARGET_ARCH = 'X64'
+else ifeq ((i386,$(DEB_TARGET_ARCH))
+export TARGET_ARCH = 'IA32'
+else
+$(error DEB_TARGET_ARCH $(DEB_TARGET_ARCH) unsupported)
+endif
+# When cross-compiling, or building with a different version of the compiler than
+# the default `gcc`, we additionally need to inform the
+# build command which toolchain to use. We do this by setting the environment
+# variable `{TOOL_CHAIN_TAG}_{TARGET_ARCH}_PREFIX` - in the case above,
+# **GCC5_AARCH64_PREFIX**.
+# export GCC5_AARCH64_PREFIX=aarch64-linux-gnu-
+# using export here at TOP Level does not work, because
+# GCC5_$(TARGET_ARCH)_PREFIX gets deleted again for what reason ever
+# Therefore it is set right before the build command
+# export GCC5_$(TARGET_ARCH)_PREFIX=$(DEB_HOST_GNU_TYPE)-
+
+
+export SHELL=/bin/bash
+
+# ENV Vars which should get set by edksetup.sh
+export PYTHON_COMMAND=python3
+export PYTHONHASHSEED=1
+export CONF_PATH=$(WORKSPACE)/edk2/Conf
+export EDK_TOOLS_PATH=$(WORKSPACE)/edk2/BaseTools
+export PATH=$(WORKSPACE)/edk2/BaseTools/Bin/Linux-$(TARGET_ARCH):$(WORKSPACE)/edk2/BaseTools/BinWrappers/PosixLike::/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+
+override_dh_auto_build:
+ source edk2/edksetup.sh --reconfig
+
+ CFLAGS= LDFLAGS= make -C edk2/BaseTools
+
+ (export GCC5_$(TARGET_ARCH)_PREFIX=$(DEB_HOST_GNU_TYPE)- && \
+ build -p $(ACTIVE_PLATFORM) -b RELEASE -a $(TARGET_ARCH) -t GCC5 -n $(shell nproc))
+
+override_dh_auto_install:
+
+override_dh_auto_test:
+
+%:
+ dh $@ --with python3 --no-parallel
--
2.30.2