]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPlatformPkg/Scripts/Makefile
ArmPlatformPkg: Added 'Makefile' to build EDK2 from Makefile based IDE
[mirror_edk2.git] / ArmPlatformPkg / Scripts / Makefile
1 #/* @file
2 # Copyright (c) 2011-2012, ARM Limited. All rights reserved.
3 #
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
8 #
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.
11 #
12 #*/
13
14 # Define the following variables to specify an alternative toolchain to the one located in your PATH:
15 # - RVCT_TOOLS_PATH: for RVCT and RVCTLINUX toolchains
16 # - ARMGCC_TOOLS_PATH: for ARMGCC toolchain
17 # - ARMLINUXGCC_TOOLS_PATH: for ARMLINUXGCC
18
19 EDK2_TOOLCHAIN ?= RVCTLINUX
20 EDK2_ARCH ?= ARM
21 EDK2_BUILD ?= DEBUG
22
23 ifeq ($(EDK2_DSC),"")
24 $(error The Makfile macro 'EDK2_DSC' must be defined with an EDK2 DSC file.)
25 endif
26
27 ifeq ("$(OS)","Windows_NT")
28 WORKSPACE?=$(PWD)
29 EDK_TOOLS_PATH ?= $(WORKSPACE)\BaseTools
30 endif
31
32 SHELL := /bin/bash
33 SILENT ?= @
34 ECHO ?= echo
35 MAKE ?= make -i -k
36 RM ?= rm -f
37
38 .PHONY: all clean
39
40 EDK2_CONF = Conf/BuildEnv.sh Conf/build_rule.txt Conf/target.txt Conf/tools_def.txt
41
42 all: $(EDK2_CONF)
43 ifeq ("$(OS)","Windows_NT")
44 echo %PATH%
45 build -a $(EDK2_ARCH) -p $(EDK2_PKG) -t $(EDK2_TOOLCHAIN) -b $(EDK2_BUILD) $(EDK2_MACROS)
46 else
47 . ./edksetup.sh `pwd`/BaseTools; build -a $(EDK2_ARCH) -p $(EDK2_DSC) -t $(EDK2_TOOLCHAIN) -b $(EDK2_BUILD) $(EDK2_MACROS)
48 endif
49
50 $(EDK2_CONF):
51 ifeq ("$(OS)","Windows_NT")
52 copy $(EDK_TOOLS_PATH)\Conf\build_rule.template Conf\build_rule.txt
53 copy $(EDK_TOOLS_PATH)\Conf\FrameworkDatabase.template Conf\FrameworkDatabase.txt
54 copy $(EDK_TOOLS_PATH)\Conf\target.template Conf\target.txt
55 copy $(EDK_TOOLS_PATH)\Conf\tools_def.template Conf\tools_def.txt
56 else
57 . ./edksetup.sh `pwd`/BaseTools; $(MAKE) -C BaseTools
58 endif
59
60 clean:
61 ifeq ("$(OS)","Windows_NT")
62 build -a $(EDK2_ARCH) -p $(EDK2_PKG) -t $(EDK2_TOOLCHAIN) -b $(EDK2_BUILD) $(EDK2_MACROS) cleanall
63 else
64 . ./edksetup.sh `pwd`/BaseTools; build -a $(EDK2_ARCH) -p $(EDK2_DSC) -t $(EDK2_TOOLCHAIN) -b $(EDK2_BUILD) $(EDK2_MACROS) cleanall; \
65 rm -Rf $(EDK2_CONF) Conf/.cache
66 endif