3

すべてのmakefileに適用されるフラグ変数(CPPFLAGSなど)を追加するにはどうすればよいですか?現在、CPPFLAGSを使用していますが、これはユーザー変数として予約されているはずなので、予約したいと思います。AM_CPPFLAGSは、特定のMakefile.amS用に予約したいので、使用したくありません。私が欲しいのは、configure.acで設定してすべてに適用できるGLOBAL_CPPFLAGSのようなものです。フラグを明示的に無視する方法があれば、それもいいでしょう。

私がする必要があるのは、独自のmakeルールを作成することだと思いますが、すべてのMakefile.amにコピーせずに、すべてのサブフォルダーでそれを使用できるようにするにはどうすればよいですか?

4

3 に答える 3

4

を使用しないのは正しいですCPPFLAGS。これはユーザー変数です。私がすることはこのようなものです:

ソースディレクトリのルートで、というファイルを作成しcommon.am、そこに必要なものを定義します。

## common.am
AM_CPPFLAGS = -DFOO

使いたくないと言っていたのは知っていますAM_CPPFLAGSが、聞いてください。個々のサブディレクトリで、必要に応じinclude $(top_srcdir)/common.amて拡張またはオーバーライドAM_CPPFLAGSします。

## bar/Makefile.am
include $(top_srcdir)/common.am
AM_CPPFLAGS += -DBAR

オーバーライドする場合は、次=の代わりに使用し+=ます。

## baz/Makefile.am
include $(top_srcdir)/common.am
AM_CPPFLAGS = -DBAZ
于 2010-10-11T23:22:55.023 に答える
1

私はあなたがあなた自身の質問に答えたと思います:あなたはすべてのmakefileに新しいルールをコピーしなければならないでしょう。

于 2010-10-11T18:54:23.040 に答える
0

CPPFLAGSは、おそらく使用する必要があるメカニズムです。configure.acのどこかに必要なフラグを連結するだけです。

GLOBAL_CPPFLAGS = "-DSOMETHING"

..。

CPPFLAGS = "$ CPPFLAGS $ GLOBAL_CPPFLAGS"

そして、あなたは設定されるべきです。

于 2010-10-11T22:56:19.940 に答える