dirs.mk: Introduced ALLOWED_SUBDIR_TARGETS

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2013-08-01 13:26:05 +00:00
commit a0798e4edf

View file

@ -3,8 +3,10 @@
# contact@jannet.de # contact@jannet.de
# $Id$ # $Id$
ALLOWED_SUBDIR_TARGETS ?= all install clean distclean test
.NOTPARALLEL: .NOTPARALLEL:
.PHONY: $(SUBDIRS_TO_ITERATE) all install clean distclean test .PHONY: $(SUBDIRS_TO_ITERATE) $(ALLOWED_SUBDIR_TARGETS)
ifneq ($(FORCE_REBUILD_SUBDIRS),) ifneq ($(FORCE_REBUILD_SUBDIRS),)
.PHONY: dirs-all.done .PHONY: dirs-all.done
@ -16,14 +18,14 @@ SUBDIRS ?= $(FIND_SUBDIRS)
ifeq ($(SUBDIRS_TO_ITERATE),) ifeq ($(SUBDIRS_TO_ITERATE),)
all install clean distclean: $(ALLOWED_SUBDIR_TARGETS):
else else
ifeq ($(MAKECMDGOALS),) ifeq ($(MAKECMDGOALS),)
SUBDIR_TARGETS = all SUBDIR_TARGETS = all
else else
SUBDIR_TARGETS = $(filter all install clean distclean,$(MAKECMDGOALS)) SUBDIR_TARGETS = $(filter $(ALLOWED_SUBDIR_TARGETS),$(MAKECMDGOALS))
endif endif
ifneq ($(DONT_CHECK_PREREQ_DONE),true) ifneq ($(DONT_CHECK_PREREQ_DONE),true)
@ -35,6 +37,14 @@ install: dirs-install.done
clean: dirs.clean clean: dirs.clean
distclean: dirs.clean dirs.distclean distclean: dirs.clean dirs.distclean
define subdir_rule
$(1): dirs-$(1).done
endef
$(foreach t,$(filter-out all install clean distclean,$(ALLOWED_SUBDIR_TARGETS)),$(eval $(call subdir_rule,$(t))))
%/dirs-all.done: %/dirs-all.done:
@echo $@ needs to be rebuilt @echo $@ needs to be rebuilt
exit 1 exit 1