概要 Makefile のルールの中で変数を宣言し、それを使いまわしたい. 動機 代入する中身をshellコマンドにする場合 $(shell ...) とすれば、そのコマンドの出力を代入できる. (代入する値が定数ならこの記事に書いて有ることは気にせず、ルールの外で代入しておけばよい.) shellコマンドによっては (例えば peco コマンド) 何度も実行したくないし、別のルールを make する場合は一度も実行したくない. なので、あるルールの中で唯一度だけshellコマンド実行し、その出力を代入し、それを何度も使いたいという動機がある. 方法 通常、Makefile における変数の代入は := で行う. しかしこれは (ba)sh のコマンドではないのでルールの中には書けない. つまり下のような Makefile は違法.