更新makefile标签中的变量

时间:2011-02-07 10:27:47

标签: linux makefile

我有C ++静态库和使用它们的可执行文件,每个都在一个单独的文件夹中。当文件层次结构如下所示时,每个此类项目都可以在Debug或Release配置中构建: Static_Lib1 \调试\ staticlib1.a
Static_Lib1 \发布\ staticlib1.a
//对于所有其他静态库而言相同 可执行\调试\可执行
可执行文件\发布\可执行文件

所有Debug和Release文件夹都包含makefile 我正在尝试编写一个外部makefile来调用每个内部项目,使用所选的配置 - debug或release 所以,我尝试了类似的东西:

CFG= #empty declaration  
PROJECTS=Static_Lib1 Static_Lib2 ... Executable
all:  
  release #default config is release  

release:  
  CFG = Release  
  make build-all  

debug:  
  CFG = Debug  
  make build-all  

build-all:  
  make clean  
  $(foreach projectName, $(PROJECTS), cd $(projectName)/$(CFG) && make all;)

但是在尝试运行make debug时,我得到了这个输出:

CFG = Debug  
make: CFG: Command not found  
make: *** [debug] Error 127 

我该如何解决这个问题? 我的操作系统是SLED 11x64。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

将其更改为:

...

release:  
  make CFG=Release build-all  

debug:  
  make CFG=Debug build-all  

...