- 论坛徽章:
- 0
|
今天发现了一个小问题:autoxxx工具全是基于perl/bsh的脚本工具。
简单的看了一下代码:
autoscan(perl)生成的configure.scan/in中,宏展开并将其拷贝到输出基于autom4te;后面几个功能包括args的parse,正确性check,values的初始化;代码扫描部分(c/sh/text):
- push@cfiles,$File::Find::name;
- while ($_ = $file->getline)
- {
- ... ...
- }
复制代码
然后configure.scan文件输出;
autoconf(bsh)主要用到了m4 macros,功能上和autoscanf基本类似。
automake(perl)在项目顶层运行(无参数)建立所有的 Makefile.in 文件;通过扫描 configure.in ,则自动找到每一个合适的 Makefile.am 文件并且产生相应的 Makefile.in 文件。它的具体实现比较多,没有作分析。
另外,这里再引用个小介绍:
- autoconf
- 一个产生可以自动配置源代码包,生成shell脚本的工具,以适应各种类 UNIX 系统的需要。autoconf 产生的配置脚本在运行时独立于 autoconf ,因此使用这些脚本的用户不需要安装 autoconf 。
-
- autoheader
- 能够创建供 configure 脚本使用的 C #define 语句模板文件。
-
- autom4te
- 一个 M4 宏处理器的包装
-
- autoreconf
- 当 autoconf 和 automake 的模版文件被改变的时候,以正确的顺序自动运行 autoconf, autoheader, aclocal, automake, gettextize, libtoolize 以节约时间。
-
- autoscan
- 为软件包创建 configure.in 文件。它以命令行参数中指定的目录为根(如果未给定参数则以当前目录为根)的目录树中检查源文件,搜索其中的可移植性问题,为那个软件包创建一个 configure.scan 文件以充当一个预备性的 configure.in 文件。
-
- autoupdate
- 将 configure.in 文件中 autoconf 宏的旧名称更新为当前名称
-
- ifnames
- 为一个软件包写 configure.in 文件提供帮助,它打印软件包中那些在 C 预处理器中已经使用了的标识符。如果一个包已经设置成具有某些可移植属性,这个程序能够帮助指出它的 configure 脚本应该如何检查。它可以用来填补由 configure.in 产生的 autoscan 中的隔阂。
-
复制代码 |
|