-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
69 lines (51 loc) · 1.4 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
SHELL := bash
.ONESHELL:
.SHELLFLAGS := -eu -o pipefail -c
.DELETE_ON_ERROR:
MAKEFLAGS += --warn-undefined-variables
MAKEFLAGS += --no-builtin-rules
PREFIX := /usr/local
BINDIR := $(PREFIX)/bin
DATADIR := $(PREFIX)/share
MANDIR := $(DATADIR)/man
DESTDIR :=
.PHONY: all
all: bin data
.PHONY: bin
bin: vm
.PHONY: data
data: vm.fish vm.bash vm.1.gz
vm: *.go cmd/vm/*.go
go build ./cmd/vm
vm.fish: cmd/vm/*.go
go run ./cmd/vm --generate-fish-completion > $@
vm.bash: cmd/vm/*.go
go run ./cmd/vm --generate-bash-completion > $@
vm.1: cmd/vm/*.go
go run ./cmd/vm --generate-man-page > $@
vm.1.gz: vm.1
gzip -k $^
USAGE.md: cmd/vm/*.go
go run ./cmd/vm --generate-markdown > $@
.PHONY: clean
clean:
-rm vm
-rm vm.1
-rm vm.1.gz
-rm vm.fish
-rm vm.bash
.PHONY: install install-bin install-man install-data uninstall
install: install-bin install-man install-data
install-bin: vm
install -D -m755 -t $(DESTDIR)/$(BINDIR) $^
install-man: vm.1.gz
install -D -m644 -t $(DESTDIR)/$(MANDIR)/man1 $^
install-data: vm.fish vm.bash
install -D -m644 -t $(DESTDIR)/$(DATADIR)/fish/completions vm.fish
install -d $(DESTDIR)/$(DATADIR)/bash-completion/completions
install -m644 -T vm.bash $(DESTDIR)/$(DATADIR)/bash-completion/completions/vm
uninstall:
rm $(DESTDIR)/$(BINDIR)/vm
rm $(DESTDIR)/$(MANDIR)/man1/vm.1.gz
rm $(DESTDIR)/$(DATADIR)/bash-completion/completions/vm
rm $(DESTDIR)/$(DATADIR)/fish/completions/vm.fish