【问题标题】:autotools project - using prefix variable in scriptsautotools 项目 - 在脚本中使用前缀变量
【发布时间】:2012-07-17 21:11:21
【问题描述】:

在 autotools 项目中有使用某些路径的脚本,我想将用户在 ./configure 期间输入的前缀转发到这些脚本。假设我有一个 bash 脚本,它在 ./configure 期间设置的目录中回显文件。最好的方法是什么?我正在考虑让预处理器使用 myscript.sh.hpp 并将 -DMYPATH 传递给预处理器以将其替换为 myscript.sh.hpp 以生成具有适当路径的 myscript.sh 。这是正确的方向吗?

【问题讨论】:

  • 没看懂你的问题,能举个具体的例子吗?
  • 我有 bash 脚本,例如 #!/bin/bash ls /usr/sbin 我不想硬编码路径,我希望它默认是 /usr/sbin,但可以安装时覆盖。 IE。 ./configure --prefix=/usr/local/sbin && make 会生成这样的文件 #!/bin/bash ls /usr/local/sbin
  • 很难知道这里问的是什么 - 它是 shell 脚本替换还是“hpp”源? (哈哈)-但听起来你需要使用AC_SUBST
  • 您不想使用前缀来确定 bash 的路径。前缀是您自己的软件安装到的位置,您的软件包不太可能安装 bash。

标签: gnu autotools configure


【解决方案1】:

prefix 是您的软件的安装位置,并不是查找bash 等内容的正确位置。最好为用户提供指定 bash 解释器或探测 PATH 以查找 bash 并使用该值的能力。但是,通常需要在脚本中引用prefix。最简单的方法是让config.status 展开它。在configure.ac中:

AC_CONFIG_FILES([foo])

在 foo.in 中

@prefix@

【讨论】:

    猜你喜欢
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    相关资源
    最近更新 更多