gnu-make:在规则依赖中使用通配符两次



我想要一些形式的make规则

build/file_a.pdf: text/file_a/file_a.md
    pandoc -o build/file_a.pdf text/file_a/file_a.md
build/file_b.pdf: text/file_b/file_b.md
    pandoc -o build/file_b.pdf text/file_a/file_b.md
...

每当我更改一些降价文件时,都会将它们转换为PDF。我认为指定一个类似的规则

build/%.pdf: text/%/%.md
    ....

不起作用。有没有一种方法可以生成与我的特殊模式相匹配的规则?cmake能更好地处理此类案件吗?

您可以使用defineevalcall动态生成规则。

define build_rule
    build/$1.pdf: text/$1/$1.md
        ....
endef
$(foreach f,file_a file_b,$(eval $(call build_rule,$f)))

最新更新