X-Git-Url: https://mattmccutchen.net/mgear/mgear.git/blobdiff_plain/cf5fd926c0fbe03d7991a0342c6a99605c60692e..ff59f3cf9dd552edf18931d41a491b2c6e495c99:/experiments/prereq-predict.mk diff --git a/experiments/prereq-predict.mk b/experiments/prereq-predict.mk new file mode 100644 index 0000000..8ea4514 --- /dev/null +++ b/experiments/prereq-predict.mk @@ -0,0 +1,32 @@ +.SECONDEXPANSION: + +#dir/x.foo: + +#ding=$(@:.foo=.bar) +# +#%.foo: $$(info got here) /./proc/self/cwd/$$(ding) +# echo "Prerequisites: $^" +# +#%.bar: +# echo "We want $@" + +# $(call save-and-use,/,prereqs) +#save-and-use=$(eval $@=$(if $1,$2,$(foreach p,$2,$(dir $@)$p)))$2 + +pr1=$(info in pr1, $$@ is $@)$(eval $@@gdeps:=$(subst %,$*,$1))$1 +pr2=$(info in pr2, $$@ is $@)$(eval $@@gdeps:=$(addprefix $(dir $@),$(subst %,$*,$1)))$1 + +FORCE: + +define define-rule +$(eval +$1: $(if $(findstring /,$1),$$$$(call pr1,$2),$$$$(call pr2,$2)) FORCE + $$(info +++ $$$$^ is $$^, gdeps is $$($$@@gdeps)) +) +endef + +$(call define-rule,%.foo,%.bar) + +x/%.bar: + $(info +++ Making $@) +