ディレクトリが存在する場合は削除する必要があるというルールを作成しました。
.PHONY: distclean
distclean:
-rmdir release
make distclean
印刷:
rmdir release
rmdir: failed to remove ‘release’: No such file or directory
test.mak:3: recipe for target 'distclean' failed
make: [distclean] Error 1 (ignored)
-
このフラグが原因でGNU Makeはこのエラーを無視する必要はありませんか?
私はGNU Make 4.0を使用しています。
答え1
Makeはエラーを無視します。
make: [distclean] Error 1 (ignored)
それでもエラーメッセージが表示されますが、distclean
ターゲットに別のルールを追加した場合は、rmdir
失敗にもかかわらず処理を続行する必要があります。
もっと詳しく:
rmdir release
これにより、make
すぐに実行されるコマンドが印刷されます。
rmdir: failed to remove ‘release’: No such file or directory
存在しないrmdir
ため、エラーメッセージが表示されます。これを削除するには、コマンドに追加するか、release
完全にミュートすることができます。2> /dev/null
>& /dev/null
rmdir
test.mak:3: recipe for target 'distclean' failed
rmdir
ゼロ以外の終了コードで終了するため、make
エラーメッセージが出力されます。これを削除するには、|| true
コマンドに追加する必要があります(すべての場合にゼロ終了コードで終了するように)。
make: [distclean] Error 1 (ignored)
最後にコマンドの前に付いているので、-
エラーは無視され続けますmake
。