/
Makefile
70 lines (57 loc) · 1.48 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
.PHONY: install
install: generate
GO111MODULE=on go install -v ./cmd/...
.PHONY: test
test: unittest lint tidy
.PHONY: unittest
unittest: generate
GO111MODULE=on go test -v -cover -coverprofile=coverage.txt -covermode=atomic -race ./...
.PHONY: lint
lint: generate
golangci-lint run --verbose ./...
.PHONY: tidy
tidy: generate
GO111MODULE=on go mod tidy
.PHONY: docker.build
docker.build: generate
docker build -t bertytech/berty .
##
## Code gen
##
PROTOS_SRC := $(wildcard ../api/*.proto) $(wildcard ../api/internal/*.proto)
GEN_SRC := $(PROTOS_SRC) Makefile
GEN_SUM := gen.sum
.PHONY: clean
clean:
rm -f gen.sum $(wildcard */*/*.pb.go)
.PHONY: generate
generate: gen.sum
$(GEN_SUM): $(GEN_SRC)
shasum $(GEN_SRC) | sort -k 2 > $(GEN_SUM).tmp
diff -q $(GEN_SUM).tmp $(GEN_SUM) || ( \
set -e; \
GO111MODULE=on go mod vendor; \
docker run \
--user=`id -u` \
--volume="$(PWD)/..:/go/src/berty.tech" \
--workdir="/go/src/berty.tech/go" \
--entrypoint="sh" \
--rm \
bertytech/protoc:19 \
-xec 'make generate_local'; \
make tidy \
)
.PHONY: generate_local
generate_local:
@set -e; for proto in $(PROTOS_SRC); do ( set -xe; \
protoc -I ../api:../go/vendor:/protobuf --gogofaster_out="plugins=grpc:$(GOPATH)/src" "$$proto" \
); done
goimports -w ./pkg ./cmd ./internal
shasum $(GEN_SRC) | sort -k 2 > $(GEN_SUM).tmp
mv $(GEN_SUM).tmp $(GEN_SUM)
vendor: go.mod
GO111MODULE=on go mod vendor
touch $@
print-%:
@echo $*: $($*)
include bazel.make