Makefile入門

Make是什麼

make是一個構建自動化工具,會在當前目錄下面尋找makefile或者Makefile文件,如果存在,會根據makefile的構建規則去完成構建

規則

Makefile是由多條規則組成,每條規則都以一個target(目標)開頭,後跟一個:冒號,冒號後是這個目標的prerequisties(前置條件),緊接着新得一行,必須以一個tab作爲開頭,後面跟隨command也就是你希望這一個target所執行的構建命令

[target] ... : [prerequisites] ...
<tab>[command]
    ...
    ...
  • target:一個目標代表一條規則,可以是一個或多個文件名。也可以是某個操作的名字(標籤),稱爲僞目標(phony)
  • prerequisites:前置條件,這一項是可選參數。通常是多個文件名、僞目標。它的作用是 target 是否需要重新構建的標準,如果前置條件不存在或有過更新(文件的最後一次修改時間)則認爲 target 需要重新構建
  • command:構建這一個 target 的具體命令集
    例如:
.PHONY: build clean tool lint help

all: build

build:
    go build -v .

tool:
    go tool vet . |& grep -v vendor; true
    gofmt -w .

lint:
    golint ./...

clean:
    rm -rf go-gin-example
    go clean -i .

help:
    @echo "make: compile packages and dependencies"
    @echo "make tool: run specified go tool"
    @echo "make lint: golint ./..."
    @echo "make clean: remove object files and cached files"

在這個文件中可以執行的命令有make all make tool make lint make clean make help
該文件中使用了.PHONY ,其作用是聲明build、clean、tool、lint、help爲爲目標,聲明瞭爲目標之後,在執行相應的命令時,make就不會去檢查相對應的文件,而只是每次都會運行標籤對應的命令。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章