makefile是一個文本形式的數(shù)據(jù)庫文件,其中包含一些規(guī)則告訴make編譯哪些文件,怎樣編譯以及在什么條件下去編譯.每條規(guī)則包含以下內(nèi)容:
.一個"目標(biāo)體"(target),即make最終需要創(chuàng)建的東西.
.包含一個或多個"依賴體"(dependency)的列表,依賴體通常是編譯目標(biāo)體需要的其他文件.
.為了從指定的依賴體創(chuàng)建出目標(biāo)體所需執(zhí)行的"命令"(command)的列表.
雖然目標(biāo)體通常是程序,但它們可以是諸如文本文件,手冊頁面等任何東西.目標(biāo)體甚至能測試和設(shè)置環(huán)境變量.類似地,也可以定義依賴體以確保編譯開始前存在 某個特殊的環(huán)境變量.最后,makefile中的命令可以是編譯器的命令或shell命令,它們能設(shè)置環(huán)境變量,刪除文件,或者任何命令行所能完成的功 能,如從FTP站點下載文件等.GNU make被調(diào)用后會順序查找名為GNUmakefile,makefile或Makefile的文件.出于某種原因,可能只是習(xí)慣和長期形成的約定吧,大 多數(shù)Linux程序員使用最后一種形式Makefile.
Makefile規(guī)則有下列通用形式:
target : dependency [dependency [...]]
command
command
[...]
.一個"目標(biāo)體"(target),即make最終需要創(chuàng)建的東西.
.包含一個或多個"依賴體"(dependency)的列表,依賴體通常是編譯目標(biāo)體需要的其他文件.
.為了從指定的依賴體創(chuàng)建出目標(biāo)體所需執(zhí)行的"命令"(command)的列表.
雖然目標(biāo)體通常是程序,但它們可以是諸如文本文件,手冊頁面等任何東西.目標(biāo)體甚至能測試和設(shè)置環(huán)境變量.類似地,也可以定義依賴體以確保編譯開始前存在 某個特殊的環(huán)境變量.最后,makefile中的命令可以是編譯器的命令或shell命令,它們能設(shè)置環(huán)境變量,刪除文件,或者任何命令行所能完成的功 能,如從FTP站點下載文件等.GNU make被調(diào)用后會順序查找名為GNUmakefile,makefile或Makefile的文件.出于某種原因,可能只是習(xí)慣和長期形成的約定吧,大 多數(shù)Linux程序員使用最后一種形式Makefile.
Makefile規(guī)則有下列通用形式:
target : dependency [dependency [...]]
command
command
[...]