1、
%.o 表明所有以 .o結尾的檔案
2、
自動化變量:
@ 表示目標集
% 僅當目標是函數函式庫檔案中,表示規則中的目標成員名。例如,如果一 個目標是"foo.a(bar.o)",那麼,"%"就是"bar.o","@"就是 "foo.a"。
如果目標不是函數函式庫檔案(Unix下是[.a],Windows下是[.lib]),那麼,其值為空。
< 依賴目標中的第一個目標名字。如果依賴目標是以模式(即"%")定義的,那麼"<"將是符合模式的一系列的檔案集。注意,其是一個一個取出來的。
所有的依賴目標的集合。以空格分隔。如果在依賴目標中有多個重複的,那個這個變量會去除重複的依賴目標,只保留一份。
3、
-I 來指定path
-c 指定讀取makefile的目錄。如果有多個「-C」參數,make的解釋是後面的路徑以前面的作為相對路徑,並以最後的目錄作為被指定目錄。
-O 不重新生成的指定的
-ansi : 程式要求依據ansi c標準
-Wall : 編譯時顯示所有的警告訊息
-g : 編入除錯資訊(要使用GDB除錯一定要加)
4、編譯Fortran/Ratfor程序的隱含規則。
「<n>.o」的目標的依賴目標會自動推導為「<n>.r」或「<n>.F」或「<n>.f」,並且其生成命令是:
「.f」 「(FC) –c (FFLAGS)」
「.F」 「(FC) –c (FFLAGS) (CPPFLAGS)」
「.f」 「(FC) –c (FFLAGS) (RFLAGS)」
5、預處理Fortran/Ratfor程序的隱含規則。
「<n>.f」的目標的依賴目標會自動推導為「<n>.r」或「<n>.F」。這個規則只是轉換Ratfor或有預處理的Fortran程序到一個標準的Fortran程序。其使用的命令是:
「.F」 「(FC) –F (CPPFLAGS) (FFLAGS)」
「.r」 「(FC) –F (FFLAGS) (RFLAGS)」
reference:
http://blog.xuite.net/jackie.xie/bluelove/6559044
http://blog.yam.com/ytha/article/16644244
