## @file | |
# GNU/Linux makefile for C tools build. | |
# | |
# Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR> | |
# | |
# SPDX-License-Identifier: BSD-2-Clause-Patent | |
# | |
ifndef HOST_ARCH | |
# | |
# If HOST_ARCH is not defined, then we use 'uname -m' to attempt | |
# try to figure out the appropriate HOST_ARCH. | |
# | |
uname_m = $(shell uname -m) | |
$(info Attempting to detect HOST_ARCH from 'uname -m': $(uname_m)) | |
ifneq (,$(strip $(filter $(uname_m), x86_64 amd64))) | |
HOST_ARCH=X64 | |
endif | |
ifeq ($(patsubst i%86,IA32,$(uname_m)),IA32) | |
HOST_ARCH=IA32 | |
endif | |
ifneq (,$(findstring aarch64,$(uname_m))) | |
HOST_ARCH=AARCH64 | |
else ifneq (,$(findstring arm64,$(uname_m))) | |
HOST_ARCH=AARCH64 | |
else ifneq (,$(findstring arm,$(uname_m))) | |
HOST_ARCH=ARM | |
endif | |
ifndef HOST_ARCH | |
$(info Could not detected HOST_ARCH from uname results) | |
$(error HOST_ARCH is not defined!) | |
endif | |
$(info Detected HOST_ARCH of $(HOST_ARCH) using uname.) | |
endif | |
export HOST_ARCH | |
MAKEROOT = . | |
include Makefiles/header.makefile | |
all: makerootdir subdirs | |
@echo Finished building BaseTools C Tools with HOST_ARCH=$(HOST_ARCH) | |
LIBRARIES = Common | |
VFRAUTOGEN = VfrCompile/VfrLexer.h | |
APPLICATIONS = \ | |
BrotliCompress \ | |
VfrCompile \ | |
EfiRom \ | |
GenFfs \ | |
GenFv \ | |
GenFw \ | |
GenSec \ | |
GenCrc32 \ | |
LzmaCompress \ | |
Split \ | |
TianoCompress \ | |
VolInfo \ | |
DevicePath | |
SUBDIRS := $(LIBRARIES) $(APPLICATIONS) | |
$(LIBRARIES): $(MAKEROOT)/libs | |
$(APPLICATIONS): $(LIBRARIES) $(MAKEROOT)/bin $(VFRAUTOGEN) | |
.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 | |
$(VFRAUTOGEN): VfrCompile/VfrSyntax.g | |
$(MAKE) -C VfrCompile VfrLexer.h | |
clean: $(patsubst %,%-clean,$(sort $(SUBDIRS))) | |
clean: localClean | |
localClean: | |
rm -f $(MAKEROOT)/bin/* | |
-rmdir $(MAKEROOT)/libs $(MAKEROOT)/bin | |
include Makefiles/footer.makefile |