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