ファイルが存在しない場合にエラー状態を終了する方法はありますか?ファイルがメイクファイルのターゲットに存在するかどうかテストし、存在しない場合は終了する
all: foo
foo:
test -s /opt/local/bin/gsort || echo "GNU sort does not exist! Exiting..." && exit
がmake
実行foo
を実行all
ターゲットを実行:私は現在、このような何かをしています。
test -s
の条件が満たされない場合、echo/exit
ステートメントが実行されることが予想されます。
ただし、/usr/bin/gsort
が存在する場合でも、echo
の結果が表示されますが、exit
コマンドは実行されません。これは私が達成しようとしているものとは逆です。
上記のようなことを行う正しい方法は何ですか?
私はサブシェルを取得するには、括弧内に '||'の右側を持つ、コマンドラインでこれをしようとすると、期待通りに動作します。私はそれがmakefileで同じかどうかは分かりません。かっこがなければ、テストが肯定的であっても「終了」が実行されます。 – HonkyTonk