-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathmakefile
53 lines (40 loc) · 1.68 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
### Makefile for killy
GITTAG=`git rev-parse --short HEAD`
BUILD_TIME=`date -u +%Y.%m.%d-%H:%M:%S%Z`
VERSION=1.1
GOPATH ?= $(shell go env GOPATH)
GOFLAGS=-ldflags "-X "github.com/prism-river/killy/internal/version".GitCommit=${GITTAG} -X "github.com/prism-river/killy/internal/version".BuildTime=${BUILD_TIME} -X "github.com/prism-river/killy/internal/version".Version=${VERSION}"
# Ensure GOPATH is set before running build process.
ifeq "$(GOPATH)" ""
$(error Please set the environment variable GOPATH before running `make`)
endif
CURDIR := $(shell pwd)
path_to_add := $(addsuffix /bin,$(subst :,/bin:,$(CURDIR)/_vendor:$(GOPATH)))
export PATH := $(path_to_add):$(PATH)
FILES := $$(find . -name '*.go' | grep -vE 'vendor')
BLDDIR := build
APPS := killyd
all: $(APPS)
linux :
$(wildcard apps/killyd/*.go killyd/*.go killy/*.go internal/*/*.go)
@rm -fr $(BLDDIR)
@mkdir -p $(dir $@)
GOOS=linux GOARCH=amd64 go build ${GOFLAGS} -o $@ ./apps/$*
$(BLDDIR)/killyd: $(wildcard apps/killyd/*.go killyd/*.go killy/*.go internal/*/*.go)
$(BLDDIR)/%:
@rm -fr $(BLDDIR)
@mkdir -p $(dir $@)
go build ${GOFLAGS} -o $@ ./apps/$*
$(APPS): %: $(BLDDIR)/%
clean:
@rm -fr $(BLDDIR)
check:
#go get github.com/golang/lint/golint
@echo "gofmt (simplify)"
@gofmt -s -l -w $(FILES) 2>&1 | grep -v "parser/parser.go" | awk '{print} END{if(NR>0) {exit 1}}'
@echo "vet"
@ go tool vet $(FILES) 2>&1 | awk '{print} END{if(NR>0) {exit 1}}'
@echo "vet --shadow"
@ go tool vet --shadow $(FILES) 2>&1 | awk '{print} END{if(NR>0) {exit 1}}'
@echo "golint"
@ golint ./... 2>&1 | grep -vE 'vendor|context\.Context|LastInsertId|NewLexer|\.pb\.go' | awk '{print} END{if(NR>0) {exit 1}}'