Automake:如何在命令前加上编译命令

问题描述:

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

当生成文件被用于构建应用程序,它是方便 定义一个占位符变量来表示是否一个“准备‘’ 步骤等的仪表期望或只有纯汇编 和链接。例如,如果该变量被称为PREP则 线限定在生成文件C编译器可以改变从:

MPICC = mpiccMPICC = $(PREP) mpicc

一个然后可以使用相同的生成文件来完成构建一个instru- mented 版本与

make PREP="scorep"

命令,或者干脆利用由 全面优化,而不是仪表默认的编译:

make

如果你的包必须始终scorep构建,则只需将其预先考虑到CCconfigure.ac,如:

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

这将导致构建失败,如果用户建立你的包不有scorep,但想必这就是你想要的。 (或者你可以添加一个检查,以configure.ac有它的错误,如果找不到scorep

如果你希望用户可选择使用scorep,你可以把上面的分配条件。一个常见的方法是使用一个选项,在你的情况下,比如说--with-scorep

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

这个答案是具体到分数-P。

我想分享Score-P邮件列表的答案。在此基础上link,有必要与

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

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