-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
103 lines (75 loc) · 2.81 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
# Maintain semantic version
# Also change in cmd/kutti/main.go
VERSION_MAJOR ?= 0
VERSION_MINOR ?= 3
BUILD_NUMBER ?= 2
PATCH_NUMBER ?=
VERSION_STRING = $(VERSION_MAJOR).$(VERSION_MINOR).$(BUILD_NUMBER)$(PATCH_NUMBER)
KUTTICMDFILES = cmd/kutti/*.go \
internal/pkg/cli/*.go \
internal/pkg/cmd/*.go \
internal/pkg/cmd/*/*.go \
go.mod \
Makefile
# Targets
.PHONY: usage
usage:
@echo "Usage: make linux|windows|mac|linux-install-script|windows-installer|mac-install-script|all|installers|clean"
out/:
mkdir out
out/kutti_linux_amd64: $(KUTTICMDFILES)
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o $@ -ldflags "-X main.version=${VERSION_STRING}" ./cmd/kutti/
out/get-kutti-linux.sh: build/package/posix-install-script/generate-script.sh out/
CURRENT_VERSION=${VERSION_STRING} GOOS=linux GOARCH=amd64 $< > $@
cmd/kutti/rsrc_windows_amd64.syso: cmd/kutti/winres/*
go-winres make --in=cmd/kutti/winres/winres.json --out=cmd/kutti/rsrc --arch=amd64 --product-version=${VERSION_STRING} --file-version=${VERSION_STRING}
out/kutti_windows_amd64.exe: $(KUTTICMDFILES) cmd/kutti/rsrc_windows_amd64.syso
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o $@ -ldflags "-X main.version=${VERSION_STRING}" ./cmd/kutti/
out/kutti-windows-installer.exe: build/package/kutti-windows-installer/kutti-windows-installer.nsi out/kutti_windows_amd64.exe
makensis -NOCD -V3 -- $<
out/kutti_darwin_amd64: $(KUTTICMDFILES)
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o $@ -ldflags "-X main.version=${VERSION_STRING}" ./cmd/kutti/
out/get-kutti-darwin.sh: build/package/posix-install-script/generate-script.sh out/
CURRENT_VERSION=${VERSION_STRING} GOOS=darwin GOARCH=amd64 $< > $@
.PHONY: linux
linux: out/kutti_linux_amd64
.PHONY: linux-install-script
linux-install-script: out/get-kutti-linux.sh
.PHONY: windows
windows: out/kutti_windows_amd64.exe
.PHONY: windows-installer
windows-installer: out/kutti-windows-installer.exe
.PHONY: mac
mac: out/kutti_darwin_amd64
.PHONY: mac-install-script
mac-install-script: out/get-kutti-darwin.sh
.PHONY: all
all: linux windows mac
.PHONY: installers
installers: linux-install-script windows-installer mac-install-script
.PHONY: resourceclean
resourceclean:
rm -f cmd/kutti/rsrc_windows_amd64.syso
.PHONY: binclean
binclean:
rm -r -f out/
.PHONY: clean
clean: resourceclean binclean
out/man:
mkdir -p out/man
.PHONY: manpagedocs
manpagedocs: out/man $(KUTTICMDFILES)
go run internal/cmd/gendoc/main.go -o out/man -t manpages
out/markdown:
mkdir -p out/markdown
.PHONY: markdowndocs
markdowndocs: out/markdown $(KUTTICMDFILES)
go run internal/cmd/gendoc/main.go -o out/markdown -t markdown
.PHONY: manpagedocsclean
manfiledocsclean:
rm -rf out/man
.PHONY: markdowndocsclean
markdowndocsclean:
rm -rf out/markdown
.PHONY: docsclean
docsclean: manfiledocsclean markdowndocsclean