SOURCESDIR_MAKEFILE=$(SOURCES_DIR)/Makefile
endif
+BUILD_DIR_NAME = _build
+COMPILED_DIR_NAME = _compiled
+
+BUILD_OMK_DIR := $(OUTPUT_DIR)/$(BUILD_DIR_NAME)/omk
+OMK_WORK_DIR := $(BUILD_OMK_DIR)$(RELATIVE_DIR:%=/%)
+
+check-dir::
+ @$(call mkdir_def,$(BUILD_OMK_DIR))
+
pass = $(strip $(1))
# Call a pass in a subdirectory
-# Usage: $(call omk_pass_subdir_template,<pass name>,<build dir>,<subdir>)
+# Usage: $(call omk_pass_subdir_template,<pass name>,<subdir>)
define omk_pass_subdir_template
-.PHONY: $(pass)-$(3)-subdir
-$(pass)-subdirs: $(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) \
+.PHONY: $(pass)-$(2)-subdir
+$(pass)-subdirs: $(pass)-$(2)-subdir
+$(pass)-$(2)-subdir:
+ @$(call mkdir_def,$(OMK_WORK_DIR)/$(2))
+ +@$(MAKE) SOURCES_DIR=$(SOURCES_DIR)/$(2) $(NO_PRINT_DIRECTORY) \
+ RELATIVE_DIR=$(RELATIVE_PREFIX)$(2) -C $(2) \
-f $(SUBDIR_MAKEFILE) $(pass)
endef
$(foreach subdir,$(EXTRA_RULES_SUBDIRS),$(eval $(call extra_rules_subdir_template,$(subdir))))
-# Usage: $(call omk_pass_template,<pass name>,<build dir>,[<local make flags>],[<local enable condition>])
+# Usage: $(call omk_pass_template,<pass name>)
define omk_pass_template
.PHONY: $(pass) $(pass)-local $(pass)-msg $(pass)-subdirs
$(pass): $(pass)-local
$(pass)-local: $(pass)-subdirs $(pass)-msg
-$(foreach subdir,$(SUBDIRS),$(call omk_pass_subdir_template,$(pass),$(2),$(subdir)))
+$(foreach subdir,$(SUBDIRS),$(call omk_pass_subdir_template,$(pass),$(subdir)))
$(pass)-msg: $(pass)-subdirs
+@echo "make[omk]: $(pass) in $(RELATIVE_DIR)"
endef
+
# =======================
# DEFAULT CONFIG PASS