【问题标题】:In what scenario is the --srcdir config option valid?--srcdir 配置选项在什么情况下有效?
【发布时间】:2013-12-08 14:54:31
【问题描述】:

我正在开发一个配置程序 - 它不是 autoconf,但我正在尝试(尽可能地)获取它,以便使用它的 ./configure 文件可以以类似于那些是用 autoconf 制作的——这意味着(尽可能)支持相同的变量选项。

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

我所指的选项是“--srcdir”选项。它让我如此困惑的原因是我可以想象的唯一场景,其中源代码文件不会在您的当前工​​作目录中(或相对于您的当前工​​作目录为配置脚本被编程为期望)是如果“配置”脚本本身不在您的当前工​​作目录中----在那种情况下,我真的无法想象为什么“配置”脚本不能外推源目录从它被调用的名称中 - 而是必须具有 --srcdir 选项来提供该信息。

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

如果这是 not 那种需要指定 --srcdir 选项的场景(或者如果它不是 only 那种场景)有人可以向我描述任何其他类型的场景,建议安装程序的人更改默认的“srcdir”变量吗?

【问题讨论】:

    标签: configuration options configure autoconf


    【解决方案1】:

    我指的选项是“--srcdir”选项。 ... 我能想象的唯一一种情况是源代码文件不会在您的当前工​​作目录中(或相对于您的当前工​​作目录,因为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,但我没有尝试过。

    【讨论】:

      猜你喜欢
      • 2019-12-27
      • 1970-01-01
      • 2017-06-11
      • 2019-01-16
      • 1970-01-01
      • 2022-01-22
      • 2019-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多