プログラミングユーティリティ

コマンド置換マクロ参照

シェルコマンドをマクロの定義として指定する例を以下に示します。

COMMAND= cat Listfile

コマンド置換マクロ参照を使用して、参照をマクロ値に含まれるコマンド出力に置換するように make に指示できます。このコマンド置換は、メークファイル中の任意の箇所に記述できます。

COMMAND= cat Listfile 
$(COMMAND:sh): $$(@:=.c)

この例は、他のファイルからターゲットのリストを取り込み、各ターゲットが対応する .c ファイルに依存することを示します。

シェルコマンド置換と同様に、コマンド置換参照が評価されると、コマンドの標準出力結果に置換されます。復帰改行文字は、空白文字に変換されます。コマンドは、参照が検出されると実行されます。コマンドの標準エラーは無視されます。ただし、コマンドがゼロ以外の終了ステータスを返した場合は、make はエラーを表示して停止します。

これを回避するには、コマンド行の末尾に true コマンドを追加します。

COMMAND = cat Listfile ; true