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就不会去检查相对应的文件,而只是每次都会运行标签对应的命令。