ためになるホームページ お問い合わせ




TOP > Makefile > 変数の使い方
変数の宣言と代入
Makefile内で変数を宣言するときは、同時に代入も行なう。また、変数には単純展開変数と再帰属展開変数がある。

単純展開変数
単純展開変数は、代入行がMakefileから読みこまれるとすぐに右辺を評価する。代入には、「:=」を使う

単純展開変数の例
SRC := src
CC := g++


再帰属展開変数
再帰属展開変数は、右辺の内容を憶えておき実際に使う時に展開される。代入には「=」を使う

再帰属展開変数の例
COM_OPT = $(DEBUG)
...何か処理
$(DEBUG) = -g


その他の代入演算子
条件付き代入演算子(?=) 左辺の値が未定義の時のみ、実行される代入
アペンド(+=) 変数の最後にテキストを追加する

変数の展開
変数の展開は、以下のタイミングで行なわれる
  • 変数の代入における左辺は、makeが代入行を読みこんだ時に展開される
  • =か?=の右辺は、依存関係グラフの解析後に展開される
  • :=の右辺は、直ちに展開される
  • +=の左辺が単純変数として定義されている場合は、右辺も直ちに展開される
  • マクロ定義では、マクロ名は直ちに展開されるが、本体は使われるまで展開されない
  • ターゲットと必須項目は直ちに展開される

  • コマンドラインから変数を定義する
    makeを実行する時にコマンドラインから変数を定義する事ができる。
    変数名の後に=か:=で変数値を記述する。もし、空白が混ざっている時は、引数は引用符で括る必要がある






    Copyright 2007 ためになるホームページ All Rights Reserved.