2008年2月2日土曜日

Makefileメモ

FortranでもGNU makeが使えるようなので試してみる。
線形代数の計算ライブラリLapackのせいでコンパイルオプションをどうするかでてこずる。結局Intelのフォートランコンパイラ+インテルMKLでLapackを使うときはMakefileは以下のようにしておけば良いようだ。

TARGET=出来上がりの実行ファイル名
OBJECTS=生成される分のファイル名.o 
F90=ifc
FFLAGS= -lmkl_p4 -lguide -lpthread -L/opt/intel/mkl61/lib/32 \
-lmkl_lapack -lmkl_def\
COMMON_MOD=モジュールファイル名
.SUFFIXES:
.SUFFIXES : .o .f90
.f90.o:

${F90} -c $< ${FFLAGS}

${TARGET} : ${OBJECTS}

${F90} -o $@ ${OBJECTS} ${FFLAGS}

${OBJECTS} : ${COMMON_MOD}


コンパイラオプションの-pthleadとかはたぶんあんまりいらない気もする。
あとやりがちなミスが、実行文(${TARGET} : ${OBJECTS}とか)の前にタブを入れ忘れること。タブが無いとGNUmakeは実行文を認識してくれない。とある参考文献のmakefileの例も実行文の前にタブはいってないぞ・・・最初それをそのまま試して、私は撃沈した。

0 コメント: