-1

Makefile を使用してプロジェクトをコンパイルしています。私は次の点に到達します:

$(MAKE) <some flags>; \
$(UPLOAD_SCRIPT)

$(MAKE) 行は実際にコードをコンパイルしますが、make が成功した (つまり、エラーがない) 場合にのみアップロード スクリプトを実行したいと考えています。これを行う方法はありますか?終了コード、変数への結果の格納、およびifステートメントを使用して何かを想像していますが、Makefile についてはあまり詳しくありません。

4

1 に答える 1

1

&&代わりに次のように使用して 2 つのコマンドをチェーンします。

mytarget:
    $(MAKE) <some flags> && $(UPLOAD_SCRIPT)

より多くの行があり、 を使用して行を非常に長く見せたくない&&場合は、 を使用set -eして、シェルが最初のエラーで停止するようにすることができます。

-e このオプションがオンの場合、単純なコマンドがシェルエラーの結果にリストされている理由のいずれかで失敗するか、終了ステータス値 >0 を返し、while、until、または if キーワードに続く複合リストの一部ではない場合であり、AND または OR リストの一部ではなく、! が先行するパイプラインではありません。予約語の場合、シェルはすぐに終了します。

mytarget:
    set -e; \
    cmd1; \
    cmd2
于 2013-03-29T05:11:01.613 に答える