2010-07-08 33 views
0

使用条件语句我最近使用的Makefile使用Automake的切换,我无法弄清楚如何,如果用automake声明中写入以下简单:在automake的

DEBUG ?= 1 
ifeq (${DEBUG},1) 
CXXFLAGS:=$(CXXFLAGS) -g 
else 
CXXFLAGS:=$(CXXFLAGS) -O3 -DNDEBUG 
endif 

这甚至可能做的,如果我使用automake?由于它自动生成makefile,因此将它写入Makefile模板是否有意义?还是应该尝试找到一些将自动生成的Makefile添加到其中的方法?

回答

1

不,你不能在Automake中使用这样的语法。前两行没有确切的等值。

你可以关闭使用Automake的条件(见automake的手册例子条件语句的用法)做的事,并设置DEBUG./configure。 但是我没有看到这么做:如果要全局更改CXXFLAGS,只需在configure而不是Makefile.am中更改此变量。

+0

不要在构建文件中改变CXXFLAGS。你的包的用户有权期望你不会设置CXXFLAGS。如果您必须添加标志,请使用AM_CXXFLAGS,但只保留CXXFLAGS,以便用户可以根据需要设置它们。 – 2010-07-31 10:57:12