build system: Don't run the full build system on "make clean"

When running "make clean" the build system used to parse the entire
build system. Besides costing time, it prevents cleaning the tree
if a blobs-board is selected but blobs are not enabled.

Instead, clean always removes all of $(obj) and .xcompile, while
distclean additionally removes .config and the like.

Besides cleaning up more completely (eg. dependency files), a side
effect is that this also removes $(obj)/util, if it exists
(default location for build tools).

Change-Id: Ief6362460d4eb7edcb4b0a47ec76cb9a61bf3b86
Signed-off-by: Patrick Georgi <patrick@georgi-clan.de>
Reviewed-on: http://review.coreboot.org/2338
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Patrick Georgi 2013-02-09 15:45:02 +01:00
parent 9a00016238
commit 02ae0bf8fe
1 changed files with 4 additions and 7 deletions

View File

@ -97,10 +97,10 @@ ifeq ($(strip $(HAVE_DOTCONFIG)),)
NOCOMPILE:=1
endif
ifneq ($(MAKECMDGOALS),)
ifneq ($(filter %config distclean,$(MAKECMDGOALS)),)
ifneq ($(filter %config %clean,$(MAKECMDGOALS)),)
NOCOMPILE:=1
endif
ifeq ($(MAKECMDGOALS), distclean)
ifeq ($(MAKECMDGOALS), %clean)
NOMKDIR:=1
endif
endif
@ -299,9 +299,7 @@ doxygen-clean:
rm -rf $(DOXYGEN_OUTPUT_DIR)
clean-for-update: doxygen-clean clean-for-update-target
rm -f $(allobjs) .xcompile
rm -f $(DEPENDENCIES)
rmdir -p $(alldirs) 2>/dev/null >/dev/null || true
rm -rf $(obj) .xcompile
clean: clean-for-update clean-target
rm -f .ccwrap
@ -309,8 +307,7 @@ clean: clean-for-update clean-target
clean-cscope:
rm -f cscope.out
distclean:
rm -rf $(obj)
distclean: clean
rm -f .config .config.old ..config.tmp .kconfig.d .tmpconfig* .ccwrap .xcompile
.PHONY: $(PHONY) clean clean-for-update clean-cscope cscope distclean doxygen doxy .xcompile