ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

Makefile の 行頭に '-' (ハイフン) がある場合の挙動

エラー検知がうまくいかないため、あるシステムの改修を行った際に、Makefile に '-' からはじまる行がありました。
調べてみたら、'-' はその行のコマンドが失敗しても次の行が実行されるコマンドのようでした。

コマンド内エラーというそうです。
しらなかった...
GNU make 日本語訳(Coop編) - ルール行でのコマンドの記述

サンプル

コマンド行の本文の初め(先頭のタブの直後)に '-' と書けばそのコマンド行でのエラーを無視させることができます。'-' はシェルにコマンドを渡して実行させる前に削除されます。

clean:
        -rm -f *.o