]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/C/GNUmakefile
BaseTools: resolve initialization order errors in VfrFormPkg.h
[mirror_edk2.git] / BaseTools / Source / C / GNUmakefile
index 124517b6c1b2fb87d380b03ef00d5c244038174c..37421ad9f00b3d3b7e126029a18d19ffd01f8c19 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 #  GNU/Linux makefile for C tools build.\r
 #\r
-#  Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR>\r
+#  Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 #\r
 \r
-ifndef ARCH\r
+ifndef HOST_ARCH\r
   #\r
-  # If ARCH is not defined, then we use 'uname -m' to attempt\r
-  # try to figure out the appropriate ARCH.\r
+  # If HOST_ARCH is not defined, then we use 'uname -m' to attempt\r
+  # try to figure out the appropriate HOST_ARCH.\r
   #\r
   uname_m = $(shell uname -m)\r
-  $(info Attempting to detect ARCH from 'uname -m': $(uname_m))\r
-  ifeq ($(uname_m),x86_64)\r
-    ARCH=X64\r
+  $(info Attempting to detect HOST_ARCH from 'uname -m': $(uname_m))\r
+  ifneq (,$(strip $(filter $(uname_m), x86_64 amd64)))\r
+    HOST_ARCH=X64\r
   endif\r
   ifeq ($(patsubst i%86,IA32,$(uname_m)),IA32)\r
-    ARCH=IA32\r
+    HOST_ARCH=IA32\r
   endif\r
-  ifndef ARCH\r
-    $(info Could not detected ARCH from uname results)\r
-    $(error ARCH is not defined!)\r
+  ifneq (,$(findstring aarch64,$(uname_m)))\r
+    HOST_ARCH=AARCH64\r
   endif\r
-  $(info Detected ARCH of $(ARCH) using uname.)\r
+  ifneq (,$(findstring arm,$(uname_m)))\r
+    HOST_ARCH=ARM\r
+  endif\r
+  ifndef HOST_ARCH\r
+    $(info Could not detected HOST_ARCH from uname results)\r
+    $(error HOST_ARCH is not defined!)\r
+  endif\r
+  $(info Detected HOST_ARCH of $(HOST_ARCH) using uname.)\r
 endif\r
 \r
-export ARCH\r
+export HOST_ARCH\r
 \r
 MAKEROOT = .\r
 \r
 include Makefiles/header.makefile\r
 \r
-all: makerootdir subdirs $(MAKEROOT)/libs\r
-       @echo Finished building BaseTools C Tools with ARCH=$(ARCH)\r
+all: makerootdir subdirs\r
+       @echo Finished building BaseTools C Tools with HOST_ARCH=$(HOST_ARCH)\r
 \r
 LIBRARIES = Common\r
+VFRAUTOGEN = VfrCompile/VfrLexer.h\r
 # NON_BUILDABLE_APPLICATIONS = GenBootSector BootSectImage\r
 APPLICATIONS = \\r
+  BrotliCompress \\r
+  VfrCompile \\r
   GnuGenBootSector \\r
   BootSectImage \\r
   EfiLdrImage \\r
@@ -59,10 +68,13 @@ APPLICATIONS = \
   Split \\r
   TianoCompress \\r
   VolInfo \\r
-  VfrCompile\r
+  DevicePath\r
 \r
 SUBDIRS := $(LIBRARIES) $(APPLICATIONS)\r
 \r
+$(LIBRARIES): $(MAKEROOT)/libs\r
+$(APPLICATIONS): $(LIBRARIES) $(MAKEROOT)/bin $(VFRAUTOGEN)\r
+\r
 .PHONY: outputdirs\r
 makerootdir:\r
        -mkdir -p $(MAKEROOT)\r
@@ -76,6 +88,9 @@ $(SUBDIRS):
 $(patsubst %,%-clean,$(sort $(SUBDIRS))):\r
        -$(MAKE) -C $(@:-clean=) clean\r
 \r
+$(VFRAUTOGEN): VfrCompile/VfrSyntax.g \r
+       $(MAKE) -C VfrCompile VfrLexer.h\r
+\r
 clean:  $(patsubst %,%-clean,$(sort $(SUBDIRS)))\r
 \r
 clean: localClean\r