Невозможно сделать чистым, несмотря на .PHONY - PullRequest
0 голосов
/ 30 июня 2018

Я создал Makefile, чтобы конвертировать уценку в другие форматы. Я использовал .PHONY: clean, но все еще не могу make clean. Он ищет clean.md файл. Я знаю это из-за $(MAKECMDGOALS), но мне нужно конвертировать только один файл.

SOURCE= $(wildcard *.md)
## Pattern Substitution
HTML=$(SOURCE:.md=.gen.html) 
PDF=$(SOURCE:.md=.gen.pdf) 

## Targets and dependencies
.PHONY: all
all : $(HTML) $(PDF)

html:   clean $(HTML)
pdf:    clean $(PDF)

.PHONY: clean
clean:
    - $(RM) -f *.gen.*

.PHONY: $(MAKECMDGOALS)
$(MAKECMDGOALS): $(MAKECMDGOALS:%=%.html) $(MAKECMDGOALS:%=%.gen.pdf)

%.gen.html : %.md
    $(PANDOC) $(PANDOC_OPTIONS) $(PANDOC_HTML_OPTIONS) -o $@ $<

%.gen.pdf : %.md
    $(PANDOC) $(PANDOC_OPTIONS) $(PANDOC_PDF_OPTIONS) -o $@ $<

Пожалуйста, предложите изменения.

1 Ответ

0 голосов
/ 01 июля 2018
GOALS := $(filter-out clean, $(MAKECMDGOALS))

.PHONY: $(GOALS)
$(GOALS): $(GOALS:%=%.html) $(GOALS:%=%.gen.pdf)
...