SOURCESDIR_MAKEFILE=$(SOURCES_DIR)/Makefile
endif
+pass = $(strip $(1))
+
# Call a pass in a subdirectory
# Usage: $(call omk_pass_subdir_template,<pass name>,<build dir>,<subdir>)
define omk_pass_subdir_template
-.PHONY: $(1)-$(3)-subdir
-$(1)-submakes: $(1)-$(3)-subdir
-$(1)-$(3)-subdir:
+.PHONY: $(pass)-$(3)-subdir
+$(pass)-submakes: $(pass)-$(3)-subdir
+$(pass)-$(3)-subdir:
@$(call mkdir_def,$(2)/$(3))
+@$(MAKE) SOURCES_DIR=$(SOURCES_DIR)/$(3) $(NO_PRINT_DIRECTORY) \
RELATIVE_DIR=$(RELATIVE_PREFIX)$(3) -C $(2)/$(3) \
- -f $(SUBDIR_MAKEFILE) $(1)-submakes
+ -f $(SUBDIR_MAKEFILE) $(pass)-submakes
# In subdirectories we can call submakes directly since passes are
# already searialized on the toplevel make.
endef
# Usage: $(call omk_pass_template,<pass name>,<build dir>,[<local make flags>],[<local enable condition>])
define omk_pass_template
-.PHONY: $(1) $(1)-local $(1)-check $(1)-submakes
-$(foreach subdir,$(SUBDIRS),$(eval $(call omk_pass_subdir_template,$(1),$(2),$(subdir))))
-$(1):
+.PHONY: $(pass) $(pass)-local $(pass)-check $(pass)-submakes
+$(foreach subdir,$(SUBDIRS),$(eval $(call omk_pass_subdir_template,$(pass),$(2),$(subdir))))
+$(pass):
# Submakes have to be called this way and not as dependecies for pass
# serialization to work
+@$(MAKE) SOURCES_DIR=$(SOURCES_DIR) --no-print-directory \
RELATIVE_DIR=$(RELATIVE_DIR) \
- -f $(SOURCESDIR_MAKEFILE) $(1)-submakes
-$(1)-submakes:
+ -f $(SOURCESDIR_MAKEFILE) $(pass)-submakes
+$(pass)-submakes:
@true # Do not emit "nothing to be done" messages
ifneq ($(4),)
-$(1)-submakes: $(1)-this-dir
-$(1)-this-dir: $(foreach subdir,$(SUBDIRS),$(1)-$(subdir)-subdir)
- +@echo "make[omk]: $(strip $(1)) in $(RELATIVE_DIR)"
+$(pass)-submakes: $(pass)-this-dir
+$(pass)-this-dir: $(foreach subdir,$(SUBDIRS),$(pass)-$(subdir)-subdir)
+ +@echo "make[omk]: $(pass) in $(RELATIVE_DIR)"
@$(call mkdir_def,$(2))
+@$(MAKE) $(NO_PRINT_DIRECTORY) SOURCES_DIR=$(SOURCES_DIR) RELATIVE_DIR=$(RELATIVE_DIR) -C $(2) \
-f $(SOURCESDIR_MAKEFILE) $(3) $(check-target) $(1:%=%-local)