FC=ifort
CFLAG=-O2 -xW -unroll
SRCPATH=/home/hchsiao/mklexamples/
LIB=/usr/lib/
INC=/opt/intel/mkl/10.0/include/
MKLLIB=/opt/intel/mkl/10.0/lib/32
test:
$(FC) $(SRCPATH)test.f90 -L$(MKLLIB) -lmkl -lmkl_lapack -lguide -lpthread
=================================================
edit: $(object)
ifort $(object) -o edit
t1.o t2.o :ref1.h ref2.h
[makefile隱晦規則: 上述指令表,下面指令的簡化
t1.o: t1.f90 ref1.h ref2.h
ifort t1.f90 -o t1.o
t2.o: t2.f90 ref1.h ref2.h
ifort t2.f90 -o t2.o]
.PHONY : clean
clean :
-rm edit $(objects)
.PHONY 表clean是一個「偽目標」,在rm前面加"-"意思是:也許某些檔案出現問題,但不要管,繼續做後面的事。
- makefile 檔案的開頭放 "目標 ",檔案最後 放clean
- 在Makefile中的命令,必須要以[Tab]鍵開始
- 註釋是用「#」字符;如果要在Makefile中使用「#」字符,可以用反斜框進行轉義,如:「\#」。
- 可include其它的makefile指令
- 一般來說,make會以UNIX的標準Shell,也就是/bin/sh來執行命令
=====================================
特殊符號
- *:表任意字串
*.f90 表任意.f90的檔案 [note: 「\*」 來表示真實的「*」字符,而不是任意長度的字串。]
讓objects的值是所有[.o]的檔案名的集合=> objects := $(wildcard *.o) - ?
- ...
- $?
- 換行\
(整理
http://blog.xuite.net/jackie.xie/bluelove/6559044
berfore 檔案搜尋 2009.03.19)
留言列表