我有许多标记文本格式的文本文件,我想使用GNU make来生成HTML输出。我有这个只使用一个文件的Makefile:
MARKDOWN=markdown2
all: my_article_1242323266.html
%.html: %.markdown
$(MARKDOWN) $< $@
clean:
rm -f *html
现在,我想让它使用所有markdown / html文件,但我不想列出Makefile中的所有文件。我尝试了$(wildcard * .html),但它无法正常工作,因为我还没有目录中的“源”文件。怎么做?
答案 0 :(得分:3)
使用类似这样的东西SOURCES = $(shell find。-name“* .cpp”-print | sort)。这将获得所有cpp文件
答案 1 :(得分:3)
MARKDOWN = markdown2
HTMLS = $(patsubst %.markdown,%.html,$(wildcard *.markdown))
all: $(HTMLS)
%.html: %.markdown
$(MARKDOWN) $< $@
clean:
rm -f $(HTMLS)
答案 2 :(得分:1)
感谢v01d,我将他的解决方案修改为:
MARKDOWN=markdown2
SOURCES=$(shell find . -name "*.markdown" | sed 's/markdown/html/')
all: $(SOURCES)
%.html: %.markdown
$(MARKDOWN) $< $@
clean:
rm -f *html