# 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