11.DEFAULT_GOAL = test
22.PHONY : FORCE
33
4- # Enable Go module support across all commands.
4+ # enable module support across all go commands.
55export GO111MODULE = on
6+ # opt-in to vendor deps across all go commands.
7+ export GOFLAGS = -mod=vendor
8+ # enable consistent Go 1.12/1.13 GOPROXY behavior.
9+ export GOPROXY = https ://proxy.golang.org
610
711# Build
812
@@ -12,8 +16,11 @@ build_race: FORCE
1216 go build -race -o golangci-lint ./cmd/golangci-lint
1317build : golangci-lint
1418clean :
15- rm -f golangci-lint test/path
16- rm -rf tools
19+ rm -f golangci-lint
20+ rm -f test/path
21+ rm -f tools/svg-term
22+ rm -f tools/Dracula.itermcolors
23+ rm -rf tools/node_modules
1724.PHONY : fast_build build build_race clean
1825
1926# Test
@@ -36,81 +43,58 @@ test_linters:
3643
3744# Maintenance
3845
39- generate : README.md docs/demo.svg install.sh pkg/logutils/mock_logutils/mock_log.go vendor
46+ generate : README.md docs/demo.svg install.sh vendor
4047fast_generate : README.md vendor
4148
4249maintainer-clean : clean
43- rm -f docs/demo.svg README.md install.sh pkg/logutils/mock_logutils/mock_log.go
50+ rm -f docs/demo.svg README.md install.sh
4451 rm -rf vendor
4552.PHONY : generate maintainer-clean
4653
4754check_generated :
4855 $(MAKE ) --always-make generate
49- git checkout -- go.mod go.sum # can differ between go1.11 and go1.12
5056 git checkout -- vendor/modules.txt # can differ between go1.12 and go1.13
5157 git diff --exit-code # check no changes
5258.PHONY : check_generated
5359
5460fast_check_generated :
5561 $(MAKE ) --always-make fast_generate
56- git checkout -- go.mod go.sum # can differ between go1.11 and go1.12
5762 git checkout -- vendor/modules.txt # can differ between go1.12 and go1.13
5863 git diff --exit-code # check no changes
5964.PHONY : fast_check_generated
6065
61- release :
62- rm -rf dist
63- curl -sL https://git.io /goreleaser | bash
66+ release : export GOFLAGS = -mod=readonly
67+ release : .goreleaser.yml
68+ cd tools && go run github.com /goreleaser/goreleaser --config ../.goreleaser.yml
6469.PHONY : release
6570
6671# Non-PHONY targets (real files)
6772
68- golangci-lint : FORCE pkg/logutils/mock_logutils/mock_log.go
73+ golangci-lint : FORCE
6974 go build -o $@ ./cmd/golangci-lint
7075
71- tools/mockgen : go.mod go.sum
72- GOBIN=$(CURDIR ) /tools go install github.com/golang/mock/mockgen
73-
74- tools/goimports : go.mod go.sum
75- GOBIN=$(CURDIR ) /tools go install golang.org/x/tools/cmd/goimports
76-
77- tools/go.mod :
78- @mkdir -p tools
79- @rm -f $@
80- cd tools && go mod init local-tools
81-
82- tools/godownloader : Makefile tools/go.mod
83- # https://github.com/goreleaser/godownloader/issues/133
84- cd tools && GOBIN=$(CURDIR ) /tools go get -u github.com/goreleaser/godownloader
85-
86- tools/svg-term :
87- @mkdir -p tools
76+ tools/svg-term : tools/package.json tools/package-lock.json
8877 cd tools && npm ci
8978 ln -sf node_modules/.bin/svg-term $@
9079
9180tools/Dracula.itermcolors :
92- @mkdir -p tools
9381 curl -fL -o $@ https://raw.githubusercontent.com/dracula/iterm/master/Dracula.itermcolors
9482
9583docs/demo.svg : tools/svg-term tools/Dracula.itermcolors
96- PATH= $( CURDIR ) /tools: $$ {PATH} svg-term --cast=183662 --out docs/demo.svg --window --width 110 --height 30 --from 2000 --to 20000 --profile ./tools/Dracula.itermcolors --term iterm2
84+ . /tools/ svg-term --cast=183662 --out docs/demo.svg --window --width 110 --height 30 --from 2000 --to 20000 --profile ./tools/Dracula.itermcolors --term iterm2
9785
98- install.sh : tools/godownloader .goreleaser.yml
99- PATH=$(CURDIR ) /tools:$$ {PATH} tools/godownloader .goreleaser.yml | sed ' /DO NOT EDIT/s/ on [0-9TZ:-]*//' > $@
86+ install.sh : export GOFLAGS = -mod=readonly
87+ install.sh : .goreleaser.yml
88+ cd tools && go run github.com/goreleaser/godownloader ../.goreleaser.yml | sed ' /DO NOT EDIT/s/ on [0-9TZ:-]*//' > ../$@
10089
10190README.md : FORCE golangci-lint
10291 go run ./scripts/gen_readme/main.go
10392
104- pkg/logutils/mock_logutils/mock_log.go : tools/mockgen tools/goimports pkg/logutils/log.go
105- @rm -f $@
106- PATH=$(CURDIR ) /tools:$$ {PATH} go generate ./...
107-
10893go.mod : FORCE
10994 go mod tidy
11095 go mod verify
11196go.sum : go.mod
11297
11398.PHONY : vendor
11499vendor : go.mod go.sum
115- rm -rf vendor
116100 go mod vendor
0 commit comments