X-Git-Url: http://rtime.felk.cvut.cz/gitweb/omk.git/blobdiff_plain/201fcc17684aa5c57613efbdee8908b3da20a1c9..392c2ad36c7694f01131e262ad9d36d2bcd23a4c:/snippets/prepare diff --git a/snippets/prepare b/snippets/prepare index 1886955..e4905e2 100644 --- a/snippets/prepare +++ b/snippets/prepare @@ -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