내 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
이러한 특정 규칙은 일반 규칙보다 우선합니다.