1 ## @file 2 # GNU/Linux makefile for C tools build. 3 # 4 # Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR> 5 # 6 # This program and the accompanying materials 7 # are licensed and made available under the terms and conditions of the BSD License 8 # which accompanies this distribution. The full text of the license may be found at 9 # http://opensource.org/licenses/bsd-license.php 10 # 11 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 # 14 15 ifndef ARCH 16 # 17 # If ARCH is not defined, then we use 'uname -m' to attempt 18 # try to figure out the appropriate ARCH. 19 # 20 uname_m = $(shell uname -m) 21 $(info Attempting to detect ARCH from 'uname -m': $(uname_m)) 22 ifneq (,$(strip $(filter $(uname_m), x86_64 amd64))) 23 ARCH=X64 24 endif 25 ifeq ($(patsubst i%86,IA32,$(uname_m)),IA32) 26 ARCH=IA32 27 endif 28 ifneq (,$(findstring aarch64,$(uname_m))) 29 ARCH=AARCH64 30 endif 31 ifneq (,$(findstring arm,$(uname_m))) 32 ARCH=ARM 33 endif 34 ifndef ARCH 35 $(info Could not detected ARCH from uname results) 36 $(error ARCH is not defined!) 37 endif 38 $(info Detected ARCH of $(ARCH) using uname.) 39 endif 40 41 export ARCH 42 43 MAKEROOT = . 44 45 include Makefiles/header.makefile 46 47 all: makerootdir subdirs $(MAKEROOT)/libs 48 @echo Finished building BaseTools C Tools with ARCH=$(ARCH) 49 50 LIBRARIES = Common 51 # NON_BUILDABLE_APPLICATIONS = GenBootSector BootSectImage 52 APPLICATIONS = \ 53 GnuGenBootSector \ 54 BootSectImage \ 55 EfiLdrImage \ 56 EfiRom \ 57 GenFfs \ 58 GenFv \ 59 GenFw \ 60 GenPage \ 61 GenSec \ 62 GenCrc32 \ 63 GenVtf \ 64 LzmaCompress \ 65 Split \ 66 TianoCompress \ 67 VolInfo \ 68 VfrCompile 69 70 SUBDIRS := $(LIBRARIES) $(APPLICATIONS) 71 72 .PHONY: outputdirs 73 makerootdir: 74 -mkdir -p $(MAKEROOT) 75 76 .PHONY: subdirs $(SUBDIRS) 77 subdirs: $(SUBDIRS) 78 $(SUBDIRS): 79 $(MAKE) -C $@ 80 81 .PHONY: $(patsubst %,%-clean,$(sort $(SUBDIRS))) 82 $(patsubst %,%-clean,$(sort $(SUBDIRS))): 83 -$(MAKE) -C $(@:-clean=) clean 84 85 clean: $(patsubst %,%-clean,$(sort $(SUBDIRS))) 86 87 clean: localClean 88 89 localClean: 90 rm -f $(MAKEROOT)/bin/* 91 -rmdir $(MAKEROOT)/libs $(MAKEROOT)/bin 92 93 include Makefiles/footer.makefile 94