| ## @file | |
| # GNU/Linux makefile for C tools build. | |
| # | |
| # Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR> | |
| # | |
| # This program and the accompanying materials | |
| # are licensed and made available under the terms and conditions of the BSD License | |
| # which accompanies this distribution. The full text of the license may be found at | |
| # http://opensource.org/licenses/bsd-license.php | |
| # | |
| # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
| # | |
| ifndef ARCH | |
| # | |
| # If ARCH is not defined, then we use 'uname -m' to attempt | |
| # try to figure out the appropriate ARCH. | |
| # | |
| uname_m = $(shell uname -m) | |
| $(info Attempting to detect ARCH from 'uname -m': $(uname_m)) | |
| ifneq (,$(strip $(filter $(uname_m), x86_64 amd64))) | |
| ARCH=X64 | |
| endif | |
| ifeq ($(patsubst i%86,IA32,$(uname_m)),IA32) | |
| ARCH=IA32 | |
| endif | |
| ifneq (,$(findstring aarch64,$(uname_m))) | |
| ARCH=AARCH64 | |
| endif | |
| ifneq (,$(findstring arm,$(uname_m))) | |
| ARCH=ARM | |
| endif | |
| ifndef ARCH | |
| $(info Could not detected ARCH from uname results) | |
| $(error ARCH is not defined!) | |
| endif | |
| $(info Detected ARCH of $(ARCH) using uname.) | |
| endif | |
| export ARCH | |
| MAKEROOT = . | |
| include Makefiles/header.makefile | |
| all: makerootdir subdirs $(MAKEROOT)/libs | |
| @echo Finished building BaseTools C Tools with ARCH=$(ARCH) | |
| LIBRARIES = Common | |
| # NON_BUILDABLE_APPLICATIONS = GenBootSector BootSectImage | |
| APPLICATIONS = \ | |
| GnuGenBootSector \ | |
| BootSectImage \ | |
| EfiLdrImage \ | |
| EfiRom \ | |
| GenFfs \ | |
| GenFv \ | |
| GenFw \ | |
| GenPage \ | |
| GenSec \ | |
| GenCrc32 \ | |
| GenVtf \ | |
| LzmaCompress \ | |
| Split \ | |
| TianoCompress \ | |
| VolInfo \ | |
| VfrCompile | |
| SUBDIRS := $(LIBRARIES) $(APPLICATIONS) | |
| .PHONY: outputdirs | |
| makerootdir: | |
| -mkdir -p $(MAKEROOT) | |
| .PHONY: subdirs $(SUBDIRS) | |
| subdirs: $(SUBDIRS) | |
| $(SUBDIRS): | |
| $(MAKE) -C $@ | |
| .PHONY: $(patsubst %,%-clean,$(sort $(SUBDIRS))) | |
| $(patsubst %,%-clean,$(sort $(SUBDIRS))): | |
| -$(MAKE) -C $(@:-clean=) clean | |
| clean: $(patsubst %,%-clean,$(sort $(SUBDIRS))) | |
| clean: localClean | |
| localClean: | |
| rm -f $(MAKEROOT)/bin/* | |
| -rmdir $(MAKEROOT)/libs $(MAKEROOT)/bin | |
| include Makefiles/footer.makefile |