Home | History | Annotate | Download | only in C
      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 
     15 ifndef 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.)
     39 endif
     40 
     41 export ARCH
     42 
     43 MAKEROOT = .
     44 
     45 include Makefiles/header.makefile
     46 
     47 all: makerootdir subdirs $(MAKEROOT)/libs
     48 	@echo Finished building BaseTools C Tools with ARCH=$(ARCH)
     49 
     50 LIBRARIES = Common
     51 # NON_BUILDABLE_APPLICATIONS = GenBootSector BootSectImage

     52 APPLICATIONS = \
     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 
     70 SUBDIRS := $(LIBRARIES) $(APPLICATIONS)
     71 
     72 .PHONY: outputdirs
     73 makerootdir:
     74 	-mkdir -p $(MAKEROOT)
     75 
     76 .PHONY: subdirs $(SUBDIRS)
     77 subdirs: $(SUBDIRS)
     78 $(SUBDIRS):
     79 	$(MAKE) -C $@
     80 
     81 .PHONY: $(patsubst %,%-clean,$(sort $(SUBDIRS)))
     82 $(patsubst %,%-clean,$(sort $(SUBDIRS))):
     83 	-$(MAKE) -C $(@:-clean=) clean
     84 
     85 clean:  $(patsubst %,%-clean,$(sort $(SUBDIRS)))
     86 
     87 clean: localClean
     88 
     89 localClean:
     90 	rm -f $(MAKEROOT)/bin/*
     91 	-rmdir $(MAKEROOT)/libs $(MAKEROOT)/bin
     92 
     93 include Makefiles/footer.makefile
     94