Make這個詞,英語的意思是"制作"。Make命令直接用了這個意思,就是要做出某個文件。比如,要做出文件a.txt,就可以執(zhí)行下面的命令。
$ make a.txt
但是,如果你真的輸入這條命令,它并不會起作用。因為Make命令本身并不知道,如何做出a.txt,需要有人告訴它,如何調(diào)用其他命令完成這個目標。
比如,假設文件 a.txt 依賴于 b.txt 和 c.txt ,是后面兩個文件連接(cat命令)的產(chǎn)物。那么,make 需要知道下面的規(guī)則。
a.txt: b.txt c.txt
cat b.txt c.txt > a.txt
也就是說,make a.txt 這條命令的背后,實際上分成兩步:第一步,確認 b.txt 和 c.txt 必須已經(jīng)存在,第二步使用 cat 命令 將這個兩個文件合并,輸出為新文件。
像這樣的規(guī)則,都寫在一個叫做Makefile的文件中,Make命令依賴這個文件進行構建。Makefile文件也可以寫為makefile, 或者用命令行參數(shù)指定為其他文件名。
$ make -f rules.txt
# 或者
$ make --file=rules.txt
上面代碼指定make命令依據(jù)rules.txt文件中的規(guī)則,進行構建。
總之,make只是一個根據(jù)指定的Shell命令進行構建的工具。它的規(guī)則很簡單,你規(guī)定要構建哪個文件、它依賴哪些源文件,當那些文件有變動時,如何重新構建它。
更多建議: