-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
81 lines (60 loc) · 2.32 KB
/
Makefile
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
78
79
80
81
.PHONY: test check clean build dist all
TOP_DIR := $(shell pwd)
# ifeq ($(FILE), $(wildcard $(FILE)))
# @ echo target file not found
# endif
ROOT_DEV_FILE := example/demo/demo.go
DIST_VERSION := 1.0.0
DIST_OS := linux
DIST_ARCH := amd64
ROOT_BUILD_PATH ?= ./build
ROOT_DIST ?= ./dist
ROOT_TEST_DIST_PATH ?= $(ROOT_DIST)/test/$(DIST_VERSION)
ROOT_TEST_OS_DIST_PATH ?= $(ROOT_DIST)/$(DIST_OS)/test/$(DIST_VERSION)
ROOT_REPO_DIST_PATH ?= $(ROOT_DIST)/release/$(DIST_VERSION)
ROOT_REPO_OS_DIST_PATH ?= $(ROOT_DIST)/$(DIST_OS)/release/$(DIST_VERSION)
ROOT_LOG_PATH ?= ./log
ROOT_SWAGGER_PATH ?= ./docs
checkEnvGo:
ifndef GOPATH
@echo Environment variable GOPATH is not set
exit 1
endif
init: checkEnvGo
@echo "~> start init this project"
@echo "-> check version"
go version
@echo "-> check env golang"
go env
@echo "-> check env dep fix as [ go get -v -u github.com/golang/dep/cmd/dep ]"
which dep
checkDepends: checkEnvGo
-dep ensure -v
dep: checkDepends
@echo "more depends see Gopkg.toml"
cleanBuild:
@if [ -d ${ROOT_BUILD_PATH} ]; then rm -rf ${ROOT_BUILD_PATH} && echo "~> cleaned ${ROOT_BUILD_PATH}"; else echo "~> has cleaned ${ROOT_BUILD_PATH}"; fi
cleanLog:
@if [ -d ${ROOT_LOG_PATH} ]; then rm -rf ${ROOT_LOG_PATH} && echo "~> cleaned ${ROOT_LOG_PATH}"; else echo "~> has cleaned ${ROOT_LOG_PATH}"; fi
clean: cleanBuild cleanLog
@echo "~> clean finish"
checkTestDistPath:
@if [ ! -d ${ROOT_TEST_DIST_PATH} ]; then mkdir -p ${ROOT_TEST_DIST_PATH} && echo "~> mkdir ${ROOT_TEST_DIST_PATH}"; fi
checkTestOSDistPath:
@if [ ! -d ${ROOT_TEST_OS_DIST_PATH} ]; then mkdir -p ${ROOT_TEST_OS_DIST_PATH} && echo "~> mkdir ${ROOT_TEST_OS_DIST_PATH}"; fi
checkReleaseDistPath:
@if [ ! -d ${ROOT_REPO_DIST_PATH} ]; then mkdir -p ${ROOT_REPO_DIST_PATH} && echo "~> mkdir ${ROOT_REPO_DIST_PATH}"; fi
checkReleaseOSDistPath:
@if [ ! -d ${ROOT_REPO_OS_DIST_PATH} ]; then mkdir -p ${ROOT_REPO_OS_DIST_PATH} && echo "~> mkdir ${ROOT_REPO_OS_DIST_PATH}"; fi
buildMain:
@go build -o build/main $(ROOT_DEV_FILE)
buildARCH:
@GOOS=$(DIST_OS) GOARCH=$(DIST_ARCH) go build -o build/main $(ROOT_DEV_FILE)
dev: buildMain
-./build/main
help:
@echo "make init - check base env of this project"
@echo "make dep - check depends of project"
@echo "make clean - remove binary file and log files"
@echo ""
@echo "make dev - run server use conf/config.yaml"