2012-03-27 9 views
1

私は前のSOの投稿12などを見ました。コンパイル時にプリプロセッサディレクティブを渡したいと思います。スコオンで、私はすることができます:メイクファイル:メイクファイルを使ってプリプロセッサをg ++に渡す

num_times = ARGUMENTS.get('c', 1) 
env.Append(CCFLAGS = '-DNUM_TIMES=%d' % int(num_times)) 

私も、それを使用して可能でなければなりません。私は発行したい

make c=4 

またはそのようなものです。誰かが方法を提案できますか?私は独自のmakefileを持つサブフォルダを持つフォルダをコンパイルしています。前もって感謝します。 make c=2

CFLAGS += -DNUM_TIMES=$(c) 
export CFLAGS 

all: 
    $(MAKE) -C your_subfolder 

コールを、サブフォルダのmakefileにCFLAGSに触れないように:

答えて

1

一つの簡単なアプローチが行うことです。

includeのサブディレクトリmakefilesにあるincludeのすべての共通設定を使用して、ルートフォルダにMakefile部分を追加することもできます。 ($(MAKE))あなたが与えたコマンドライン引数がmakeにも確実に渡されます。

+0

ありがとう。 CFLAGS + = $(CXXFLAGS) – user984260

+0

メインメークファイルとサブファイルで同じことをやっていないことを確認してください。また、同時にmain - あなたの変数で物事を倍増させてしまうと、問題になる可能性があります。最高のものは(おそらく) 'export'するのではなく、あなたが望む設定をどこにでも含める共通のスニペットを持っています。 – Mat

関連する問題