因为看到很多golang项目都使用Makefile来完成程序的编译运行,这里我也百度了一些博客,从别人写的Makefile中摘取了我经常用到的功能。整理记录如下:
功能list:
- help help命令使用sed命令从Makefile中获取命令列表和注释
- build 通过ldflags参数编译时注入版本信息(golang 版本 项目版本 git commit 构件时间)
- install build后将可执行命令移动到 GOBIN环境变量中
- build-linux 构建linux版本的二进制可执行命令
- run 构建然后运行
- clean 清除构建的二进制文件
运行make
:
运行make run
:
Makefile
# info
VERSION=v0.0.1
CGO_ENABLED=0
PROJECT_NAME=$(shell basename "$(PWD)")
GO_VERSION=$(shell go version | awk '{print $$3}')
BUILD_TIME=$(shell date +%FT%T%z)
OS_ARCH=$(shell go version | awk &#