在 automake 中使用条件语句
我最近从使用 Makefiles 切换到使用 Automake,并且我不知道如何使用 automake 编写以下简单的 if 语句:
DEBUG ?= 1
ifeq (${DEBUG},1)
CXXFLAGS:=$(CXXFLAGS) -g
else
CXXFLAGS:=$(CXXFLAGS) -O3 -DNDEBUG
endif
如果我使用 automake,这甚至可能做到吗?既然它自动生成 makefile,那么将其写入 Makefile 模板是否有意义?或者我应该尝试找到某种方法将其添加到自动生成的 Makefile 中?
I recently switched from using Makefiles to using Automake, and I can't figure out how to write the following simple if statement using automake:
DEBUG ?= 1
ifeq (${DEBUG},1)
CXXFLAGS:=$(CXXFLAGS) -g
else
CXXFLAGS:=$(CXXFLAGS) -O3 -DNDEBUG
endif
Is this even possible to do if I'm using automake? Since it generates the makefile from automatically, does it make sense writing it in the Makefile template? Or should I try to find some way of adding it the automatically generated Makefile?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不,您不能在 Automake 中使用这样的语法。前两行没有完全相同的内容。
您可以使用 Automake 条件做一些接近的事情(有关示例,请参阅 Automake 手册中的条件的使用),并从
./configure
设置DEBUG
。不过,我认为这样做没有什么意义:如果您想全局更改
CXXFLAGS
,只需在configure
中更改此变量,而不是在Makefile.am
中>。No, you cannot use such a syntax with Automake. There is no exact equivalent for the first two lines.
You could do something close using an Automake conditional (see Usage of Conditionals in the Automake manual for examples), and set
DEBUG
from./configure
.However I see little point in doing that: if you want to change
CXXFLAGS
globally, simply alter this variable inconfigure
, not in theMakefile.am
.