2012-03-06 12 views
2

'make install'の前に 'make check'を実行し、チェックが失敗した場合はインストールを中止できますか?動作はこのようにする必要がありautotoolsで 'make install'を実行すると自動的に 'make check'が実行されます

  1. ユーザーの実行は
  2. 'をmake installを' 'をチェックします' を実行しています。
  3. チェックに失敗した場合、インストールは実行されません。それ以外の場合、インストールが実行されます。

編集:

私はそれがこのようなトップレベルのMakefile.amにインストールしたルールを上書きすることで作業しました:

install: check install-recursive 

しかし、私はむしろ、オーバーライドしない解決策を持っているでしょうインストールターゲット。

+3

それは可能ですが、なぜあなたはそれをしたいのでしょうか?ユーザーが高速インストールを望んでいる場合、または何らかの理由でテストスイートを実行したくない場合は、その選択をユーザーに許可する必要があります。スタンプファイルを書き込むチェックターゲットにフックを入れ、テストスイートが実行されていないことを示すために 'make install'中に警告を出す場合は、それは問題ありませんが、選択を外すべきではありませんユーザーから。 –

+0

@WilliamPursell、私は強く同意します。 「コーナーケース」テストが失敗するか、ユーザーが何も気にしない機能のテストが失敗した場合、ユーザーはインストールできません。私は 'sed 'のようなツールがどのようにしてUnixのさまざまなフレーバーに(正しい)テスト出力を並べるかというわずかな違いのためだけに' make check'を失敗さえしました。 – ldav1s

答えて

3

あなたはinstall-exec-localinstall-data-localターゲットを使用してインストールプロセスにフックすることができます

install-exec-local: check 
+0

私がexec-localを使用している場合、テストはインストールプロセスの途中で実行されます。 –

+0

次に、唯一の方法はインストールターゲットを上書きすることです。 – ptomato

関連する問題