diff --git a/ArmPlatformPkg/Scripts/Makefile b/ArmPlatformPkg/Scripts/Makefile index f933755b51..8f23f7bd36 100644 --- a/ArmPlatformPkg/Scripts/Makefile +++ b/ArmPlatformPkg/Scripts/Makefile @@ -1,5 +1,5 @@ #/* @file -# Copyright (c) 2011-2014, ARM Limited. All rights reserved. +# Copyright (c) 2011-2015, ARM Limited. All rights reserved. # # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -23,6 +23,11 @@ EDK2_BUILD ?= DEBUG ifeq ($(EDK2_DSC),"") $(error The Makfile macro 'EDK2_DSC' must be defined with an EDK2 DSC file.) endif +ifeq ("$(EDK2_DSC)","ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc") + BUILD_FIP=1 + BUILD_PATH=$(WORKSPACE)/Build/ArmVExpress-FVP-AArch64 + UEFI_BIN=FVP_AARCH64_EFI.fd +endif ifeq ("$(OS)","Windows_NT") export WORKSPACE?=$(PWD) @@ -39,12 +44,31 @@ RM ?= rm -f EDK2_CONF = Conf/BuildEnv.sh Conf/build_rule.txt Conf/target.txt Conf/tools_def.txt +# +# FIP Support +# +ifeq ($(BUILD_FIP),"1") + ifeq ($(FIP_BIN),"") + $(info Define location of the FIP to automatically update the package after building UEFI.) + endif +endif + all: $(EDK2_CONF) ifeq ("$(OS)","Windows_NT") build -a $(EDK2_ARCH) -p $(EDK2_DSC) -t $(EDK2_TOOLCHAIN) -b $(EDK2_BUILD) $(EDK2_MACROS) else . ./edksetup.sh; build -a $(EDK2_ARCH) -p $(EDK2_DSC) -t $(EDK2_TOOLCHAIN) -b $(EDK2_BUILD) $(EDK2_MACROS) endif +ifeq ("$(BUILD_FIP)","1") +ifneq ($(FIP_BIN),"") + $(SILENT)which fip_create ; \ + if [ $$? -ne 0 ]; then \ + $(ECHO) "Warning: 'fip_create' tool is not in the PATH. The UEFI binary will not be added in the Firmware Image Package (FIP)."; \ + else \ + fip_create --bl33 $(BUILD_PATH)/$(EDK2_BUILD)_$(EDK2_TOOLCHAIN)/FV/$(UEFI_BIN) --dump $(FIP_BIN); \ + fi +endif +endif $(EDK2_CONF): ifeq ("$(OS)","Windows_NT")