GNU Makefile マニュアルには、これらのプレフィックスについて記載されています。
.ONESHELL が指定されている場合は、レシピの最初の行のみで特殊なプレフィックス文字 ('@'、'-'、および '+') がチェックされます。
これらの接頭辞は何をするのでしょうか、またどこで言及されているのでしょうか?
ベストアンサー1
これらは、タグ付けされたコマンドラインに対する make の動作を制御します。
@
実行されたコマンドの通常の「エコー」を抑制します。-
実行されたコマンドの終了ステータスを無視することを意味します (通常、終了ステータスがゼロ以外の場合、ビルドのその部分は停止します)。+
は、コマンドが正常に実行されない場合に、このコマンドをmake -n
'(または 'make -t' または 'make -q') で実行することを意味します。 の POSIX 仕様と、 GNU Make マニュアルの§9.3make
も参照してください。
この表記法は、またはを含むコマンドラインが の下で実行されるという事実上の(非+
標準化)メカニズムの(POSIX 標準化された)一般化です。${MAKE}
$(MAKE)
make -n
(はGNU Make マニュアルの§5.2@
で説明されており、 は§5.5で説明されており、§5.7.1では の使用について言及されています。)-
+