1
1
# This makefile will build (via Cargo)
2
2
3
+ MAKEFLAGS =--warn-undefined-variables
3
4
VERSION =0.1.0
5
+ CARGO := $(shell command -v cargo 2> /dev/null)
6
+
4
7
8
+ # Install locations
5
9
DESTDIR =
10
+ MANFILE =msgpack.1
6
11
PREFIX =/usr/local
7
12
AUTOPFX =/usr/share
13
+ MANDEST =${DESTDIR}${PREFIX}/share/man/man1
14
+ BINDEST =${DESTDIR}${PREFIX}/bin
15
+ COMPDEST_BASH =${AUTOPFX}/bash-completion/completions
16
+ COMPDEST_FISH =${AUTOPFX}/fish/vendor_completions.d
17
+ COMPDEST_ZSH =${AUTOPFX}/zsh/vendor-completions
18
+
19
+ USE_RELEASED_INSTALL =0
20
+
21
+ ifeq ($(USE_RELEASED_INSTALL ) ,1)
22
+ BINSOURCE = .
23
+ MANSOURCE = doc
24
+ COMPLETESOURCE = completion
25
+ else
26
+ builddir =$(shell find target -name msgpack-stamp -print0 | xargs -0 ls -t | head -n1 | xargs dirname)
27
+ BINSOURCE = target/release
28
+ MANSOURCE = $(builddir )
29
+ COMPLETESOURCE = $(builddir )
30
+ endif
8
31
9
- MANDIR =${DESTDIR}/${PREFIX}/share/man
10
- BINDIR =${DESTDIR}/${PREFIX}/bin
11
- MANFILE =msgpack.1
12
-
13
- BASHACDIR ="${AUTOPFX}/bash-completion/completions
14
- FISHACDIR ="${AUTOPFX}/fish/vendor_completions.d
15
- ZSHACDIR ="${AUTOPFX}/zsh/vendor-completions
16
-
17
- CARGO := $(shell command -v cargo 2> /dev/null)
18
32
19
33
all : msgpack
20
34
@@ -31,42 +45,38 @@ ifeq ($(OS),Windows_NT)
31
45
$(error install does not yet work on Windows)
32
46
exit 1
33
47
endif
34
- $(info installing binary, manpages, and shell complete)
35
-
36
- BUILDDIR="$(find target -name msgpack-stamp -print0 | xargs -0 ls -t | head -n1 | xargs dirname)"
37
48
38
- # We override these in our release script
39
- BUILT_MANDIR=${BUILDDIR}
40
- BUILT_COMPLETEDIR=${BUILDDIR}
41
-
42
- install -d ${MANDIR}/man1
43
- install target/release/msgpack ${DESTDIR}/msgpack; \
44
- install -m 644 ${BUILT_MANDIR}/${MANFILE} ${MANDIR}/man1/${MANFILE}
45
-
46
- INSTALLEDAC=0
47
-
48
- if [ -d "${BASHACDIR}" ]; then \
49
- install ${BUILDDIR}/msgpack.bash ${BASHACDIR}/msgpack.bash; \
50
- $(info installed bash autocomplete); \
51
- INSTALLEDAC=1
52
- fi
53
-
54
- if [ -d "${FISHACDIR}" ]; then \
55
- install ${BUILDDIR}/msgpack.fish ${FISHACDIR}/msgpack.fish; \
56
- $(info installed fish autocomplete); \
57
- INSTALLEDAC=1
49
+ $(info installing binary, manpages, and shell completion scripts)
50
+ $(info binary source: ${BINSOURCE})
51
+ $(info manpage source: ${MANSOURCE})
52
+ $(info completion source: ${COMPLETESOURCE})
53
+
54
+ install -d ${BINDEST}
55
+ install -d ${MANDEST}
56
+ install ${BINSOURCE}/msgpack ${BINDEST}/msgpack
57
+ install -m 644 ${MANSOURCE}/${MANFILE} ${MANDEST}/${MANFILE}
58
+
59
+ INSTALLEDAC=0; \
60
+ if [ -d "${COMPDEST_BASH}" ]; then \
61
+ install "${COMPLETESOURCE}/msgpack.bash" "${COMPDEST_BASH}/msgpack.bash"; \
62
+ echo installed bash autocomplete; \
63
+ INSTALLEDAC=1; \
64
+ fi; \
65
+ if [ -d "${COMPDEST_FISH}" ]; then \
66
+ install "${COMPLETESOURCE}/msgpack.fish" "${COMPDEST_FISH}/msgpack.fish"; \
67
+ echo installed fish autocomplete; \
68
+ INSTALLEDAC=1; \
69
+ fi; \
70
+ if [ -d "${COMPDEST_ZSH}" ]; then \
71
+ install "${COMPLETESOURCE}/_msgpack" "${COMPDEST_ZSH}/_msgpack"; \
72
+ echo installed zsh autocomplete; \
73
+ INSTALLEDAC=1; \
74
+ fi; \
75
+ if [ "$${INSTALLEDAC}" = "0" ]; then \
76
+ echo did not find any directorys to install autocompletion scripts; \
58
77
fi
59
78
60
- if [ -d "${ZSHACDIR}" ]; then \
61
- install ${BUILDDIR}/_msgpack ${ZSHACDIR}/_msgpack; \
62
- $(info installed zsh autocomplete); \
63
- INSTALLEDAC=1
64
- fi
65
-
66
- ifeq (${INSTALLEDAC},0)
67
- $(info did not find any directorys to install autocompletion scripts)
68
- endif
69
-
79
+ $(info install completed successfully)
70
80
71
81
clean :
72
82
ifndef CARGO
78
88
79
89
uninstall :
80
90
$(info cleaning install directory)
81
- rm -f ${DESTDIR } /msgpack
82
- rm -f ${MANDIR } /man1/${MAN }
83
- rm -f ${BASHACDIR } /msgpack.bash
84
- rm -f ${FISHACDIR } /msgpack.fish
85
- rm -f ${ZSHACDIR } /_msgpack
91
+ rm -f ${BINDEST } /msgpack
92
+ rm -f ${MANDEST } /man1/${MANFILE }
93
+ rm -f ${COMPDEST_BASH } /msgpack.bash
94
+ rm -f ${COMPDEST_FISH } /msgpack.fish
95
+ rm -f ${COMPDEST_ZSH } /_msgpack
0 commit comments