Makefile
openmpi
mpich
#migrated
runtimeArgument

Makefile > 引数を使ってビルド条件を切替える > MAKECMDGOALDS

More than 1 year has passed since last update.
動作環境
CentOS 6.8
GNU Make 3.81

某ソフトのインストール方法のメモに以下のような記載がある。

make -f makefile.xxx mpi  for MPI+OPENMP hybrid run
make -f makefile.xxx omp  for OPENMP parallel run
make -f makefile.xxx serial for a serial run

mpi, omp, serialを切替えてmakeできるようだ。

makefile.xxxを見ると以下のような記載がある。

...
ifeq ($(MAKECMDGOALS),serial)
    FC=$(FCSER)
    MAIN=$(BASENAME)_serial
        FFLAGS2=$(FFLAGS)
        LDFLAGS2=$(LDFLAGS) 
endif
ifeq ($(MAKECMDGOALS),omp)
    FC=$(FCOMP)
    MAIN=$(BASENAME)_omp
        FFLAGS2=$(FFLAGS)
#        LDFLAGS2=$(LDFLAGS) -lpthread 
        LDFLAGS2=$(LDFLAGS) 
endif
ifeq ($(MAKECMDGOALS),mpi)
    FC=$(FCMPI)
    MAIN=$(BASENAME)_mpi
        FFLAGS2=$(FFLAGS) -I${MPI_ROOT}/include
        LDFLAGS2=$(LDFLAGS) -lpthread -L${MPI_ROOT}/lib -lmpi
endif
...

今は詳細を追わないが、条件を変えてmakeするときに使えそうな構文だ。