-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
47 lines (37 loc) · 1.32 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
NAME=ifwatch
VER=0.0.1
REL=1
SRC=github.com/imc-trading/ifwatch
all: build
deps:
go get -u golang.org/x/lint/golint
go get -u github.com/kisielk/errcheck
go get -u github.com/Masterminds/glide/...
proto:
protoc -I network/ network/network.proto --go_out=plugins=grpc:network/
clean:
rm -f $(NAME) $(NAME)-*.rpm $(NAME)-*.tar.gz $(NAME).1 $(NAME).toml.5
which docker &>/dev/null && docker rm $(NAME) || true
format:
gofmt -w .
test: format
golint -set_exit_status .
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go vet .
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 errcheck .
# go test . -v -covermode=atomic
man:
pandoc man/${NAME}.1.md -s -t man -o ${NAME}.1
pandoc man/${NAME}.toml.5.md -s -t man -o ${NAME}.toml.5
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-X main.version=$(VER)"
rpm: clean
tar -czf $(NAME)-$(VER)-$(REL).tar.gz --exclude $(NAME)-$(VER)-$(REL).tar.gz . || true
docker build --pull=true \
--build-arg NAME=$(NAME) \
--build-arg VER=$(VER) \
--build-arg REL=$(REL) \
--build-arg SRC=$(SRC) -t $(NAME):latest .
cid=$$(docker create -ti --name $(NAME) $(NAME):latest true) ;\
docker cp $$cid:/root/rpmbuild/RPMS/x86_64/$(NAME)-$(VER)-$(REL).x86_64.rpm . ;\
docker cp $$cid:/root/rpmbuild/SRPMS/$(NAME)-$(VER)-$(REL).src.rpm .
.PHONY: all deps proto clean format test man build linux rpm