automake java_autoconf与automake加入新的编译选项

介绍

autoconf是对M4宏的扩展,用来产生一个配置脚本。这个脚本会帮助开发者在不同的环境下选择相应的工具。同时,这些宏中可以定义automake来对Makefile的一些属性进行定制。

文章[1]中用下图来表示了autoconf的过程。

b9bc1924ff1ae9fbc9d59775e3b830b8.png

这里从configure.in (或configure.ac)开始。当运行"autoreconf -f"时,configure.in作为输入。如果其中定义了AM_INIT_AUTOMAKE(xx),则会自动运行automake对Makefile.am处理。如果定义了AC_CONFIG_HEADERS(xx),则会自动运行autoheaders产生出config.h.in来定义一些头文件中的宏。configure.ac中定义的一些变量会反映在Makefile.in和config.in中。autoconf产生的目标文件是"configure"。这是一个配置脚本。

运行configure,这个脚本会读入Makefile.in和config.in,从而会产生最后的Makefilet和config.h。

如何在configure中加入一个选项支持编译中加入调试

当我们要对代码调试时,常常用GCC编译选项"-g -O0"。当然最简单的作法是在configure时直接设置CFLAGS宏,如下:

./configure CFLAGS="-g -O0"

不过这理尝试用加入一个调试开关。目标是调用"./configure --enable-debug"时,最终的Makefile会采用方便调试的编译选项“-g -O0". 在configure.ac中,加入如下定义:

#debug options support

AC_ARG_ENABLE([debug],

[AS_HELP_STRING([--enable-debug],[debug program(default is no)])],

[CFLAGS="${CFLAGS} -g -O0"],

[CFLAGS="-g -O2"])

其中,AC_ARG_ENABLE宏定义了一个输入选项"--enable-debug"。当定义时,CFLAGS采用“-g -o0"。

参考资料

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值