如果你有大量由 Autoconf 生成的 configure 脚本,程序 autoreconf 可以保留你的一些工作。它重复地运行autoconf(在适当的情况下还运行autoheader)以重新创建以当前目录为根的目录树的 Autoconf、configure 脚本和配置头文件。在缺省情况下,它只重新创建那些比对应的 configure.in 或者(如果出现)aclocal.m4 要旧的文件。由于在文件没有被改变的情况下,autoheader 并不改变它的输出文件的时间标记(timestamp)。这是为了使工作量最小化,修改时间标记是不必要的。如果你安装了新版本的 Autoconf ,你可以以选项 --force 调用autoreconf 而重新创建所有的文件。
如果你在调用 autoreconf 时给出选项 --macrodir=dir 或者 --localdir=dir ,它将把它们传递给 autoconf 和 autoheader (相对路径将被正确地调整)。
在同一个目录树中,autoreconf 不支持两个目录作为同一个大包的一部分(共享 aclocal.m4 和 acconfig.h ),也不支持每个目录都是独立包(每个目录都有它们自己的 aclocal.m4 和 acconfig.h )。 如果你使用了 --localdir ,它假定所有的目录都是同一个包的一部分。如果你没有使用 --localdir,它假定每个目录都是一个独立的包,这条限制在将来可能被取消。
关于在 configure 脚本的源文件发生变化的情况下自动地重新创建它们的 Makefile规则的细节,参见自动地重新创建。这种方法正确地处理了配置头文件模板的时间标记,但并不传递 --macrodir=dir 或者 --localdir=dir。
autoreconf接受如下选项:
--help
-h
打印命令行选项的概述并且退出。
--force
-f
即使在`configure'脚本和配置头文件比它们的输入文件(`configure.in',如果出现 了`aclocal.m4',也包括它)更新的时候,也要重新创建它们。
--localdir=dir
-l dir
让autoconf和autoheader在目录dir中,而不是在每个包含`configure.in' 的目录中寻找包文件`aclocal.m4'和(仅指autoheader)`acconfig.h' (但不包括`file.top'和`file.bot')。
--macrodir=dir
-m dir
在目录dir中,而不是缺省安装目录中寻找Autoconf宏文件。你还可以把环境变量 AC_MACRODIR设置成一个目录;本选项将覆盖该环境变量。
--verbose
打印autoreconf运行autoconf(如果适当,还有autoheader) 的每个目录的目录名。
--version
打印Autoconf的版本号并且退出。