gnu autoconf学习官网:http://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/autoconf.html#Making-configure-Scripts
应用软件发布
根据Autotools的流程生成makefile及软件安装包。步骤如下
1,安装autoconf,输入安装命令:sudo apt install autoconf
2,在目录下建立一个.c源文件,如hello.c,然后输入:autoscan
生出autoscan.log,configure.scan
3,将configure.scan改成configure.ac,运行:mv configure.scan configure.ac;并修改configure.ac中第5行:AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
内容,将3个参数(第一个参数为输出文件名,第二个参数为版本号,第三个参数为出错输出地址)改为AC_INIT(hello, 1.0, [email protected])),试着注释掉第7行:#AC_CONFIG_HEADERS([config.h]),第20行输出为:MakefileAC_OUTPUT(makefile)//调用时输出makefile
再在第20行添加一个宏:AM_INIT_AUTOMAKE(hello,1.0)//行第3行保持一致
保存退出,如下:
4,运行aclocal
生成aclocal.m4 autom4te.cache/
5,运行autoconf
生成configure*
6,建立Makefile.an,命令vim Makefile.an,添加内容如下:
7,运行automake --add-missing
建立缺少的touch NEWS README AUTHORS ChangeLog
8,再运行automake --add-missing,通过。
生成了 Makefile.in
9,运行./configure
最终生成Makefile
10,运行make 命令
生成可执行文件hello
11,运行./hello
输出源文件的结果,整个过程结束。
除此之外,可以运行make install,其默认安装路径为/usr/local/bin目录下。
此时hello就安装在系统里的应用软件了,随便在一个目录下的可以运行hello。
将软件hello打包成可安装的安装软件包;
执行: make dist
生成压缩包hello-1.0.tar.gz,发布到官网供别人下载。
再返回到第3步,将注释掉的第7行:#AC_CONFIG_HEADERS([config.h])释放
然后,重复以上步骤,输入:autoconf,重新编译
再输入:automake --add-missing
此时提示缺少config.h.in文件
运行:autoheadder命令
生成config.h.in文件
再运行:automake --add-missing
运行通过。最后./configure
直接生成config.h文件
以上步骤就是autoconf的整个流程。