2016-10-20 8 views
0

私は、HPCクラスタ上で必要なすべてのプログラムをダウンロードしてビルドするmakefileを作成しています。何かを行う前に、私はそれがこれを実行したい:他のコマンドの前にいくつかのコマンドを実行するには?

module add openmpi/1.8.4-gcc 
module add slurm 

私はMPIプログラムをコンパイルし、実行するためにそれらをスケジュールすることができますように、これらの2つのコマンドは、MPICCPATHのようないくつかの環境変数を変更します。今私はそれらを私の.bashrcに持っています。そこから私のメイクファイルに移動するにはどうすればいいですか?

答えて

0

makeを実行する前に実行すると動作します。あなたはこれらの行はMakefileに表示したい場合は、.ONESHELL:

をそれ以外の場合は使用することができ、makemodule load行は無用作り、1行につき1つのシェルプロセスを生成します。

$ cat Makefile 
CC=g++ 
SHELL=/bin/bash 

.ONESHELL: 
all: 
    module load R 
    R --version 

は、モジュールがmakeが成功する実行している

$ R 
-bash: R: command not found 

ロードされていないが:

$ make 
module load R 
R --version 
R version 3.2.1 (2015-06-18) -- "World-Famous Astronaut" 
Copyright (C) 2015 The R Foundation for Statistical Computing 
Platform: x86_64-unknown-linux-gnu (64-bit) 
[...] 

しかし、これはmodule loadコマンドを含めるようにすべてのルールが必要になります。

関連する問題