X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=BaseTools%2FSource%2FC%2FGNUmakefile;h=37421ad9f00b3d3b7e126029a18d19ffd01f8c19;hp=e0dde3e08507c1109ce0e8a1f8e5db6a24c8c1de;hb=92beb1e4c73a40a708c7c0cade5c7cee314b3887;hpb=64b2609fcff9d6412eea4c74c8e74bed33dc3235 diff --git a/BaseTools/Source/C/GNUmakefile b/BaseTools/Source/C/GNUmakefile index e0dde3e085..37421ad9f0 100644 --- a/BaseTools/Source/C/GNUmakefile +++ b/BaseTools/Source/C/GNUmakefile @@ -1,87 +1,102 @@ -## @file -# GNU Make makefile for C tools build. -# -# Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.
-# -# 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)) - ifeq ($(uname_m),x86_64) - ARCH=X64 - endif - ifeq ($(patsubst i%86,IA32,$(uname_m)),IA32) - ARCH=IA32 - 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 +## @file +# GNU/Linux makefile for C tools build. +# +# Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.
+# +# 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 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 + endif + 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 +# NON_BUILDABLE_APPLICATIONS = GenBootSector BootSectImage +APPLICATIONS = \ + BrotliCompress \ + VfrCompile \ + GnuGenBootSector \ + BootSectImage \ + EfiLdrImage \ + EfiRom \ + GenFfs \ + GenFv \ + GenFw \ + GenPage \ + GenSec \ + GenCrc32 \ + GenVtf \ + 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