From 9e1131b70b4b6002cd1904401946ef0b22cf7d33 Mon Sep 17 00:00:00 2001 From: Liming Gao Date: Tue, 28 Nov 2017 11:18:51 +0800 Subject: [PATCH] BaseTools: Update BaseTools top GNUMakefile with the clear dependency https://bugzilla.tianocore.org/show_bug.cgi?id=786 After GNUmakefile dependency is fixed up, it can make with -j N to enable multiple thread build in base tools C source and save build time. In my linux host machine, make -j 4 to compile BaseTools and save ~60% time. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Liming Gao Reviewed-by: Yonghong Zhu --- BaseTools/GNUmakefile | 8 +++----- BaseTools/Source/C/GNUmakefile | 11 +++++++++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/BaseTools/GNUmakefile b/BaseTools/GNUmakefile index 790d33a2f3..6325e409c7 100644 --- a/BaseTools/GNUmakefile +++ b/BaseTools/GNUmakefile @@ -1,7 +1,7 @@ ## @file # GNU/Linux makefile for Base Tools project build. # -# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.
+# Copyright (c) 2009 - 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 @@ -24,12 +24,10 @@ subdirs: $(SUBDIRS) $(SUBDIRS): $(MAKE) -C $@ +Tests: $(SOURCE_SUBDIRS) + .PHONY: $(CLEAN_SUBDIRS) $(CLEAN_SUBDIRS): -$(MAKE) -C $(@:-clean=) clean clean: $(CLEAN_SUBDIRS) - -test: - @$(MAKE) -C Tests - diff --git a/BaseTools/Source/C/GNUmakefile b/BaseTools/Source/C/GNUmakefile index 53ddb67439..50b675900f 100644 --- a/BaseTools/Source/C/GNUmakefile +++ b/BaseTools/Source/C/GNUmakefile @@ -1,7 +1,7 @@ ## @file # GNU/Linux makefile for C tools build. # -# Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.
+# 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 @@ -44,10 +44,11 @@ MAKEROOT = . include Makefiles/header.makefile -all: makerootdir subdirs $(MAKEROOT)/libs +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 = \ GnuGenBootSector \ @@ -70,6 +71,9 @@ APPLICATIONS = \ SUBDIRS := $(LIBRARIES) $(APPLICATIONS) +$(LIBRARIES): $(MAKEROOT)/libs +$(APPLICATIONS): $(LIBRARIES) $(MAKEROOT)/bin $(VFRAUTOGEN) + .PHONY: outputdirs makerootdir: -mkdir -p $(MAKEROOT) @@ -83,6 +87,9 @@ $(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