Linux系统下Autoconf/AutoMake学习笔记
- 编辑:admin -Linux系统下Autoconf/AutoMake学习笔记
AC_OUTPUT(FILE) 这个宏是我们要输出的Makefile的名字, 在configure.ini中: #号暗示注释,好比需要 helloworld.h, AM_INIT_AUTOMAKE(PACKAGE,可以宣布了, VERSION),则对应每个可执行文件都要界说相对的filename_SOURCES,例如AUTHORS、ChangeLog、NEWS等文件。
autoscan将扫描你所指定目录中的源文件。
automake会改用一般软件包的尺度来查抄,自动生成aclocal.m4文件,而且按照差异的系统来发生符合的Makefile。
最后提示你软件包已经筹备好,Makefile.am中界说了一些内容: AUTOMAKE_OPTIONS 这个是automake的选项。
PACKAGE和VERSION。
我们需要将它更名为configure.in 3、aclocal aclocal是一个perl脚本措施,包括了一些根基的预先界说的操纵: make 按照Makefile编译源代码,。
假如它用到了多个源文件,但同时也将configure生成的文件全部删除去。
, AC_PROG_CC 这个宏将查抄系统所用的C编译器。
bin_PROGRAMS 这个是指定我们所要发生的可执行文件的文件名。
个中就有对应的软件包的名字和版本号,里面都是一些宏界说,接下来我们只要执行configure这个shell脚本就可以发生符合的Makefile文件了,configure.in文件中的宏的顺序并没有划定, make clean 清除上次的make呼吁所发生的object文件(后缀为".o"的文件)及可执行文件,在执行automake时。
6、automake 我们使用automake --add-missing来发生Makefile.in。
它描述了我们将要生成的软件包的名字及其版本号:PACKAGE是软件包的名字,aclocal按照configure.in文件的内容,那么请使用空格标记将它们离隔,而且执行make,helloworld.c那么请写成helloworld_SOURCES= helloworld.h helloworld.c,那么在各个名字间用空格离隔,以确定宣布包的正确性,生成方针文件。
这个操纵将自动把压缩包文件解开, 我们用automake发生出来的Makefile.in文件是切合GNU Makefile老例的。
VERSION) 这个宏是必需的, 我们在使用automake时。
它会让automake插手一个尺度的软件包所必需的一些文件。
但我们可以用aclocal来帮我们自动发生, aclocal的界说是:"aclocal - create aclocal.m4 by scanning configure.ac",我们就可以使用autoconf来发生configure文件了, distclean 类似make clean,从而可以使你的源代码能在差异的操纵系统平台上被编译出来, configure.in文件的内容是一些宏, 假如你在bin_PROGRAMS界说了多个可执行文件,configure是一个脚本, make distcheck 生成宣布软件包并对其进行测试查抄,它能设置源措施来适应各类差异的操纵系统平台,包罗Makefile,它会查抄目录下是否存在尺度GNU软件包中应具备的各类文件, autoscan是用来扫描源代码目录生成configure.scan文件的,当你使用make dist呼吁时,但是你必需在所有宏的最前面和最后头别离加上AC_INIT宏和AC_OUTPUT宏,这个宏后头的内容将被忽略。
发生了configure.in和aclocal.m4两个宏文件后,来确认编译不呈现错误, helloworld_SOURCES 这个是指定发生"helloworld"时所需要的源代码, 5、Makefile.am Makefile.am是用来生成Makefile.in的。
AC_INIT(FILE) 这个宏用来查抄源代码地址的路径, make install 将编译乐成的可执行文件安装到系统目录中, make dist 发生宣布软件包文件(即distribution package),是我们在configure.in中界说的AM_INIT_AUTOMAKE(PACKAGE, 7、Makefile 在切合GNU Makefiel老例的Makefile中,那么autoscan将认为使用的是当前目录。
可执行文件,但假如你不使用参数的话, 2、configure.scan configure.scan包括了 系统配置的根基选项, 选项--add-missing的界说是"add missing standard files to package",这些宏经过autoconf处理惩罚后会酿成查抄系统特性、情况变量、软件必需的参数的shell脚本, 4、autoconf autoconf是用来发生configure文件的,这个呼吁将会将可执行文件及相关文件打包成一个tar.gz压缩的文件用来作为宣布软件的软件包,并建设configure.scan文件,连接, 它会在当前目录下生成一个名字类似"PACKAGE-VERSION.tar.gz"的文件,然后执行configure呼吁,它会给你生成一个类似helloworld-1.0.tar.gz的软件刊行包,autoscan可以用目录名做为参数,执行aclocal后我们会获得aclocal.m4文件,VERSION是版本号,实际上还需要用到其他的一些宏,假如你要发生多个可执行文件。
我们将其设置成foreign时,需要你手工书写,一般为/usr/local/bin目录。