[build] Clean up all binary directories on "make [very]clean"

Allow a straightforward "make clean" or "make veryclean" to apply to
all binary directories (using the shell pattern "bin{,-*}").
Individual binary directories can be cleaned using e.g.

  make bin clean
  make bin-x86_64-efi clean

Reported-by: Robin Smidsrød <robin@smidsrod.no>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/27/merge
Michael Brown 2014-09-04 16:46:59 +01:00
parent 0ce3c97095
commit 895d73f383
1 changed files with 8 additions and 1 deletions

View File

@ -229,7 +229,7 @@ endif
# Determine how many different BIN directories are mentioned in the # Determine how many different BIN directories are mentioned in the
# make goals. # make goals.
# #
BIN_GOALS := $(filter bin/% bin-%,$(MAKECMDGOALS)) BIN_GOALS := $(filter bin bin/% bin-%,$(MAKECMDGOALS))
BIN_GOALS_BINS := $(sort $(foreach BG,$(BIN_GOALS),\ BIN_GOALS_BINS := $(sort $(foreach BG,$(BIN_GOALS),\
$(firstword $(subst /, ,$(BG))))) $(firstword $(subst /, ,$(BG)))))
NUM_BINS := $(words $(BIN_GOALS_BINS)) NUM_BINS := $(words $(BIN_GOALS_BINS))
@ -1439,6 +1439,13 @@ hci/keymap/keymap_%.c :
# #
# Clean-up # Clean-up
# #
ifeq ($(NUM_BINS),0)
ALLBINS := bin{,-*}
CLEANUP := $(patsubst $(BIN)/%,$(ALLBINS)/%,$(CLEANUP))
VERYCLEANUP := $(patsubst $(BIN)/%,$(ALLBINS)/%,$(VERYCLEANUP))
endif
clean : clean :
$(RM) $(CLEANUP) $(RM) $(CLEANUP)