Configuration 在什么情况下--srcdir config选项有效?

Configuration 在什么情况下--srcdir config选项有效?,configuration,options,configure,autoconf,Configuration,Options,Configure,Autoconf,我正在开发一个配置程序-它不是autoconf,但我正在尝试(尽可能)获得它,以便使用它的./configure文件可以以与使用autoconf的文件类似的方式进行接口-这意味着(尽可能)支持相同的变量选项 只有一个选择对我来说毫无意义。我的意思是,是的,我完全清楚该选项的含义,我只是无法想象有哪一种情况会建议某人使用该选项-除了一种情况,在这种情况下,我同样好奇为什么./configure脚本无法自动检测它将提供的信息 我所指的选项是“-srcdir”选项。这让我如此困惑的原因是,我能想象的唯

我正在开发一个配置程序-它不是autoconf,但我正在尝试(尽可能)获得它,以便使用它的./configure文件可以以与使用autoconf的文件类似的方式进行接口-这意味着(尽可能)支持相同的变量选项

只有一个选择对我来说毫无意义。我的意思是,是的,我完全清楚该选项的含义,我只是无法想象有哪一种情况会建议某人使用该选项-除了一种情况,在这种情况下,我同样好奇为什么./configure脚本无法自动检测它将提供的信息

我所指的选项是“-srcdir”选项。这让我如此困惑的原因是,我能想象的唯一一种情况是,如果“配置”脚本本身不在您当前的工作目录中,那么源代码文件将不在您当前的工作目录中(或相对于您当前的工作目录,正如配置脚本编程所预期的那样),并且在这一种情况下,我真的无法想象为什么“configure”脚本不能从调用它的名称推断出源目录,而必须使用--srcdir选项来提供该信息

例如,假设您的程序的源代码位于“awesome/software”目录中。这意味着,从您所在的位置来看,“configure”脚本将是“awesome/software/configure”。为什么“configure”脚本不能仅从名为“awesome/software/configure”调用的事实推断源目录为“awesome/software”,而是要求我添加一个单独的命令行选项:
--srcdir=awesome/software

如果这不是一种需要指定--srcdir选项的场景(或者如果这不是唯一一种这样的场景),那么有人能向我描述一下安装程序的人最好将“srcdir”变量从默认值更改为其他类型的场景吗

我所指的选项是“-srcdir”选项。。。 我能想象的唯一一种情况是,如果“配置”脚本本身不在您当前的工作目录中,那么源代码文件将不在您当前的工作目录中(或者相对于您当前的工作目录,因为
configure
脚本是按预期编程的)

在那一个场景中,我真的无法想象为什么“configure”脚本不能从调用它的名称推断出源目录,而必须使用--srcdir选项来提供该信息

我不确定是否需要。
configure
脚本将尝试猜测srcdir的位置:

# Find the source files, if location was not specified.
if test -z "$srcdir"; then
  ac_srcdir_defaulted=yes
# Try the directory containing this script, then the parent directory.
...
因此,如果它在这两个地方都不存在,那么它将失败,因此需要--srcdir。如果源存储在“慢”驱动器上,而构建发生在“快”驱动器上,并且
configure
似乎在“快”驱动器上运行得更快,则可能(曾经?)需要这样做,因此也需要这样做

无论如何,--srcdir只是一个变量赋值,所以不难做到

为什么“configure”脚本不能仅从名为“awesome/software/configure”调用的事实推断源目录是“awesome/software”

configure
源代码似乎在没有指定--srcdir的情况下实现了这一点,但我还没有尝试过