Makefile的語(yǔ)法結(jié)構(gòu)主要包括以下幾個(gè)部分:
目標(biāo)(Target):Makefile中的目標(biāo)指定了要生成的文件或者執(zhí)行的動(dòng)作。目標(biāo)的語(yǔ)法格式通常是target: prerequisites
,其中target
表示目標(biāo)文件,prerequisites
表示生成該目標(biāo)所依賴的文件。
依賴關(guān)系(Prerequisites):依賴關(guān)系指定了生成目標(biāo)所需要的文件或者其他目標(biāo)??梢杂卸鄠€(gè)依賴關(guān)系,每個(gè)依賴關(guān)系之間用空格分隔。
命令(Command):在Makefile中,可以通過(guò)命令來(lái)指定生成目標(biāo)的動(dòng)作。命令以Tab鍵開(kāi)頭,并且需要放在目標(biāo)的下一行。命令可以是任意的Shell命令。
變量(Variable):可以使用變量來(lái)簡(jiǎn)化Makefile中的重復(fù)代碼。變量可以在Makefile中定義,并且可以在后續(xù)的命令中使用。變量的定義通常使用variable = value
的格式。
注釋(Comment):Makefile中可以使用注釋來(lái)提供對(duì)Makefile的說(shuō)明。注釋以#
開(kāi)頭,直到該行的末尾為止。
特殊規(guī)則:Makefile中還可以定義一些特殊的規(guī)則,如偽目標(biāo)(.PHONY)、默認(rèn)目標(biāo)(.DEFAULT_GOAL)等,用于控制Makefile的行為。
總體來(lái)說(shuō),Makefile的語(yǔ)法結(jié)構(gòu)可以簡(jiǎn)化為以下格式:
target: prerequisites
command1
command2
...
其中target
表示目標(biāo)文件,prerequisites
表示生成該目標(biāo)所依賴的文件,command
表示生成目標(biāo)的命令。