【发布时间】:2010-12-02 15:54:54
【问题描述】:
(免责声明:我习惯了scons ...我对make有点缺乏经验)
上下文:我正在使用生成 makefile 的 Eclipse CDT。
假设我有一个项目目录“lib”和 2 个构建配置“Debug”和“Release”。 Eclipse CDT 优雅地为每个构建配置生成一个 makefile。上述生成文件最终驻留在“调试”和“发布”文件夹中。
现在,我想做的是在文件夹“lib”中创建一个生成文件,调用生成文件“Debug/makefile”和“Release/makefile”。
我该怎么做?
我希望能够在文件夹“lib”中启动“make”,并且将使用指定的目标调用这两个配置。
解决方案 基于这里收集的所有重要意见,我设计了以下内容:
MAKE=make
BUILDS=Release Debug
TARGETS=all clean
$(TARGETS):
@for b in $(BUILDS) ; do $(MAKE) -C $$b $@ ; done
$(BUILDS):
@for t in $(TARGETS) ; do $(MAKE) -C $@ $$t ; done
%:
@for b in $(BUILDS) ; do $(MAKE) -C $$b $@ ; done
【问题讨论】:
-
嗯...再看看你的 BUILDS 规则。如果您“发布”,它将全部(在发布中),然后清理(在发布中)。我建议 $(BUILDS):
$(MAKE) -C $@ -
Beta,当然它不应该有意义,它是一组示例;-)
-
@hacker,你是写我的 Perl 教科书的人,不是吗?你不是吗!?!