• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
15ifndef 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.)
39endif
40
41export ARCH
42
43MAKEROOT = .
44
45include Makefiles/header.makefile
46
47all: makerootdir subdirs $(MAKEROOT)/libs
48	@echo Finished building BaseTools C Tools with ARCH=$(ARCH)
49
50LIBRARIES = Common
51# NON_BUILDABLE_APPLICATIONS = GenBootSector BootSectImage
52APPLICATIONS = \
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
70SUBDIRS := $(LIBRARIES) $(APPLICATIONS)
71
72.PHONY: outputdirs
73makerootdir:
74	-mkdir -p $(MAKEROOT)
75
76.PHONY: subdirs $(SUBDIRS)
77subdirs: $(SUBDIRS)
78$(SUBDIRS):
79	$(MAKE) -C $@
80
81.PHONY: $(patsubst %,%-clean,$(sort $(SUBDIRS)))
82$(patsubst %,%-clean,$(sort $(SUBDIRS))):
83	-$(MAKE) -C $(@:-clean=) clean
84
85clean:  $(patsubst %,%-clean,$(sort $(SUBDIRS)))
86
87clean: localClean
88
89localClean:
90	rm -f $(MAKEROOT)/bin/*
91	-rmdir $(MAKEROOT)/libs $(MAKEROOT)/bin
92
93include Makefiles/footer.makefile
94