更新makefile标签内的变量

0 人关注

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

所有的Debug和Release文件夹都包含makefile文件。
我试图写一个外部的makefile来调用每一个内部项目,使用选定的配置--调试或发布。
So, I tried something like:

CFG= #empty declaration  
PROJECTS=Static_Lib1 Static_Lib2 ... Executable
  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 

我怎样才能解决这个问题呢?
My OS is SLED 11x64.

提前感谢您!

linux
makefile
Allen L
Allen L
发布于 2011-02-07
1 个回答
Paul R
Paul R
发布于 2011-02-07
已采纳
0 人赞同

把它改成。

release: make CFG=Release build-all