在Makefile上更改执行文件前缀

时间:2018-03-04 11:56:04

标签: unix makefile gnu-make

鉴于此降价:

MARKDOWN=$(shell find src -iname "*.md")

HTML=$(MARKDOWN:src%.md=dist%.html)

all: $(HTML)

%.html:
    #do the processing here

我可以更改HTML变量上文件的前缀和后缀。 但是当我执行构建时,我想将其更改为使用脚本上的markdown。

我想要这样的事情:

%.html: src%.md
     pandoc --from markdown --to html $< -o $@

到目前为止,我能够更改后缀,但不能更改前缀。 我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:4)

鉴于您对HTML变量的定义:

HTML=$(MARKDOWN:src%.md=dist%.html)

规则%.html: src%.mdHTML的扩展不匹配,因为词干(即:%部分)必须包含{{1}对于目标而不是对于先决条件。相反,规则必须更改为:

dist