我正在为一个大型代码库设置autotools,这个代码库曾经只是一个bash脚本编译,之后只是手工编写的Makefile。
我们有一组文件需要关闭编译器优化。这些文件已经在它们自己的子目录中,因此它们将拥有自己的Makefile.am。
删除任何现有编译器优化的正确方法是什么,并在编译器上为这些特定文件强制-O0
标志?
答案 0 :(得分:2)
我选择了Brett Hale的评论来使用subpackages。我能够插入
: ${CFLAGS="-O0"}
在AC_PROG_CC
之前的,它设置了适当的优化。其他解决方案不起作用,因为-g -O2
被添加到最后。你永远不能得到另一个-O
变量。
答案 1 :(得分:-1)
您不必删除现有的优化:将使用编译器调用的-O
的最后一个值,因此最好只在末尾添加-O0
。
automake不直接支持,但文档中定义了a trick you can use。
否则,如果你知道你只会用GNU make调用你的makefile,你可以玩其他GNU特定的技巧;您可能必须禁用有关非便携式内容的automake警告。