-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMakefile
More file actions
57 lines (42 loc) · 1.31 KB
/
Makefile
File metadata and controls
57 lines (42 loc) · 1.31 KB
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
export GO15VENDOREXPERIMENT = 1
VERSION = 1.0.0
PREFIX ?= /usr/local
MANPREFIX ?= $(PREFIX)/share/man
INSTALL ?= install
BIN = ec2-metadatafs
PACKAGES = $$(go list ./... | grep -v '/vendor/')
BINPACKAGE := github.com/jszwedko/ec2-metadatafs
.DEFAULT_GOAL := check
ifndef GOBIN
GOBIN := $(shell echo "$${GOPATH%%:*}/bin")
endif
LINT := $(GOBIN)/golint
GOX := $(GOBIN)/gox
$(LINT): ; @go get golang.org/x/lint/golint
$(GOX): ; @go get -v github.com/mitchellh/gox
.PHONY: build
build:
@go build -ldflags "-X main.VersionString=$(VERSION)" -o $(BIN) $(BINPACKAGE)
.PHONY: install
install: build
$(INSTALL) -m 0755 -d $(DESTDIR)$(PREFIX)/bin
$(INSTALL) -m 0755 $(BIN) $(DESTDIR)$(PREFIX)/bin
$(INSTALL) -m 0755 -d $(DESTDIR)$(MANPREFIX)/man1
$(INSTALL) -m 0644 $(BIN).1 $(DESTDIR)$(MANPREFIX)/man1
.PHONY: dist
dist: $(GOX)
@$(GOX) -ldflags "-X main.VersionString=$(VERSION) -X main.RevisionString=$(REVISION)" -os 'linux' -arch '386 amd64' -output 'dist/{{.OS}}_{{.Arch}}' .
.PHONY: release
release: dist
hub release create $$(for f in dist/* ; do echo -n "-a $$f " ; done) $(tag)
.PHONY: vet
vet:
@go vet $(PACKAGES)
.PHONY: lint
lint: $(LINT)
@exit $$(for dir in . metadatafs tagsfs ; do $(LINT) $$dir ; done | tee /dev/tty | wc -l)
.PHONY: test
test:
@go test -cover $(PACKAGES)
.PHONY: check
check: vet lint test build