現在のプロジェクトに非再帰的なmakeビルドシステムを実装しようとしています。私が苦労しているのは変数スコープです。ターゲット固有の変数は、変数がターゲットを定義することが多く、前提条件を定義しないため、私のニーズに合っていません。GNU Make。スコープが単一のMakefileに限定された変数
SOMEVAR := original_value
include Makefile2
$(warning $(SOMEVAR))
Makefile2:
Makefile1:私は必要なもの がある
#some magic here to do what I want and make me happy
SOMEVAR := included_value
#and maybe here
そして、私が欲しい出力は 'original_value' です。
実際にする戦略はありますか?
EDIT:=
その解決策はかなり良いと思う。どうしたの? 'SOMEVAR'とは何ですか?それは何のために使われていますか? – Beta
この解決策で私が好きでないことは、それが非常に不安定であるということです。私の場所を取る貧しい人がアイデアを得ることができず、どこかの驚きを得るために別の場所に入れると –
Makefile2が複数回含まれ、 '$(SOMEVAR)'を参照するレシピが定義されていれば、レシピが実行されたときにレシピ内の変数が評価されます。つまり、レシピが定義されたときの値ではなく、最後に '$(SOMEVAR)'が最後に表示されます。 –