【问题标题】:Automake: How to prefix a command to compiler commandAutomake:如何为编译器命令添加前缀
【发布时间】:2017-05-02 11:58:16
【问题描述】:

以下引用来自scorep 的文档。为了使用该软件,scorep 命令被称为编译器前缀,即mpicc。我正在使用自动制作。到目前为止,在configure.ac 我有AC_PROG_CC([mpicc])。如何使用 automake 将 scorep 命令添加到编译器命令的前缀?

当使用 makefile 构建应用程序时,它很方便 定义一个占位符变量以指示是否“准备” 需要像仪器这样的步骤或仅纯编译 和链接。例如,如果此变量称为 PREP,则 在 makefile 中定义 C 编译器的行可以更改为:

MPICC = mpiccMPICC = $(PREP) mpicc

然后可以使用相同的 makefile 来构建一个仪表化的 版本与

make PREP="scorep"

命令或完全优化且未检测的默认构建 简单地使用:

make.

【问题讨论】:

    标签: makefile prefix automake scorep


    【解决方案1】:

    如果您的包必须始终使用 scorep 构建,那么只需将其添加到您的 configure.ac 中的 CC,例如:

    AC_PROG_CC([mpicc])
    CC="scorep $CC"
    

    如果构建你的包的用户没有scorep,这将导致构建失败,但大概这就是你想要的。 (或者,如果未找到 scorep,您可以向 configure.ac 添加检查以使其出错。)

    如果您希望用户有选择地使用scorep,您可以将上述分配设为有条件的。一种常见的方法是使用一个选项,例如,--with-scorep

    最后一个选择是什么都不做,让想要这个功能的用户请求它:

    make CC='scorep mpicc'
    

    【讨论】:

      【解决方案2】:

      此答案特定于 Score-P。

      我想分享 Score-P 邮件列表的答案。基于这个link,需要配置一下

      SCOREP_WRAPPER=OFF ../configure \
           CC=scorep-mpicc \
           CXX=scorep-mpicxx \
           FC=scorep-mpif90 \
           --disable-dependency-tracking
      

      【讨论】:

        【解决方案3】:

        Install_Scorep 是一个 bash 脚本,用于在基于 Linux 的系统上安装 Score-P 3.0。要安装 Score-P,请克隆存储库并运行名为 install_scorep.sh 的脚本。这将完成成功安装 Score-P 3.0 所需的所有任务。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-07-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-03-18
          相关资源
          最近更新 更多