]> rtime.felk.cvut.cz Git - omk.git/blobdiff - snippets/prepare
Added notification when updating .omk.inc files
[omk.git] / snippets / prepare
index 1886955ed98fb0790440081157194a1cff1fb884..e4905e24c7b692c3b7283bdeb03eb656ca7dc981 100644 (file)
@@ -18,9 +18,10 @@ omk_inc_file = $(if $(filter $(BUILD_DIR_NAME)%,$(omk_inc_rule)),\
 
 target_omk_file = $(OMK_WORK_DIR)/$(notdir $(1)).target.omk
 
+# >\< substitution to preserve \ in echo argument
 # >'< substitution is for echo to work,
 # >$< substitution to preserve $ when reloading .omk.inc file
-subst-cmd = $(subst \#,\\\#,$(subst $$,$$$$,$(call escsq,$(1))))
+subst-cmd = $(subst $$,$$$$,$(call escsq,$(subst \,\\,$(1))))
 
 ###
 # prepare_rule is used to generate .omk.inc files during prepare-pass.
@@ -29,15 +30,16 @@ subst-cmd = $(subst \#,\\\#,$(subst $$,$$$$,$(call escsq,$(1))))
 define prepare_rule
 prepare-pass-local: $(omk_inc_file)
 
-$(omk_inc_file): FORCE
-#TODO remove the next line
-       @echo "  PREP    "$$(call strip_out,$$@); \
+.PHONY: $(omk_inc_file)
+$(omk_inc_file):
+#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; else mv $$@.tmp $$@; fi
+       if cmp -s $$@.tmp $$@; then rm $$@.tmp; echo "  CHK     "$$(call strip_out,$$@); else mv $$@.tmp $$@; echo "  UPD     "$$(call strip_out,$$@); fi
 endef
 
 ###
@@ -51,7 +53,7 @@ endef
 
 prepare-pass-local: $(OMK_WORK_DIR)/__goals.omk.inc
 $(OMK_WORK_DIR)/__goals.omk.inc: FORCE
-       $(Q)echo 'omk_goals += $(prepared_goals)' > $@.tmp; \
+       @echo 'omk_goals += $(prepared_goals)' > $@.tmp; \
            if cmp -s $@.tmp $@; then rm $@.tmp; else mv $@.tmp $@; fi