我有.haml
文件,想将它们自动转换为.html
文件,并在更改.haml
时更新后者。
通用的makefile规则是没有问题的:
%.html: %.haml
hamlpy $< $@
但是现在我需要一个规则或命令来执行以下操作:
X.haml
中找到所有templates/
文件make X.html
命令,其中X是相同的文件名(haml
替换为html
)。 我找不到如何用GNU Make或Unix find做到这一点。
最佳答案
如果您所有的*.haml
文件都是好名字(即没有空格或其他有趣的字符),则可以通过调用find(1)
来做到这一点:
HAML_FILES = $(shell find templates/ -type f -name '*.haml')
HTML_FILES = $(HAML_FILES:.haml=.html)
all: $(HTML_FILES)
%.html : %.haml
hamlpy $< $@