forked from canonical/lxd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
107 lines (85 loc) · 3.05 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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
DOMAIN=lxd
POFILES=$(wildcard po/*.po)
MOFILES=$(patsubst %.po,%.mo,$(POFILES))
LINGUAS=$(basename $(POFILES))
POTFILE=po/$(DOMAIN).pot
# dist is primarily for use when packaging; for development we still manage
# dependencies via `go get` explicitly.
# TODO: use git describe for versioning
VERSION=$(shell grep "var Version" shared/version/flex.go | cut -d'"' -f2)
ARCHIVE=lxd-$(VERSION).tar
TAGS=$(shell test -e /usr/include/sqlite3.h && echo "-tags libsqlite3")
.PHONY: default
default:
go get -t -v -d ./...
go install -v $(TAGS) $(DEBUG) ./...
@echo "LXD built successfully"
.PHONY: client
client:
go get -t -v -d ./...
go install -v $(TAGS) $(DEBUG) ./lxc
@echo "LXD client built successfully"
.PHONY: update
update:
go get -t -v -d -u ./...
@echo "Dependencies updated"
.PHONY: debug
debug:
go get -t -v -d ./...
go install -v $(TAGS) -tags logdebug $(DEBUG) ./...
@echo "LXD built successfully"
# This only needs to be done when migrate.proto is actually changed; since we
# commit the .pb.go in the tree and it's not expected to change very often,
# it's not a default build step.
.PHONY: protobuf
protobuf:
protoc --go_out=. ./lxd/migrate.proto
.PHONY: check
check: default
go get -v -x github.com/rogpeppe/godeps
go get -v -x github.com/remyoudompheng/go-misc/deadcode
go get -v -x github.com/golang/lint/golint
go test -v $(TAGS) $(DEBUG) ./...
cd test && ./main.sh
gccgo:
go build -v $(TAGS) $(DEBUG) -compiler gccgo ./...
@echo "LXD built successfully with gccgo"
.PHONY: dist
dist:
# Cleanup
rm -Rf $(ARCHIVE).gz
# Create build dir
$(eval TMP := $(shell mktemp -d))
git archive --prefix=lxd-$(VERSION)/ HEAD | tar -x -C $(TMP)
mkdir -p $(TMP)/dist/src/github.com/lxc
ln -s ../../../../lxd-$(VERSION) $(TMP)/dist/src/github.com/lxc/lxd
# Download dependencies
cd $(TMP)/lxd-$(VERSION) && GOPATH=$(TMP)/dist go get -t -v -d ./...
# Workaround for gorilla/mux on Go < 1.7
cd $(TMP)/lxd-$(VERSION) && GOPATH=$(TMP)/dist go get -v -d github.com/gorilla/context
# Assemble tarball
rm $(TMP)/dist/src/github.com/lxc/lxd
ln -s ../../../../ $(TMP)/dist/src/github.com/lxc/lxd
mv $(TMP)/dist $(TMP)/lxd-$(VERSION)/
tar --exclude-vcs -C $(TMP) -zcf $(ARCHIVE).gz lxd-$(VERSION)/
# Cleanup
rm -Rf $(TMP)
.PHONY: i18n update-po update-pot build-mo static-analysis
i18n: update-po update-pot
po/%.mo: po/%.po
msgfmt --statistics -o $@ $<
po/%.po: po/$(DOMAIN).pot
msgmerge -U po/$*.po po/$(DOMAIN).pot
update-po:
for lang in $(LINGUAS); do\
msgmerge -U $$lang.po po/$(DOMAIN).pot; \
rm -f $$lang.po~; \
done
update-pot:
go get -v -x github.com/snapcore/snapd/i18n/xgettext-go/
xgettext-go -o po/$(DOMAIN).pot --add-comments-tag=TRANSLATORS: --sort-output --package-name=$(DOMAIN) --msgid-bugs-address=lxc-devel@lists.linuxcontainers.org --keyword=i18n.G --keyword-plural=i18n.NG *.go shared/*.go lxc/*.go lxd/*.go
build-mo: $(MOFILES)
static-analysis:
/bin/bash -x -c ". test/static_analysis.sh; static_analysis"
tags: *.go lxd/*.go shared/*.go lxc/*.go
find . | grep \.go | grep -v git | grep -v .swp | grep -v vagrant | xargs gotags > tags