$(Q3)$(MAKE) -C $(MAKERULES_DIR) -f Makefile.rules build
@$(QUIET_CMD_ECHO) "Compilation finished"
-prepare-pass: $(omk_checks)
+prepare-pass:: $(omk_checks)
else
# Run make in the top-level directory
all:
# 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 mkdir-omk-work
+.PHONY: $(pass) $(pass)-msg $(pass)-subdirs
+$(pass):: $(pass)-subdirs $(pass)-msg mkdir-omk-work
$(foreach subdir,$(SUBDIRS),$$(eval $$(call omk_pass_subdir_template,$(pass),$(subdir))))
$(pass)-msg: $(pass)-subdirs
$(eval $(call omk_pass_template,default-config-pass,$$(LOCAL_BUILD_DIR),,always))
-default-config-pass-local:
+default-config-pass::
# $(Q3)echo Default config for $(RELATIVE_DIR)
$(Q3)echo "# Config for $(RELATIVE_DIR)" >> "$(CONFIG_FILE)-default"
$(Q3)$(foreach x, $(default_CONFIG), echo '$(x)' | \
config_h_stamp_files = $(addprefix $(USER_OBJS_DIR)/,$(notdir $(addsuffix .stamp,$(config_include_HEADERS) $(LOCAL_CONFIG_H))))
# Add some hooks to standard passes
-include-pass-local: $(config_h_stamp_files)
+include-pass-local: $(config_h_stamp_files) # TODO remove -local
ifneq ($(KERN_CONFIG_HEADERS_REQUIRED),)
kern_config_h_stamp_files = $(addprefix $(KERN_OBJS_DIR)/,$(notdir $(addsuffix .stamp,$(config_include_HEADERS) $(LOCAL_CONFIG_H))))
# Add some hooks to standard passes
-include-pass-local: $(kern_config_h_stamp_files)
+include-pass-local: $(kern_config_h_stamp_files) # TODO remove -local
endif
-clean-local: clean-local-config-h
+clean-local: clean-local-config-h # TODO remove -local
clean-local-config-h:
@$(foreach confh,$(config_h_stamp_files) $(kern_config_h_stamp_files),\
$$(call solib_cmd,$(1))))
endef
-prepare-pass: create-build-dirs
-create-build-dirs::
ifneq ($(bin_PROGRAMS)$(test_PROGRAMS)$(utils_PROGRAMS)$(lib_LIBRARIES)$(shared_LIBRARIES),)
-create-build-dirs::
+prepare-pass::
@$(call mkdir_def,$(USER_OBJS_DIR))
endif
# All paths in this file should be relative to $(OUTPUT_DIR)
# Usage: $(eval $(call prepare_rule,<targets>,<deps>,<msg>,<cmd>))
define prepare_rule
-prepare-pass-local: $(omk_inc_file)
-
-.PHONY: $(omk_inc_file)
-$(omk_inc_file):
+prepare-pass::
#TODO remove echos from the next commands
@set -e;\
- echo 'prepared_rules += $(omk_inc_rule)' > $$@.tmp; \
- echo '$(omk_inc_rule)_targets = $$(call strip_out,$(1))' >> $$@.tmp; \
- echo '$(omk_inc_rule)_deps += $$(call strip_out,$(2))' >> $$@.tmp; \
- echo '$(omk_inc_rule)_msg = $(3)' >> $$@.tmp; \
- echo '$(omk_inc_rule)_cmd = $(call subst-cmd,$(4))' >> $$@.tmp; \
- if cmp -s $$@.tmp $$@; then rm $$@.tmp; echo " CHK "$$(call strip_out,$$@); else mv $$@.tmp $$@; echo " UPD "$$(call strip_out,$$@); fi
+ echo 'prepared_rules += $(omk_inc_rule)' > $(omk_inc_file).tmp; \
+ echo '$(omk_inc_rule)_targets = $$(call strip_out,$(1))' >> $(omk_inc_file).tmp; \
+ echo '$(omk_inc_rule)_deps += $$(call strip_out,$(2))' >> $(omk_inc_file).tmp; \
+ echo '$(omk_inc_rule)_msg = $(3)' >> $(omk_inc_file).tmp; \
+ echo '$(omk_inc_rule)_cmd = $(call subst-cmd,$(4))' >> $(omk_inc_file).tmp; \
+ if cmp -s $(omk_inc_file).tmp $(omk_inc_file); then rm $(omk_inc_file).tmp; echo " CHK "$$(call strip_out,$(omk_inc_file)); else mv $(omk_inc_file).tmp $(omk_inc_file); echo " UPD "$$(call strip_out,$(omk_inc_file)); fi
endef
###
prepared_goals += $(call strip_out,$(1))
endef
-prepare-pass-local: $(OMK_WORK_DIR)/__goals.omk.inc
-$(OMK_WORK_DIR)/__goals.omk.inc: FORCE
- @echo 'omk_goals += $(prepared_goals)' > $@.tmp; \
- if cmp -s $@.tmp $@; then rm $@.tmp; else mv $@.tmp $@; fi
+_goals := $(OMK_WORK_DIR)/__goals.omk.inc
+
+prepare-pass::
+ @echo 'omk_goals += $(prepared_goals)' > $(_goals).tmp; \
+ if cmp -s $(_goals).tmp $(_goals); \
+ then rm $(_goals).tmp; \
+ else mv $(_goals).tmp $(_goals); fi