最近接触到许多linux项目,其编译都是使用的autotools。 autotools是一个自动化的编译工具。个人理解它的最主要功能就是生成Makefile。 因为直接写Makefiel,其依赖关系还是比较复杂的。 一般的我们下载的源码包只要通过以下3条命令,就可完成编译和安装: ./configure make sudo make install 但是autotools其本来还是非常复杂的,下面给出参考 以下是命令列表: autoscan 扫描给定的目录及其子目录,以搜寻普通的可移植性问题,比如检查编译器,库,头文件等。 生成的configure.scan是configure.ac文件的原型。 aclocal 是一个收集宏的过程。 将已经安装的宏、用户定义宏和acinclude.m4文件中的宏集中定义到文件aclocal.m4中。 autoheader 生成宏定义的模板文件config.h.in。 宏定义模板文件被后面的命令所需要。 automake 根据configure.ac和Makefile.am中定义的结构,生成Makefile.in文件。 libtoolize 如果在configure.ac中定义了一些特殊的宏,比如AC_PROG_LIBTOO,automake将会调用此命令。 autoconf 生成configure脚本文件。 make distclean 清除所有生成的文件 ./configure 生成Makefile。 make 编译。 make install 把程序安装到系统目录中去。 make uninstall 卸载程序。 make clean 清除生成的目标文件及过程中产生的文件。 make distclean 清除所有产生的文件。 make dist 将程序和相关的文档打包为一个.tar.gz压缩文件以供发布。 autoupdate 如果更新了Autoconf工具的版本,此命令可更新configure.in。 autoreconfig 如果更新了Autoconf工具的版本,此命令可更新产生的配置文件。 ifname 扫描C源程序文件,在标准输出上输出那些出现在#if,#elif,#ifdef或#ifndef中的标识符, 每个标识符显示为一行,其后跟一空格和所属的文件名。 command input output -------------------------------------------------- autoscan [source] configure.scan autoscan.log aclocal configure.ac aclocal.m4 autoheader aclocal.m4 autoconfig.h.in automake configure.ac INSTALL makefile.am Makefile.in COPYING install-sh missing mkinstalldirs stamp-h.in libtoolize config.guess config.sub ltmain.sh ltconfig autoconf configure.ac configure aclocal.m4 autoconfig.h.in command input output ----------------------------------------------------------------- configure configure Makefile Makefile.in config.h cofnig.h.in config.log XXXXX.pc.in config.status XXXXX-uninstalled.pc.in libtool XXXXX.pc XXXXX-uninstalled.pc stamp-h1 make Makefile make install Makefile make uninstall Makefile make clean Makefile make distclean Makefile make dist Makefile
时间: 2024-10-22 06:58:13