gnu make:在规则依赖项

时间:2015-06-23 16:11:07

标签: cmake makefile gnu-make pandoc

我想有一些表格的制定规则

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能更好地处理这种情况吗?

1 个答案:

答案 0 :(得分:2)

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

define build_rule
    build/$1.pdf: text/$1/$1.md
        ....
endef

$(foreach f,file_a file_b,$(eval $(call build_rule,$f)))