2012-03-21 18 views
4

makeファイルを生成するように設定されたEclipse CDTプロジェクトがあります。Eclipseで生成されたmakeファイルをパラメータ化する方法

私は現時点ではWindows上で開発しており、ビルドサーバではLinuxが動作しています。

makeファイルは私のローカルマシンでうまく構築されますが、2つのビルドされた外部依存関係があります:boostとZeroMQです。どちらもincludeディレクトリ、libディレクトリ、関連するdll/soを持っています。

どのようにして、生成されたmakeファイルにmake時に解決されるBOOST_HOMEまたはZMQ_HOME変数を(makeファイルに焼き付けるのではなく)異なるように設定できますか?

-include ../makefile.init 
... 
-include ../makefile.defs 
... 
-include ../makefile.targets 

で、あなたが例えば追加することができます。

+0

Makefileに触れるだけですばやく汚れた代替方法です。プロジェクトにはシンボリックリンクがあり、プラットフォームに基づいてポイントを変えることができます。 – enobayram

+0

ビルド・サーバーの非Eclipse環境に変換するには、これが必要です。 eclipseはmakeファイルへのシンボリックリンクをどのようにレンダリングするのですか? – JeffV

+0

makefileはシンボリックリンクをプロジェクトフォルダ階層のフォルダとして参照している可能性があります。だから、あなたが望む効果を得るために、彼らがLinuxで指しているところを変更することができます。 – enobayram

答えて

5

CDTによって生成されたメークファイルには、次の行を含めますmakefile.defsをプロジェクトルートに配置してビルドを制御します。

JeffV編集: 私はmakefile.initを追加しました:プロジェクトの設定 "変数を構築する" 設定で

BOOST_HOME = C:\code\boost_1_48_0 
ZMQ_HOME = C:\code\zmq\zeromq-2.1.11 

を私はまた、これらのエントリを追加しました:

$を置き換えるために日食なり
BOOST_HOME = $(BOOST_HOME) 
ZMQ_HOME = $(ZMQ_HOME) 

{BOOST_HOME}それは私のlibとインクルードパスの参照で、$(BOOST_HOME)変数はmakeファイルにあります。

これにより、各ビルドプラットフォームでプラットフォーム固有のバージョンのmakefile.initを使用できます。

+0

ありがとう、パス変数をオーバーライドする方法を詳しく説明できますか? – JeffV

+0

@Jeff、makefileの 'export PATH:= your/path:$(PATH)'のようなもの...あるいは、Eclipseプロジェクトのプロパティで 'PATH'を設定することができます:C/C++ビルド - >環境 –

+0

makefile.initに追加する必要があるものと、ある時点でmakefileをビルド変数でレンダリングするようにeclipseを構成する方法を取得しないでください。 – JeffV

関連する問題