闲来无事下载了一本书的源码,但又觉得每次都要编译每一个程序很麻烦(后面其实发现,这都只是.c文件并不是大工程,编译每一个C文件比写一个makefile容易多了)。但前几天正好看到了autotools生成makefile的方法,那就练练手吧。废话少说,进入正题。
首先肯定是下载autotools, 一个yum install autoconf 很简单酒完成了。
接下来就要正式步骤:
1,autoscan
生成了一一个configure.scan文件。编辑它,增加宏声明 AM_INIT_AUTOMAKE(hello,1.0) 和AC_CONFIG_FILES([makefile])
然后保存为configure.ac。 其实configure.scan就是一个模板。
PS:这里hello是项目名,可以随便填。1.0是版本号,也就是你代码的版本号,也随便填吧。
2,aclocal
这里生成一个aclocal.m4文件,注意咯,网上有的地方在前面AM_INIT_AUTOMAKE这个宏写成AC_INIT_AUTOMAKE,这里会出错不能生成aclocal.m4.
3,autoconf
这里生成一个configure文件。
4,autoheader
5,automake
这一步很重要,因为要自己编写makefile.am文件
AUTOMAKE_OPTIONS= foreign bin_PROGRAMS= hello hello_SOURCES= hello.c
第一行是GNU发布软件有自己的规范,有三个选项:foreign,gnu,gnits。如果不写默认为gnu,这样你需要添加各种文件。我们为简单就写这一行。
第二行是你要生成的可执行文件,有多少写多少,用空格分开。
第三行既每个可执行文件的依赖文件,file_SOURCES。有多少可执行文件就写多少依赖文件。
6,automake -a
7./configure
8,make install
一个makefile文件就轻松生成了。