treerack/Makefile

93 lines
1.9 KiB
Makefile
Raw Normal View History

2017-06-25 17:51:08 +02:00
SOURCES = $(shell find . -name '*.go')
2017-10-29 20:01:33 +01:00
PARSERS = $(shell find . -name '*.treerack')
2017-06-25 17:51:08 +02:00
default: build
2017-11-05 03:48:38 +01:00
deps:
go get golang.org/x/tools/cmd/goimports
2017-11-05 04:08:08 +01:00
go get -t ./...
2017-11-05 03:48:38 +01:00
2017-11-05 03:28:36 +01:00
imports: $(SOURCES)
2018-01-05 19:06:10 +01:00
@echo imports
2017-06-25 17:51:08 +02:00
@goimports -w $(SOURCES)
build: $(SOURCES)
2018-01-05 19:06:10 +01:00
go build
2018-01-07 01:45:56 +01:00
go build -o cmd/treerack/treerack ./cmd/treerack
install: $(SOURCES)
go install ./cmd/treerack
2018-01-05 19:06:10 +01:00
head: $(SOURCES)
go run scripts/createhead.go -- \
char.go \
sequence.go \
choice.go \
idset.go \
results.go \
context.go \
nodehead.go \
syntaxhead.go \
> head.go
2018-01-07 01:45:56 +01:00
generate: $(SOURCES) $(PARSERS) head install
treerack generate -export -package-name self < syntax.treerack > self/self.go.next
2018-01-05 19:06:10 +01:00
@mv self/self.go{.next,}
@gofmt -s -w self/self.go
2018-01-07 01:45:56 +01:00
regenerate: $(SOURCES) $(PARSERS) head install
treerack generate -export -package-name self < syntax.treerack > self/self.go.next
2018-01-05 19:06:10 +01:00
@mv self/self.go{.next,}
2018-01-07 01:45:56 +01:00
treerack generate -export -package-name self < syntax.treerack > self/self.go.next
2018-01-05 19:06:10 +01:00
@mv self/self.go{.next,}
@gofmt -s -w self/self.go
2017-06-25 17:51:08 +02:00
2017-11-05 03:28:36 +01:00
check: imports build $(PARSERS)
go test -test.short -run ^Test
2017-06-25 17:51:08 +02:00
2018-01-06 22:56:26 +01:00
checkall: imports build $(PARSERS)
2017-11-05 03:28:36 +01:00
go test
2017-10-29 16:47:03 +01:00
2017-11-05 03:28:36 +01:00
.coverprofile: $(SOURCES) imports
go test -coverprofile .coverprofile
cover: .coverprofile
go tool cover -func .coverprofile
2018-01-06 22:56:26 +01:00
showcover: .coverprofile
2017-11-05 03:28:36 +01:00
go tool cover -html .coverprofile
2017-06-25 17:51:08 +02:00
2018-01-06 22:56:26 +01:00
publishcoverage: .coverprofile
2017-11-05 03:38:24 +01:00
curl -s https://codecov.io/bash -o codecov
bash codecov -Zf .coverprofile
2017-11-05 03:38:24 +01:00
2017-07-30 05:10:46 +02:00
cpu.out: $(SOURCES) $(PARSERS)
2017-07-30 02:35:51 +02:00
go test -v -run TestMMLFile -cpuprofile cpu.out
cpu: cpu.out
go tool pprof -top cpu.out
2017-11-05 03:28:36 +01:00
fmt: $(SOURCES)
2018-01-05 19:06:10 +01:00
@echo fmt
2017-11-05 03:28:36 +01:00
@gofmt -w -s $(SOURCES)
2018-01-06 22:56:26 +01:00
checkfmt: $(SOURCES)
2018-01-05 19:06:10 +01:00
@echo check fmt
2017-11-05 05:07:20 +01:00
@if [ "$$(gofmt -s -d $(SOURCES))" != "" ]; then false; else true; fi
vet:
2018-01-05 19:06:10 +01:00
go vet
2017-11-05 05:07:20 +01:00
2018-01-06 22:56:26 +01:00
precommit: regenerate fmt vet build checkall
2017-07-30 02:35:51 +02:00
clean:
2018-01-05 19:06:10 +01:00
rm -f *.test
rm -f cpu.out
rm -f .coverprofile
go clean -i ./...
2017-11-05 03:45:15 +01:00
2018-01-06 22:56:26 +01:00
ci-trigger: deps checkfmt build checkall
2017-11-05 04:01:27 +01:00
ifeq ($(TRAVIS_BRANCH)_$(TRAVIS_PULL_REQUEST), master_false)
2018-01-06 22:56:26 +01:00
make publishcoverage
2017-11-05 04:01:27 +01:00
endif