1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| GOROOT := $(shell go env GOROOT) GOCMD := $(GOROOT)/bin/go GOCTLCMD := $(shell which goctl)
OUTPUT_DIR = ./output
APP_NAME := app
.PHONY: help help: @echo "可用命令:" @echo " make - 编译程序(默认目标)" @echo " make help - 显示帮助信息" @echo " make generate - API定义生成" @echo " make clean - 清理编译可执行文件" @echo " make run - 编译并运行程序" @echo " make test - 执行单元测试" @echo " make bench - 执行基准测试" @echo " make tidy - 安装/清理依赖" @echo " make build - 编译程序包" @echo " make build-on-windows - 编译程序包(windows)"
all: help
.PHONY: generate generate: @echo "Running generate ...." @$(GOCTLCMD) api go --api app.api --dir . --style=goZero @echo "Success!"
.PHONY: build build: @echo "Running build ...." @GOOS=linux GOARCH=amd64 $(GOCMD) build -o $(OUTPUT_DIR)/$(APP_NAME) app.go @echo "Success!"
.PHONY: build-on-windows build-on-windows: @echo "Running build ...." @CGO_ENABLED=0 GOOS=windows GOARCH=amd64 $(GOCMD) build -o $(OUTPUT_DIR)/$(APP_NAME) app.go @echo "Success!"
.PHONY: run run: @$(GOCMD) run app.go
.PHONY: clean clean: @echo "Running clean ...." @$(GOCMD) clean @$(RM) $(OUTPUT_DIR)/* @echo "Success!"
.PHONY: test test: @echo "Running tests ...." @$(GOCMD) test ./...
.PHONY: bench bench: @$(GOCMD) test -benchmem -run=^$$ -bench . tests
.PHONY: tidy tidy: @echo "Running tidy ...." @$(GOCMD) mod tidy @echo "Success!"
|