From: Michal Sojka Date: Fri, 18 Apr 2008 16:15:00 +0000 (+0000) Subject: Pass names varables was stripped from spaces X-Git-Tag: v0.1~12 X-Git-Url: http://rtime.felk.cvut.cz/gitweb/omk.git/commitdiff_plain/bd3e12c812bb1b72e73482c06d0bceb301992a3f Pass names varables was stripped from spaces darcs-hash:20080418161527-f2ef6-b650ef6ca88a1ab37f9e1ba5559bfa7660dc056d.gz --- diff --git a/snippets/base b/snippets/base index 6e352d0..e70438e 100644 --- a/snippets/base +++ b/snippets/base @@ -175,16 +175,18 @@ SUBDIR_MAKEFILE=$(SOURCES_DIR)/$(3)/Makefile SOURCESDIR_MAKEFILE=$(SOURCES_DIR)/Makefile endif +pass = $(strip $(1)) + # Call a pass in a subdirectory # Usage: $(call omk_pass_subdir_template,,,) 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 @@ -195,21 +197,21 @@ endif # Usage: $(call omk_pass_template,,,[],[]) 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)