如何参数化Eclipse生成的make文件

Jef*_*ffV 4 eclipse makefile eclipse-cdt

我有一个Eclipse CDT项目,配置为生成make文件.

我目前正在开发Windows,我的构建服务器正在运行Linux.

make文件在我的本地机器上很好地构建,但我有两个预先构建的外部依赖项:boost和ZeroMQ.这两个都有一个include目录,一个lib目录和一个相关的dll/so.

如何配置项目,以便生成的make文件可以具有在make make时解析的不同BOOST_HOME或ZMQ_HOME变量(而不是烘焙到make文件中).

Eld*_*mov 5

CDT生成的Makefile包括以下行:

-include ../makefile.init
 ...
-include ../makefile.defs
 ...
-include ../makefile.targets
Run Code Online (Sandbox Code Playgroud)

也就是说,您可以makefile.defs在项目根目录中添加eg 来控制构建.

JeffV编辑:我添加了一个makefile.init:

 BOOST_HOME = C:\code\boost_1_48_0
 ZMQ_HOME = C:\code\zmq\zeromq-2.1.11
Run Code Online (Sandbox Code Playgroud)

在项目设置"Build Variables"配置中,我还添加了以下条目:

BOOST_HOME = $(BOOST_HOME)
ZMQ_HOME = $(ZMQ_HOME)
Run Code Online (Sandbox Code Playgroud)

这导致eclipse替换$ {BOOST_HOME},它在我的lib中引用并包含路径,并在make文件中使用$(BOOST_HOME)变量.

这允许我在每个构建平台上具有特定于平台的makefile.init版本.