File: rules

package info (click to toggle)
optee-os 4.5.0-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 30,556 kB
  • sloc: ansic: 423,553; asm: 12,410; python: 3,716; makefile: 1,676; sh: 238
file content (51 lines) | stat: -rwxr-xr-x 2,666 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/usr/bin/make -f

include /usr/share/dpkg/architecture.mk
include /usr/share/dpkg/buildtools.mk

export DEB_BUILD_MAINT_OPTIONS = hardening=+all

export CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1

platforms := k3-am62x vexpress-qemu_armv8a

# k3 platform
k3-am62x_CFLAGS   = $(shell DEB_BUILD_MAINT_OPTIONS=hardening=+all,-relro dpkg-buildflags --get CFLAGS)
k3-am62x_CPPFLAGS = $(shell DEB_BUILD_MAINT_OPTIONS=hardening=+all,-relro dpkg-buildflags --get CPPFLAGS)
k3-am62x_CXXFLAGS = $(shell DEB_BUILD_MAINT_OPTIONS=hardening=+all,-relro dpkg-buildflags --get CXXFLAGS)
k3-am62x_LDFLAGS  = $(shell DEB_BUILD_MAINT_OPTIONS=hardening=+all,-relro dpkg-buildflags --get LDFLAGS)
k3-am62x_assigns := O=out/arm-plat-k3 CFG_ARM64_core=y CFG_USER_TA_TARGETS=ta_arm64

# qemu platform
vexpress-qemu_armv8a_CFLAGS   = $(shell DEB_BUILD_MAINT_OPTIONS=hardening=+all,-relro,-stackprotector,-format dpkg-buildflags --get CFLAGS)
vexpress-qemu_armv8a_CPPFLAGS = $(shell DEB_BUILD_MAINT_OPTIONS=hardening=+all,-relro,-stackprotector,-format dpkg-buildflags --get CPPFLAGS)
vexpress-qemu_armv8a_CXXFLAGS = $(shell DEB_BUILD_MAINT_OPTIONS=hardening=+all,-relro,-stackprotector,-format dpkg-buildflags --get CXXFLAGS)
vexpress-qemu_armv8a_LDFLAGS  = $(shell DEB_BUILD_MAINT_OPTIONS=hardening=+all,-relro,-stackprotector,-format dpkg-buildflags --get LDFLAGS)
vexpress-qemu_armv8a_subplatforms := vexpress-qemu_armv8a_non-virt vexpress-qemu_armv8a_virt
vexpress-qemu_armv8a_non-virt_assigns := O=out/arm-plat-vexpress             CFG_TEE_CORE_LOG_LEVEL=3 CFG_TEE_BENCHMARK=n CFG_ARM_GICV3=y CFG_ARM64_core=y CFG_VIRTUALIZATION=n CFG_USER_TA_TARGETS=ta_arm64
vexpress-qemu_armv8a_virt_assigns     := O=out/arm-plat-vexpress-virtualized CFG_TEE_CORE_LOG_LEVEL=3 CFG_TEE_BENCHMARK=n CFG_ARM_GICV3=y CFG_ARM64_core=y CFG_VIRTUALIZATION=y CFG_USER_TA_TARGETS=ta_arm64

define build_platform
	$(eval platform := $(1))
	$(eval debug := $(if $(2), $(2), 0))
	$(eval subplatforms := $(if $($(platform)_subplatforms), $($(platform)_subplatforms), $(platform)))
	# LDFLAGS from dpkg-buildflags are prefixed with -Wl, but optee_os
	# calls ld directly; also, -f flags may not be used without -shared but
	# optee_os is built as -pie
	$(foreach subplatform, $(subplatforms), \
		CROSS_COMPILE=aarch64-linux-gnu-  \
		CFLAGS='$($(platform)_CFLAGS)' CPPFLAGS='$($(platform)_CPPFLAGS)' \
		CXXFLAGS='$($(platform)_CXXFLAGS)' LDFLAGS='$(filter-out -f%,$($(platform)_LDFLAGS:-Wl,%=%))' \
		make PLATFORM=$(platform) $($(subplatform)_assigns) DEBUG=$(debug) V=1; \
	)
endef

%:
	dh $@

override_dh_auto_build: $(platforms)
$(platforms):
	$(call build_platform,$@)

override_dh_auto_clean:
	rm -rf $(CURDIR)/out