1# SPDX-License-Identifier: GPL-2.0+ 2# 3# (C) Copyright 2016 Alexander Graf 4# 5 6# This file only gets included with CONFIG_EFI_LOADER set, so all 7# object inclusion implicitly depends on it 8 9asflags-y += -I. 10 11CFLAGS_efi_boottime.o += \ 12 -DFW_VERSION="0x$(VERSION)" \ 13 -DFW_PATCHLEVEL="0x$(PATCHLEVEL)" 14 15# These are the apps that are built 16apps-$(CONFIG_RISCV) += boothart 17apps-$(CONFIG_BOOTEFI_HELLO_COMPILE) += helloworld 18apps-$(CONFIG_GENERATE_SMBIOS_TABLE) += smbiosdump 19apps-$(CONFIG_EFI_LOAD_FILE2_INITRD) += initrddump 20ifeq ($(CONFIG_GENERATE_ACPI_TABLE),) 21apps-y += dtbdump 22endif 23apps-$(CONFIG_BOOTEFI_TESTAPP_COMPILE) += testapp 24apps-y += dbginfodump 25 26obj-$(CONFIG_CMD_BOOTEFI_HELLO) += helloworld_efi.o 27obj-$(CONFIG_EFI_BOOTMGR) += efi_bootmgr.o 28obj-$(CONFIG_EFI_BINARY_EXEC) += efi_bootbin.o 29obj-y += efi_boottime.o 30obj-y += efi_helper.o 31obj-$(CONFIG_EFI_HAVE_CAPSULE_SUPPORT) += efi_capsule.o 32obj-$(CONFIG_EFI_CAPSULE_FIRMWARE) += efi_firmware.o 33obj-$(CONFIG_EFI_CAPSULE_AUTHENTICATE) += efi_capsule_key.o 34obj-y += efi_console.o 35obj-y += efi_device_path.o 36obj-$(CONFIG_EFI_DEVICE_PATH_TO_TEXT) += efi_device_path_to_text.o 37obj-$(CONFIG_EFI_DEVICE_PATH_UTIL) += efi_device_path_utilities.o 38obj-y += efi_dt_fixup.o 39obj-y += efi_fdt.o 40obj-y += efi_file.o 41obj-$(CONFIG_EFI_LOADER_HII) += efi_hii.o efi_hii_config.o 42obj-y += efi_image_loader.o 43obj-y += efi_load_options.o 44obj-y += efi_memory.o 45obj-y += efi_root_node.o 46obj-y += efi_runtime.o 47obj-y += efi_setup.o 48obj-y += efi_string.o 49obj-$(CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2) += efi_unicode_collation.o 50obj-y += efi_var_common.o 51obj-y += efi_var_mem.o 52ifeq ($(CONFIG_EFI_MM_COMM_TEE),y) 53obj-y += efi_variable_tee.o 54else 55obj-y += efi_variable.o 56obj-y += efi_var_file.o 57obj-$(CONFIG_EFI_VARIABLES_PRESEED) += efi_var_seed.o 58endif 59obj-y += efi_watchdog.o 60obj-$(CONFIG_EFI_ESRT) += efi_esrt.o 61obj-$(CONFIG_VIDEO) += efi_gop.o 62obj-$(CONFIG_BLK) += efi_disk.o 63obj-$(CONFIG_NETDEVICES) += efi_net.o 64obj-$(CONFIG_EFI_IP4_CONFIG2_PROTOCOL) += efi_ipconfig.o 65obj-$(CONFIG_EFI_HTTP_PROTOCOL) += efi_http.o 66obj-$(CONFIG_ACPI) += efi_acpi.o 67obj-$(CONFIG_SMBIOS) += efi_smbios.o 68obj-$(CONFIG_EFI_RNG_PROTOCOL) += efi_rng.o 69obj-$(CONFIG_EFI_TCG2_PROTOCOL) += efi_tcg2.o 70obj-$(CONFIG_EFI_RISCV_BOOT_PROTOCOL) += efi_riscv.o 71obj-$(CONFIG_EFI_LOAD_FILE2_INITRD) += efi_load_initrd.o 72obj-$(CONFIG_EFI_SIGNATURE_SUPPORT) += efi_signature.o 73obj-$(CONFIG_EFI_ECPT) += efi_conformance.o 74obj-$(CONFIG_EFI_DEBUG_SUPPORT) += efi_debug_support.o 75 76EFI_VAR_SEED_FILE := $(subst $\",,$(CONFIG_EFI_VAR_SEED_FILE)) 77$(obj)/efi_var_seed.o: $(srctree)/$(EFI_VAR_SEED_FILE) 78 79ifeq ($(CONFIG_EFI_CAPSULE_AUTHENTICATE),y) 80capsule_crt_path=($(subst $(quote),,$(CONFIG_EFI_CAPSULE_CRT_FILE))) 81capsule_crt_full=$(srctree)/$(subst $(quote),,$(CONFIG_EFI_CAPSULE_CRT_FILE)) 82quiet_cmd_capsule_esl_gen = CAPSULE_ESL_GEN $@ 83cmd_capsule_esl_gen = cert-to-efi-sig-list $(capsule_crt_full) $@ 84$(objtree)/capsule_esl_file: FORCE 85 @if [ ! -e "$(capsule_crt_full)" ]; then \ 86 echo "ERROR: path $(capsule_crt_full) is invalid." >&2; \ 87 echo "EFI CONFIG_EFI_CAPSULE_CRT_FILE must be specified when CONFIG_EFI_CAPSULE_AUTHENTICATE is enabled." >&2; \ 88 exit 1; \ 89 fi 90 $(call cmd,capsule_esl_gen) 91 92$(obj)/efi_capsule.o: $(objtree)/capsule_esl_file FORCE 93asflags-y += -DCAPSULE_ESL_PATH=\"$(objtree)/capsule_esl_file\" 94endif 95 96# Set the C flags to add and remove for each app 97$(foreach f,$(apps-y),\ 98 $(eval CFLAGS_$(f).o := $(CFLAGS_EFI) -Os -ffreestanding)\ 99 $(eval CFLAGS_REMOVE_$(f).o := $(CFLAGS_NON_EFI))) 100 101always += $(foreach f,$(apps-y),$(f).efi) 102targets += $(foreach f,$(apps-y),$(f).o) 103