autoscan && mv configure.scan configure.in(或者是configure.ac)
1.关于autoscan生成文件:configure.scan的修改补充。
· AC_PREREQ 宏声明本文件要求的autoconf版本,本例使用的版本为2.59。
· AC_INIT 宏用来定义软件的名称和版本等信息,”FULL-PACKAGE-NAME”为软件包名称,”VERSION”为软件版本号,”BUG-REPORT- ADDRESS”为BUG报告地址(一般为软件作者邮件地址)。
·
AC_CONFIG_SRCDIR
宏用来侦测所指定的源码文件是否存在,来确定源码目录的有效性。此处为当前目录下的hello.c。
·
AC_CONFIG_HEADER
宏用于生成config.h文件,以便autoheader使用。
·
AC_PROG_CC
用来指定编译器,如果不指定,选用默认gcc。
·
AC_OUTPUT
用来设定 configure 所要产生的文件,如果是makefile,configure会把它检查出来的结果带入makefile.in文件产生合适的 makefile。使用Automake时,还需要一些其他的参数,这些额外的宏用aclocal工具产生。
注:更加详细的内容可查看:
aclocal && autoconf && vi Makefile.am
2.关于需要自己编写的Makefile.am文件的补充。
· AUTOMAKE_OPTIONS 为设置Automake的选项。由于GNU对自己发布的软件有严格的规范,比如必须附带许可证声明文件COPYING等,否则Automake执行时会报错。Automake提供了3种软件等级:foreign、gnu和gnits,供用户选择,默认等级为gnu。本例使需用foreign等级,它只检测必须的文件。· bin_PROGRAMS 定义要产生的执行文件名。如果要产生多个执行文件,每个文件名用空格隔开。
· hello_SOURCES 定义”hello”这个执行程序所需要的原始文件。如果”hello”这个程序是由多个原始文件所产生的,则必须把它所用到的所有原始文件都列出来,并用空格隔开。例如:若目标体”hello”需要”hello.c”、”hello.h”两个依赖文件,则定义hello_SOURCES=hello.c hello.h。
autoheader && automake --add-missing
自此,通常来说一个可用的Makefile就可以生成了。之后就是常见的安装步骤:
./configure
make
make install
更多详细的automake工具介绍可观看该大神的文章:
https://blog.youkuaiyun.com/huyisu/article/details/25031567