b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 1 | PKG_NAME ?= trusted-firmware-a |
| 2 | PKG_CPE_ID ?= cpe:/a:arm:trusted_firmware-a |
| 3 | |
| 4 | ifndef PKG_SOURCE_PROTO |
| 5 | PKG_SOURCE = trusted-firmware-a-$(PKG_VERSION).tar.gz |
| 6 | PKG_SOURCE_URL:=https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/snapshot |
| 7 | endif |
| 8 | |
| 9 | PKG_BUILD_DIR = $(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) |
| 10 | |
| 11 | PKG_TARGETS := bin |
| 12 | PKG_FLAGS:=nonshared |
| 13 | |
| 14 | PKG_LICENSE:=BSD-3-Clause |
| 15 | PKG_LICENSE_FILES:=docs/license.rst |
| 16 | |
| 17 | PKG_BUILD_PARALLEL:=1 |
| 18 | |
| 19 | export GCC_HONOUR_COPTS=s |
| 20 | |
| 21 | define Package/trusted-firmware-a/install/default |
| 22 | $(CP) $(patsubst %,$(PKG_BUILD_DIR)/build/$(PLAT)/release/%,$(TFA_IMAGE)) $(1)/ |
| 23 | endef |
| 24 | |
| 25 | Package/trusted-firmware-a/install = $(Package/trusted-firmware-a/install/default) |
| 26 | |
| 27 | define Trusted-Firmware-A/Init |
| 28 | BUILD_TARGET:= |
| 29 | BUILD_SUBTARGET:= |
| 30 | BUILD_DEVICES:= |
| 31 | NAME:= |
| 32 | DEPENDS:= |
| 33 | HIDDEN:= |
| 34 | DEFAULT:= |
| 35 | PLAT:= |
| 36 | VARIANT:=$(1) |
| 37 | TFA_IMAGE:= |
| 38 | endef |
| 39 | |
| 40 | TARGET_DEP = TARGET_$(BUILD_TARGET)$(if $(BUILD_SUBTARGET),_$(BUILD_SUBTARGET)) |
| 41 | |
| 42 | define Build/Trusted-Firmware-A/Target |
| 43 | $(eval $(call Trusted-Firmware-A/Init,$(1))) |
| 44 | $(eval $(call Trusted-Firmware-A/Default,$(1))) |
| 45 | $(eval $(call Trusted-Firmware-A/$(1),$(1))) |
| 46 | |
| 47 | define Package/trusted-firmware-a-$(1) |
| 48 | SECTION:=boot |
| 49 | CATEGORY:=Boot Loaders |
| 50 | TITLE:=Trusted-Firmware-A for $(NAME) |
| 51 | VARIANT:=$(VARIANT) |
| 52 | DEPENDS:=@!IN_SDK $(DEPENDS) |
| 53 | HIDDEN:=$(HIDDEN) |
| 54 | ifneq ($(BUILD_TARGET),) |
| 55 | DEPENDS += @$(TARGET_DEP) |
| 56 | ifneq ($(BUILD_DEVICES),) |
| 57 | DEFAULT := y if ($(TARGET_DEP)_Default \ |
| 58 | $(patsubst %,|| $(TARGET_DEP)_DEVICE_%,$(BUILD_DEVICES)) \ |
| 59 | $(patsubst %,|| $(patsubst TARGET_%,TARGET_DEVICE_%,$(TARGET_DEP))_DEVICE_%,$(BUILD_DEVICES))) |
| 60 | endif |
| 61 | endif |
| 62 | $(if $(DEFAULT),DEFAULT:=$(DEFAULT)) |
| 63 | URL:=https://www.trustedfirmware.org/projects/tf-a/ |
| 64 | endef |
| 65 | |
| 66 | ifndef Package/trusted-firmware-a-$(1)/install |
| 67 | define Package/trusted-firmware-a-$(1)/install |
| 68 | $$(Package/trusted-firmware-a/install) |
| 69 | endef |
| 70 | endif |
| 71 | endef |
| 72 | |
| 73 | define Build/Configure/Trusted-Firmware-A |
| 74 | $(INSTALL_DIR) $(STAGING_DIR)/usr/include |
| 75 | endef |
| 76 | |
| 77 | DTC=$(wildcard $(LINUX_DIR)/scripts/dtc/dtc) |
| 78 | |
| 79 | define Build/Compile/Trusted-Firmware-A |
| 80 | +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \ |
| 81 | CROSS_COMPILE=$(TARGET_CROSS) \ |
| 82 | OPENSSL_DIR=$(STAGING_DIR_HOST) \ |
| 83 | $(if $(DTC),DTC="$(DTC)") \ |
| 84 | PLAT=$(PLAT) \ |
| 85 | BUILD_STRING="OpenWrt v$(PKG_VERSION)-$(PKG_RELEASE) ($(VARIANT))" \ |
| 86 | $(if $(CONFIG_BINUTILS_VERSION_2_37)$(CONFIG_BINUTILS_VERSION_2_38),,LDFLAGS="-no-warn-rwx-segments") \ |
| 87 | $(TFA_MAKE_FLAGS) |
| 88 | endef |
| 89 | |
| 90 | define BuildPackage/Trusted-Firmware-A/Defaults |
| 91 | Build/Configure/Default = $$$$(Build/Configure/Trusted-Firmware-A) |
| 92 | Build/Compile/Default = $$$$(Build/Compile/Trusted-Firmware-A) |
| 93 | endef |
| 94 | |
| 95 | define BuildPackage/Trusted-Firmware-A |
| 96 | $(eval $(call BuildPackage/Trusted-Firmware-A/Defaults)) |
| 97 | $(foreach type,$(if $(DUMP),$(TFA_TARGETS),$(BUILD_VARIANT)), \ |
| 98 | $(eval $(call Build/Trusted-Firmware-A/Target,$(type))) |
| 99 | ) |
| 100 | $(eval $(call Build/DefaultTargets)) |
| 101 | $(foreach type,$(if $(DUMP),$(TFA_TARGETS),$(BUILD_VARIANT)), \ |
| 102 | $(call BuildPackage,trusted-firmware-a-$(type)) |
| 103 | ) |
| 104 | endef |