想象一下包含多个Markdown文件的目录树(可能超过一层)。每个文件的PDF版本存在于同一目录中,每次更新相应的Markdown文件时都必须更新。必须在此树的根目录中的单个Makefile中写入什么规则才能实现此目的?
我正在寻找一种解决方案,可以在目录树中添加或删除文件,而无需更新Makefile。
假设:
答案 0 :(得分:2)
您可以使用$(shell find)
递归查找文件。例如:
markdown := $(shell find . -name '*.md')
all: $(patsubst %.md, %.pdf, $(markdown))
%.pdf: %.md
pandoc -o $@ $<