![makefile '%' 와일드카드를 사용하여 파일을 무시하는 방법은 무엇입니까?](https://linux55.com/image/194635/makefile%20'%25'%20%EC%99%80%EC%9D%BC%EB%93%9C%EC%B9%B4%EB%93%9C%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%AC%B4%EC%8B%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
다음 Makefile 조각에서 asciidoctor
현재 파일이 "list.html"인 경우 명령 실행을 방지하려면 어떻게 해야 합니까?
%.html: src/%.m4
@echo $@
@asciidoctor -s -a linkcss -a stylesheet=plain.css src/$(LATEST).adoc
@m4 -D__latest=$(LATEST) $< > out/$@
답변1
list.html
와일드카드 재정의 에 대한 명시적인 규칙을 만듭니다 .
asciidoctor
나에게는 또는 m4
설정이 없으므로 규칙의 just cp
및 as 작업을 사용하여 :
표시하겠습니다 ( :
작업이 없는 빈 규칙은 작동하지 않으므로 여기에 필요하며 귀하의 경우에는 실행을 위한 작업이 필요하지 m4
않습니다 ). asciidoctor
아래 list.html
)에 다음 내용이 포함됩니다 Makefile
.
list.html:
: do nothing for $@
%.html: %.m4
cp $< $@
예제를 실행하세요:
$ touch x.m4 list.m4
$ make x.html list.html
cp x.m4 x.html
: do nothing for list.html
:
sh의 "빈 명령"입니다. help :
배쉬 에서 :
:: : 빈 명령입니다.
No effect; the command does nothing. Exit Status: Always succeeds.
억제 출력은 평소대로 사용할 수 있습니다 @:
. true
아니면 @true
그것도 작동합니다.