Gnu AC_REQUIRE_AUX_文件中是否允许包含目录的路径?

Gnu AC_REQUIRE_AUX_文件中是否允许包含目录的路径?,gnu,configure,autoconf,automake,Gnu,Configure,Autoconf,Automake,Autoconf宏可用于注册生成过程中所需的辅助文件 -宏:AC\u REQUIRE\u AUX\u文件(文件) 声明文件应位于上面定义的目录中。在Autoconf中,该宏不起任何作用:其唯一目的是由第三方工具跟踪,以生成预期辅助文件的列表。例如,它由宏调用,如AC\u PROG\u INSTALL(参见特定程序)或AC\u CANONICAL\u BUILD(参见规范化)来注册所需的辅助文件 如果未使用宏(在下文中称为${auxdir}),则文件应位于通过注册的目录中或根据AC_CONFIG_

Autoconf宏可用于注册生成过程中所需的辅助文件

-宏:
AC\u REQUIRE\u AUX\u文件(文件)

声明
文件
应位于上面定义的目录中。在Autoconf中,该宏不起任何作用:其唯一目的是由第三方工具跟踪,以生成预期辅助文件的列表。例如,它由宏调用,如
AC\u PROG\u INSTALL
(参见特定程序)或
AC\u CANONICAL\u BUILD
(参见规范化)来注册所需的辅助文件

如果未使用宏(在下文中称为
${auxdir}
),则文件应位于通过注册的目录中或根据
AC_CONFIG_AUX_DIR
文档中所述确定的默认目录中。这是本手册上面引用的“上面定义的目录”

Automake将这些辅助文件添加到已分发文件列表中

AC\u REQUIRE\u AUX\u文件

对于每个
AC\u REQUIRE\u辅助文件([FILE])
,Automake将确保辅助目录中存在
文件,否则将投诉。它还将自动分发该文件。第三方Autoconf宏应使用此宏,这些宏需要在上面用
AC_CONFIG\u aux_DIR
指定的辅助目录中提供一些支持文件。请参阅Autoconf手册中的查找
配置
输入

从这个文档中——这是我能找到的关于这个主题的全部内容——我假设我也能够列出
${auxdir}
子目录中的文件

但是,以下示例失败,出现了一个有趣的错误。

给定这个目录结构

/
/Makefile.am
/建造辅助设备/
/建筑辅助/酒吧/
./build aux/bar/baz.txt
/build aux/foo.txt
/configure.ac
使用以下
configure.ac

AC_预请求([2.69])
AC_INIT([示例],[1.0][bugs@example.com])
AC_配置_辅助_目录([构建辅助])
AC_REQUIRE_AUX_文件([foo.txt])#这很有效
AC_REQUIRE_AUX_文件([bar/baz.txt])这不起作用
AM_INIT_AUTOMAKE([国外])
AC_输出([Makefile])
一个空的
Makefile.am
,运行
autoreconf-ivs
失败

autoreconf: Entering directory `.' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal autoreconf: configure.ac: tracing autoreconf: configure.ac: not using Libtool autoreconf: running: /usr/bin/autoconf autoreconf: configure.ac: not using Autoheader autoreconf: running: automake --add-missing --no-force configure.ac:5: error: required file 'build-aux/bar/baz.txt' not found configure.ac:6: installing 'build-aux/install-sh' configure.ac:6: installing 'build-aux/missing' autoreconf: automake failed with exit status: 1 自动恢复:正在输入目录“” autoreconf:configure.ac:不使用Gettext 自动恢复:正在运行:A本地 autoreconf:configure.ac:跟踪 autoreconf:configure.ac:不使用Libtool 自动恢复:正在运行:/usr/bin/autoconf autoreconf:configure.ac:不使用Autoheader 自动恢复:运行:自动生成--添加缺失--无强制 configure.ac:5:错误:未找到所需文件“build aux/bar/baz.txt” configure.ac:6:安装“build aux/install sh” 配置.ac:6:安装“生成辅助/缺少” 自动恢复:自动生成失败,退出状态:1 具有讽刺意味的是,错误消息准确地命名了正确的文件

我认为不稳定的错误消息是由函数触发的,但由于我的Perl技能有限,我无法理解错误的原因

所以,我的问题是:

  • 是否允许在
    ${auxdir}
    的子目录中命名文件
  • 我做错什么了吗
  • 汽车制造有缺陷吗
如果有一个简单的解决方法可以实现与在
AC_REQUIRE_AUX_file
中列出文件相同的效果,我也很高兴知道这一点。请注意,我正在编写一个Autoconf宏,该宏应该由其他人使用,因此我无法直接将文件添加到
Makefile.am
中的
EXTRA\u DIST
变量中。

我决定通知Automake维护人员,并在获得新信息后发布更新。