-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
144 lines (116 loc) · 4.74 KB
/
Makefile
File metadata and controls
144 lines (116 loc) · 4.74 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
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# wallust See LICENSE file for copyright and license details.
VERSION = 3.3.0
# Customize below to fit your system
# paths
PREFIX ?= /usr/local
MANPREFIX ?= ${PREFIX}/share/man
CARGO ?= /usr/bin/cargo
# bsd
#PREFIX = /usr/pkg
#MANPREFIX = ${PREFIX}/man
#CARGO = ${PREFIX}/bin/cargo
# Hardcoded completions paths
ZSHPREFIX = ${PREFIX}/share/zsh/site-functions
BASHPREFIX = ${PREFIX}/share/bash-completion/completions
FISHPREFIX = ${PREFIX}/share/fish/vendor_completions.d
# Some common (and "universal") targets for pkg-nix and pkg-win
# used by `pkg-nix`
NIX=x86_64-unknown-linux-musl
#NIX=x86_64-apple-darwin
# used by `pkg-win`
WIN=x86_64-pc-windows-gnu
# Redefine this variable if you use a given TARGET
RELEASE = target/release
# https://stackoverflow.com/a/32696474
CARGOFLAGS = --release
all: ${RELEASE}/wallust
${RELEASE}/wallust:
@${CARGO} build ${CARGOFLAGS}
assets: man completions schema update-docs
# The generated completion could differ if `themes` compiletime feature is disabled.
completions:
@echo "GENERATING SHELL COMPLETIONS"
@${CARGO} test --quiet --features=buildgen --test=completions
# Here, however, if `themes is disabled, you only need to omit `wallust-themes.1` man page.
# also no need to rebuilt it on install, since by default, the repo includes them.
man:
@echo "GENERATING MAN PAGES"
@${CARGO} test --quiet --features=buildgen --test=man
schema:
@echo "GENERATING JSON SCHEMA"
@${CARGO} test --quiet --features=schema --test=jsonschema
update-docs:
@echo "UPDATING MDBOOK DOCUMENTATION"
@${CARGO} test --quiet --features=buildgen --test=docs
dist: clean
mkdir -p wallust-${VERSION}
cp -R LICENSE Makefile README.md wallust.toml Cargo.toml Cargo.lock src/* man/* completions/* wallust-${VERSION}
tar -cf wallust-${VERSION}.tar wallust-${VERSION}
gzip wallust-${VERSION}.tar
rm -rf wallust-${VERSION}
docs: book/
mdbook build
serve-docs: book/
mdbook serve
install-completions: ## installs completions files
mkdir -p ${DESTDIR}${ZSHPREFIX}
cp -f completions/_wallust ${DESTDIR}${ZSHPREFIX}/_wallust
mkdir -p ${DESTDIR}${BASHPREFIX}
cp -f completions/wallust.bash ${DESTDIR}${BASHPREFIX}/wallust.bash
mkdir -p ${DESTDIR}${FISHPREFIX}
cp -f completions/wallust.fish ${DESTDIR}${FISHPREFIX}/wallust.fish
install-man: ## installs completions files
mkdir -p ${DESTDIR}${MANPREFIX}/man1
mkdir -p ${DESTDIR}${MANPREFIX}/man5
cp -f man/wallust.1 man/wallust-theme.1 man/wallust-cs.1 man/wallust-run.1 $(DESTDIR)$(MANPREFIX)/man1
cp -f man/wallust.5 $(DESTDIR)$(MANPREFIX)/man5
chmod 644 ${DESTDIR}${MANPREFIX}/man1/wallust.1 \
${DESTDIR}${MANPREFIX}/man5/wallust.5 \
${DESTDIR}${MANPREFIX}/man1/wallust-cs.1 \
${DESTDIR}${MANPREFIX}/man1/wallust-run.1 \
${DESTDIR}${MANPREFIX}/man1/wallust-theme.1
install: all install-completions install-man
mkdir -p ${DESTDIR}${PREFIX}/bin
cp -f ${RELEASE}/wallust ${DESTDIR}${PREFIX}/bin
chmod 755 ${DESTDIR}${PREFIX}/bin/wallust
uninstall:
rm -f ${DESTDIR}${PREFIX}/bin/wallust \
${DESTDIR}${MANPREFIX}/man1/wallust.1 \
${DESTDIR}${MANPREFIX}/man1/wallust-theme.1 \
${DESTDIR}${MANPREFIX}/man1/wallust-cs.1 \
${DESTDIR}${MANPREFIX}/man1/wallust-run.1 \
${DESTDIR}${MANPREFIX}/man5/wallust.5 \
${ZSHPREFIX}/_wallust \
${BASHPREFIX}/wallust.bash \
${FISHPREFIX}/wallust.fish
pkg-nix-with-assets:
@${CARGO} build --release --target ${NIX}
mkdir -p wallust-${VERSION}-${NIX}-with-assets/
cp -f target/${NIX}/release/wallust wallust-${VERSION}-${NIX}-with-assets/wallust
cp -fr completions/ wallust-${VERSION}-${NIX}-with-assets
cp -fr man/ wallust-${VERSION}-${NIX}-with-assets
tar czvf wallust-${VERSION}-${NIX}-with-assets.tar.gz wallust-${VERSION}-${NIX}-with-assets
rm -fr wallust wallust-${VERSION}-${NIX}-with-assets
pkg-nix:
@${CARGO} build --release --target ${NIX}
cp -f target/${NIX}/release/wallust wallust
tar czvf wallust-${VERSION}-${NIX}.tar.gz wallust
rm -f wallust
pkg-win-with-assets:
@${CARGO} build --release --target ${WIN}
mkdir -p wallust-${VERSION}-${WIN}-with-assets/
cp -f target/${WIN}/release/wallust.exe wallust-${VERSION}-${WIN}-with-assets/wallust.exe
cp -fr completions/ wallust-${VERSION}-${WIN}-with-assets
cp -fr man/ wallust-${VERSION}-${WIN}-with-assets
tar czvf wallust-${VERSION}-${WIN}-with-assets.tar.gz wallust-${VERSION}-${WIN}-with-assets
rm -fr wallust.exe wallust-${VERSION}-${WIN}-with-assets
pkg-win: ## can't be generalized out because of the .exe
@${CARGO} build --release --target ${WIN}
cp -f target/${WIN}/release/wallust.exe wallust.exe
tar czvf wallust-${VERSION}-${WIN}.tar.gz wallust.exe
rm -f wallust.exe
mostlyclean:
rm -f ${RELEASE}/wallust
clean:
@${CARGO} clean
.PHONY: all clean mostlyclean dist install uninstall install-completions completions man config