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 15ifndef 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.) 39endif 40 41export ARCH 42 43MAKEROOT = . 44 45include Makefiles/header.makefile 46 47all: makerootdir subdirs $(MAKEROOT)/libs 48 @echo Finished building BaseTools C Tools with ARCH=$(ARCH) 49 50LIBRARIES = Common 51# NON_BUILDABLE_APPLICATIONS = GenBootSector BootSectImage 52APPLICATIONS = \ 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 70SUBDIRS := $(LIBRARIES) $(APPLICATIONS) 71 72.PHONY: outputdirs 73makerootdir: 74 -mkdir -p $(MAKEROOT) 75 76.PHONY: subdirs $(SUBDIRS) 77subdirs: $(SUBDIRS) 78$(SUBDIRS): 79 $(MAKE) -C $@ 80 81.PHONY: $(patsubst %,%-clean,$(sort $(SUBDIRS))) 82$(patsubst %,%-clean,$(sort $(SUBDIRS))): 83 -$(MAKE) -C $(@:-clean=) clean 84 85clean: $(patsubst %,%-clean,$(sort $(SUBDIRS))) 86 87clean: localClean 88 89localClean: 90 rm -f $(MAKEROOT)/bin/* 91 -rmdir $(MAKEROOT)/libs $(MAKEROOT)/bin 92 93include Makefiles/footer.makefile 94