我有跟Dockerfile的文件夹
我收集它为$(DOCKER_TARGES)---> build-path1-v1 build-path1-v2 build-path2-v2
现在我的目标
build-%: build/$(subst -,/,%))/Dockerfile $(shell find build -type f)
我尝试替换%
中的字符串,但它无法正常工作。有什么建议吗?
答案 0 :(得分:1)
您可以使用secondary expansion:
执行此操作.SECONDEXPANSION:
build-%: build/$$(subst -,/,%) $$(shell find build -type f)
请注意双$$
符号 - 因为这些符号将在最终扩展中扩展为美元符号。您也可以使用定义来执行此操作,但我讨厌这样做,因为它可能导致看不见的膨胀:
define MKRULE
build-$1: build/$$(subst -,/,$1) $$(shell find build -type f)
endef
foreach(f,$(TARGS),$(eval $(call MKRULE $f)))