automake学习三

简介

参考链接

automake官方

autoconf官方

configure.ac

configure.ac会被autoconf(用来创建configure),automake(用来创建Makefile.in)同时使用,该文件包含了一系列的M4宏,这些宏最终会被扩展成shell脚本在configure脚本中。

例子

AC_INIT([amhello], [1.0], [bug-automake@gnu.org])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_PROG_CC
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([
	Makefile
	src/Makefile
])
AC_OUTPUT
  • 前缀AC

      为Autoconf宏
    
  • 前缀AM

      为Automake宏
    
  • AC_CONFIG_FILES

      申明了所有configure要生成的Makefile,automake通过扫描该宏寻找它需要处理的Makefile.am
    
  • AC_OUTPUT

      closing command.
    
  • AM_INIT_AUTOMAKE

      AM_INIT_AUTOMAKE是一些列automake的选项,`-Wall`和`-Weorror`表示所有warnings都报告为errors
    

Makefile.am

Makefile.am中有两条隐晦规则

  • 定义在Makefile.am文件中的变量,在生成的Makefile.in文件中处于顶部,在autoMake命令自动产生的变量后;
  • 定义在Makefile.am文件中的规则,在生成的Makefile.in文件中处于底部,在autoMake命令自动产生的规则后;
  • 在Makefile.am中定义的变量会覆盖configure.ac中同样的变量

Makefile.am中常见前缀

  • EXTRA_
  • noinst_
  • check_
  • dist_
  • nodist_
  • nobase_
  • notrans_