diff --git a/make/dirs.mk b/make/dirs.mk index 30871b86..7309b9b3 100644 --- a/make/dirs.mk +++ b/make/dirs.mk @@ -21,40 +21,22 @@ else SUBDIR_TARGETS = $(filter all install clean distclean,$(MAKECMDGOALS)) endif -all: dirs.done -subdirs: dirs.done +PREREQ_DIRS_DONE = $(addsuffix /dirs-all.done,$(filter-out $(TOPDIR),$(foreach p,$(PREREQ),$($(p)_DIR)))) + +all: dirs-all.done +install: dirs-install.done clean: dirs.clean distclean: dirs.clean dirs.distclean -.DEFAULT: -install: +.PHONY: $(SUBDIRS_TO_ITERATE) all install clean distclean test -.PHONY: $(SUBDIRS_TO_ITERATE) - -#ifeq ($(MAKECMDGOALS),) -#all: -# $(make_subdirs) -# touch dirs.done -# -#$(MAKECMDGOALS): -# $(make_subdirs_target) -# touch dirs.done - - -define make_dirs - set -e; for t in $(SUBDIR_TARGETS); do \ - for d in $(SUBDIRS) ; do \ - make -wC $$d $$t ;\ - done ;\ - done -endef - -PREREQ_DIRS_DONE = $(foreach p,$(PREREQ),$($(p)_DIR)/dirs.done) - -dirs.done: $(wildcard $(BUILD_HDRDIR)) $(PREREQ_DIRS_DONE) - $(make_dirs) +dirs-%.done: + set -e; for d in $(SUBDIRS) ; do make -wC $$d $*; done touch $@ +dirs-all.done: $(wildcard $(BUILD_HDRDIR)) $(PREREQ_DIRS_DONE) +dirs-install.done: dirs-all.done + dirs.clean: $(make_dirs) rm -rf $(TEXTCLEAN) $(CLEAN) dist *.done *~ .*.swp *.tmp core *.rep