2 # Copyright (c) 2013-2014, ARM Limited. All rights reserved.
4 # This program and the accompanying materials
5 # are licensed and made available under the terms and conditions of the BSD License
6 # which accompanies this distribution. The full text of the license may be found at
7 # http://opensource.org/licenses/bsd-license.php
9 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 # Define the following variables to specify an alternative toolchain to the one located in your PATH:
14 # - RVCT_TOOLS_PATH: for RVCT and RVCTLINUX toolchains
15 # - ARMGCC_TOOLS_PATH: for ARMGCC toolchain
16 # - ARMLINUXGCC_TOOLS_PATH: for ARMLINUXGCC
18 EDK2_TOOLCHAIN ?
= GCC49
19 GCC49_AARCH64_PREFIX ?
= aarch64-none-elf-
22 EDK2_DSC
= ArmPlatformPkg
/ArmJunoPkg
/ArmJuno.dsc
26 $(error The Makefile macro
'EDK2_DSC' must be defined with an EDK2 DSC file.
)
29 ifeq ("$(OS)","Windows_NT")
30 export WORKSPACE?
=$(PWD
)
31 export EDK_TOOLS_PATH ?
= $(WORKSPACE
)\BaseTools
33 export WORKSPACE?
=$(PWD
)
36 # Define the destination of the Firmware Image Package (FIP) if not defined
39 JUNO_FIP
=$(DEST_BIN_ROOT
)/fip.bin
54 EDK2_CONF
= Conf
/BuildEnv.sh Conf
/build_rule.txt Conf
/target.txt Conf
/tools_def.txt
57 ifeq ("$(OS)","Windows_NT")
58 build
-a
$(EDK2_ARCH
) -p
$(EDK2_DSC
) -t
$(EDK2_TOOLCHAIN
) -b
$(EDK2_BUILD
) $(EDK2_MACROS
)
60 . .
/edksetup.sh
; GCC49_AARCH64_PREFIX
=$(GCC49_AARCH64_PREFIX
) build
-a
$(EDK2_ARCH
) -p
$(EDK2_DSC
) -t
$(EDK2_TOOLCHAIN
) -b
$(EDK2_BUILD
) $(EDK2_MACROS
)
62 ifeq ("$(OS)","Windows_NT")
63 $(SILENT
)$(ECHO
) "Warning: The UEFI Firmware must be added to the Firmware Image Package (FIP)."
65 $(SILENT
)which fip_create
; \
66 if
[ $$?
-ne
0 ]; then \
67 $(ECHO
) "Warning: 'fip_create' tool is not in the PATH. The UEFI binary will not be added in the Firmware Image Package (FIP)."; \
69 fip_create
--bl33
$(WORKSPACE
)/Build
/ArmJuno
/$(EDK2_BUILD
)_
$(EDK2_TOOLCHAIN
)/FV
/BL33_AP_UEFI.fd
--dump
$(JUNO_FIP
); \
74 ifeq ("$(OS)","Windows_NT")
75 copy
$(EDK_TOOLS_PATH
)\Conf
\build_rule.template Conf
\build_rule.txt
76 copy
$(EDK_TOOLS_PATH
)\Conf\FrameworkDatabase.template Conf\FrameworkDatabase.txt
77 copy
$(EDK_TOOLS_PATH
)\Conf
\target.template Conf
\target.txt
78 copy
$(EDK_TOOLS_PATH
)\Conf
\tools_def.template Conf
\tools_def.txt
80 . .
/edksetup.sh
; $(MAKE
) -C BaseTools
84 ifeq ("$(OS)","Windows_NT")
85 build
-a
$(EDK2_ARCH
) -p
$(EDK2_DSC
) -t
$(EDK2_TOOLCHAIN
) -b
$(EDK2_BUILD
) $(EDK2_MACROS
) cleanall
87 . .
/edksetup.sh
; build
-a
$(EDK2_ARCH
) -p
$(EDK2_DSC
) -t
$(EDK2_TOOLCHAIN
) -b
$(EDK2_BUILD
) $(EDK2_MACROS
) cleanall
; \
88 rm -Rf
$(EDK2_CONF
) Conf
/.cache