1+ .DEFAULT_GOAL = test
2+ .PHONY : FORCE
13export GO111MODULE = on
24
5+ # Build
6+
7+ build : golangci-lint
8+ clean :
9+ rm -f golangci-lint test/path
10+ rm -rf tools
11+ .PHONY : build clean
12+
13+ # Test
14+
315test : build
416 GL_TEST_RUN=1 ./golangci-lint run -v
517 GL_TEST_RUN=1 ./golangci-lint run --fast --no-config -v --skip-dirs ' test/testdata_etc,pkg/golinters/goanalysis/(checker|passes)'
@@ -8,35 +20,81 @@ test: build
820
921build :
1022 go build -o golangci-lint ./cmd/golangci-lint
23+ .PHONY : test
1124
1225test_race :
1326 go build -race -o golangci-lint ./cmd/golangci-lint
1427 GL_TEST_RUN=1 ./golangci-lint run -v --deadline=5m
28+ .PHONY : test_race
1529
1630test_linters :
1731 GL_TEST_RUN=1 go test -v ./test -count 1 -run TestSourcesFromTestdataWithIssuesDir/$T
32+ .PHONY : test_linters
1833
19- assets :
20- svg-term --cast=183662 --out docs/demo.svg --window --width 110 --height 30 --from 2000 --to 20000 --profile Dracula --term iterm2
21-
22- readme :
23- go run ./scripts/gen_readme/main.go
34+ # Maintenance
2435
25- gen :
26- go generate ./...
36+ generate : docs/demo.svg README.md install.sh pkg/logutils/log_mock.go vendor
37+ maintainer-clean : clean
38+ rm -f docs/demo.svg README.md install.sh pkg/logutils/log_mock.go
39+ rm -rf vendor
40+ .PHONY : generate maintainer-clean
2741
2842check_generated :
29- $(MAKE ) readme update_deps
43+ $(MAKE ) --always-make generate
3044 git diff --exit-code # check no changes
45+ .PHONY : check_generated
3146
3247release :
3348 rm -rf dist
3449 curl -sL https://git.io/goreleaser | bash
50+ .PHONY : release
51+
52+ # Non-PHONY targets (real files)
53+
54+ golangci-lint : FORCE pkg/logutils/log_mock.go
55+ go build -o $@ ./cmd/golangci-lint
56+
57+ tools/mockgen : go.mod go.sum
58+ GOBIN=$(CURDIR ) /tools go install github.com/golang/mock/mockgen
59+
60+ tools/goimports : go.mod go.sum
61+ GOBIN=$(CURDIR ) /tools go install golang.org/x/tools/cmd/goimports
62+
63+ tools/go.mod :
64+ @mkdir -p tools
65+ @rm -f $@
66+ cd tools && go mod init local-tools
3567
36- update_deps :
68+ tools/godownloader : Makefile tools/go.mod
69+ cd tools && GOBIN=$(CURDIR ) /tools go get github.com/goreleaser/godownloader@3b90d248ba30307915288f08ab3f2fc2d9f6710c
70+
71+ tools/svg-term :
72+ @mkdir -p tools
73+ cd tools && npm install svg-term-cli
74+ ln -sf node_modules/.bin/svg-term $@
75+
76+ tools/Dracula.itermcolors :
77+ @mkdir -p tools
78+ curl -fL -o $@ https://raw.githubusercontent.com/dracula/iterm/master/Dracula.itermcolors
79+
80+ docs/demo.svg : tools/svg-term tools/Dracula.itermcolors
81+ 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
82+
83+ install.sh : tools/godownloader .goreleaser.yml
84+ PATH=$(CURDIR ) /tools:$$ {PATH} tools/godownloader .goreleaser.yml | sed ' /DO NOT EDIT/s/ on [0-9TZ:-]*//' > $@
85+
86+ README.md : FORCE golangci-lint
87+ go run ./scripts/gen_readme/main.go
88+
89+ pkg/logutils/log_mock.go : tools/mockgen tools/goimports pkg/logutils/log.go
90+ @rm -f $@
91+ PATH=$(CURDIR ) /tools:$$ {PATH} go generate ./...
92+
93+ go.mod : FORCE
3794 go mod verify
3895 go mod tidy
96+ go.sum : go.mod
97+
98+ vendor : go.mod go.sum
3999 rm -rf vendor
40100 go mod vendor
41-
42- .PHONY : test
0 commit comments