build system: don't run xcompile or git for %clean/%config targets

It takes a long time for no gain: We don't need to update the
submodules, we don't need to fetch the revision, we don't need to find
the compilers, when all we want to do is to manipulate the .config file
or clean the build directory.

Change-Id: Ie1bd446a0d49a81e3cccdb56fe2c43ffd83b6c98
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-on: https://review.coreboot.org/18182
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
Patrick Georgi 2017-01-19 23:20:14 +01:00 committed by Patrick Georgi
parent 5e949faec1
commit 0ffef882d8
4 changed files with 34 additions and 24 deletions

View File

@ -30,16 +30,6 @@
## SUCH DAMAGE. ## SUCH DAMAGE.
## ##
# in addition to the dependency below, create the file if it doesn't exist
# to silence stupid warnings about a file that would be generated anyway.
$(if $(wildcard .xcompile),,$(eval $(shell util/xcompile/xcompile $(XGCCPATH) > .xcompile || rm -f .xcompile)))
.xcompile: util/xcompile/xcompile
rm -f $@
$< $(XGCCPATH) > $@.tmp
\mv -f $@.tmp $@ 2> /dev/null
rm -f $@.tmp
export top := $(CURDIR) export top := $(CURDIR)
export src := src export src := src
export srck := $(top)/util/kconfig export srck := $(top)/util/kconfig
@ -139,6 +129,16 @@ else
include $(DOTCONFIG) include $(DOTCONFIG)
# in addition to the dependency below, create the file if it doesn't exist
# to silence stupid warnings about a file that would be generated anyway.
$(if $(wildcard .xcompile)$(NOCOMPILE),,$(eval $(shell util/xcompile/xcompile $(XGCCPATH) > .xcompile || rm -f .xcompile)))
.xcompile: util/xcompile/xcompile
rm -f $@
$< $(XGCCPATH) > $@.tmp
\mv -f $@.tmp $@ 2> /dev/null
rm -f $@.tmp
-include .xcompile -include .xcompile
ifneq ($(XCOMPILE_COMPLETE),1) ifneq ($(XCOMPILE_COMPLETE),1)

View File

@ -13,7 +13,11 @@
## GNU General Public License for more details. ## GNU General Public License for more details.
## ##
ifneq ($(NOCOMPILE),1)
GIT:=$(shell [ -e "$(top)/.git" ] && command -v git) GIT:=$(shell [ -e "$(top)/.git" ] && command -v git)
else
GIT:=
endif
####################################################################### #######################################################################
# normalize Kconfig variables in a central place # normalize Kconfig variables in a central place

View File

@ -20,6 +20,7 @@ srck := $(src)/../../util/kconfig
coreinfo_obj := $(src)/build coreinfo_obj := $(src)/build
objk := $(src)/build/util/kconfig objk := $(src)/build/util/kconfig
ifeq ($(filter %clean,$(MAKECMDGOALS)),)
export KERNELVERSION := 0.1.0 export KERNELVERSION := 0.1.0
export KCONFIG_AUTOHEADER := $(coreinfo_obj)/config.h export KCONFIG_AUTOHEADER := $(coreinfo_obj)/config.h
export KCONFIG_AUTOCONFIG := $(coreinfo_obj)/auto.conf export KCONFIG_AUTOCONFIG := $(coreinfo_obj)/auto.conf
@ -128,6 +129,12 @@ $(coreinfo_obj)/config.h:
$(shell mkdir -p $(coreinfo_obj) $(objk)/lxdialog $(KCONFIG_SPLITCONFIG)) $(shell mkdir -p $(coreinfo_obj) $(objk)/lxdialog $(KCONFIG_SPLITCONFIG))
include $(srck)/Makefile
.PHONY: $(PHONY) prepare
else
clean: clean:
rm -rf build/*.elf build/*.o .xcompile rm -rf build/*.elf build/*.o .xcompile
@ -135,6 +142,5 @@ distclean: clean
rm -rf build lpbuild rm -rf build lpbuild
rm -f .config* lp.config* rm -f .config* lp.config*
include $(srck)/Makefile .PHONY: clean distclean
endif
.PHONY: $(PHONY) prepare clean distclean

View File

@ -81,14 +81,6 @@ DOXYGEN_OUTPUT_DIR := doxygen
all: real-all all: real-all
# in addition to the dependency below, create the file if it doesn't exist
# to silence stupid warnings about a file that would be generated anyway.
$(if $(wildcard .xcompile),,$(eval $(shell $(top)/../../util/xcompile/xcompile $(XGCCPATH) > .xcompile)))
.xcompile: $(top)/../../util/xcompile/xcompile
$< $(XGCCPATH) > $@.tmp
\mv -f $@.tmp $@ 2> /dev/null
ifeq ($(INNER_SCANBUILD),y) ifeq ($(INNER_SCANBUILD),y)
CC:=$(CC_real) CC:=$(CC_real)
HOSTCC:=$(CC_real) --hostcc HOSTCC:=$(CC_real) --hostcc
@ -101,8 +93,6 @@ include $(srck)/Makefile
include $(HAVE_DOTCONFIG) include $(HAVE_DOTCONFIG)
include .xcompile
ARCHDIR-$(CONFIG_LP_ARCH_ARM) := arm ARCHDIR-$(CONFIG_LP_ARCH_ARM) := arm
ARCHDIR-$(CONFIG_LP_ARCH_ARM64) := arm64 ARCHDIR-$(CONFIG_LP_ARCH_ARM64) := arm64
ARCHDIR-$(CONFIG_LP_ARCH_MIPS) := mips ARCHDIR-$(CONFIG_LP_ARCH_MIPS) := mips
@ -138,7 +128,7 @@ ifeq ($(strip $(HAVE_DOTCONFIG)),)
NOCOMPILE:=1 NOCOMPILE:=1
endif endif
ifneq ($(MAKECMDGOALS),) ifneq ($(MAKECMDGOALS),)
ifneq ($(filter %config distclean,$(MAKECMDGOALS)),) ifneq ($(filter %config %clean,$(MAKECMDGOALS)),)
NOCOMPILE:=1 NOCOMPILE:=1
endif endif
endif endif
@ -149,6 +139,16 @@ real-all: config
else else
# in addition to the dependency below, create the file if it doesn't exist
# to silence stupid warnings about a file that would be generated anyway.
$(if $(wildcard .xcompile)$(NOCOMPILE),,$(eval $(shell $(top)/../../util/xcompile/xcompile $(XGCCPATH) > .xcompile)))
.xcompile: $(top)/../../util/xcompile/xcompile
$< $(XGCCPATH) > $@.tmp
\mv -f $@.tmp $@ 2> /dev/null
-include .xcompile
ifneq ($(INNER_SCANBUILD),y) ifneq ($(INNER_SCANBUILD),y)
ifeq ($(CONFIG_LP_COMPILER_LLVM_CLANG),y) ifeq ($(CONFIG_LP_COMPILER_LLVM_CLANG),y)
CC:=clang -m32 CC:=clang -m32