次の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
それも動作します。