私のGNU Makefileには次の規則があります。
FITXER = fitxa.md
$(FITXER).html: $(FITXER)
pandoc --from markdown --to html $(FITXER) -o $(FITXER).html
$(FITXER).jpeg: $(FITXER).html
wkhtmltoimage $(FITXER).html $(FITXER).jpeg
ファイルリストにこのルールを適用する方法はありますか?例:(医師コードから)
for FITXER in [fitxa.md, a.md, b.md, ...] do
$(FITXER).html: $(FITXER)
pandoc --from markdown --to html $(FITXER) -o $(FITXER).html
$(FITXER).jpeg: $(FITXER).html
wkhtmltoimage $(FITXER).html $(FITXER).jpeg
endfor
答え1
この問題に対する解決策は、一般的なビルドルールを定義することです。
%.html: %.md
pandoc --from markdown --to html $< -o $@
%.jpg: %.html
wkhtmltoimage $< $@
ここでは、make
MarkdownファイルからHTMLファイルを作成する方法とHTMLファイルからJPEGを作成する方法について説明します。
これを完了したら、すべてのmake
人に知らせるだけです。出力あなたが探しているファイル:
all: fitxa.jpg a.jpg b.jpg
.PHONY: all
make all
要求されたJPEGファイルを取得する方法を理解します。
特定のMarkdownファイルを異なる方法で処理するために他のルールを定義することもできます。
foo.jpg: foo.md
# Process foo.md here to build foo.jpg
これらの特定の規則は一般規則よりも優先されます。