尽管有 .PHONY,但无法进行 make clean
Unable to do make clean despite .PHONY
我创建了一个 Makefile,用于将 markdown 转换为其他格式。我已经用了.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 $@ $<
请提出修改建议。
GOALS := $(filter-out clean, $(MAKECMDGOALS))
.PHONY: $(GOALS)
$(GOALS): $(GOALS:%=%.html) $(GOALS:%=%.gen.pdf)
我创建了一个 Makefile,用于将 markdown 转换为其他格式。我已经用了.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 $@ $<
请提出修改建议。
GOALS := $(filter-out clean, $(MAKECMDGOALS))
.PHONY: $(GOALS)
$(GOALS): $(GOALS:%=%.html) $(GOALS:%=%.gen.pdf)