-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile
104 lines (79 loc) · 2.43 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
104
#!/usr/bin/make -f
SHELL := /bin/sh
prefix := /usr/local
exec_prefix := $(prefix)
bindir := $(exec_prefix)/bin
datarootdir := $(prefix)/share
mandir := $(datarootdir)/man
man1dir := $(mandir)/man1
man1ext := .1
srcdir := .
outdir := build
ifeq (,$(wildcard VERSION))
version := $(shell git describe --tags --always \
--match 'v[0-9]*\.[0-9]*\.[0-9]*' | tail -c +2)
else
version := $(shell cat VERSION)
endif
.SUFFIXES:
.DELETE_ON_ERROR:
################################################################################
.PHONY: all
all: $(outdir)/ticklet $(outdir)/man/ticklet$(man1ext)
$(outdir)/ticklet: $(srcdir)/ticklet.py
mkdir -p $(dir $@)
cp $^ $@
sed -i "s,^\(__version__ *= *\)'.*'$$,\1'$(version)'," $@
chmod +x $@
$(outdir)/man/ticklet$(man1ext): $(outdir)/ticklet $(srcdir)/man/ticklet.h2m
mkdir -p $(dir $@)
help2man -i $(word 2,$^) -o $@ $<
sed -ni '1,/usage:/{/usage:/!p}; /arguments:/,$$p' $@
################################################################################
.PHONY: install
install: $(DESTDIR)$(bindir)/ticklet \
$(DESTDIR)$(man1dir)/ticklet$(man1ext)
$(DESTDIR)$(bindir)/ticklet: $(outdir)/ticklet
mkdir -p $(dir $@)
install -m 0755 $^ $@
$(DESTDIR)$(man1dir)/%$(man1ext): $(outdir)/man/%$(man1ext)
mkdir -p $(dir $@)
install -m 0644 $^ $@
################################################################################
.PHONY: uninstall
uninstall:
rm $(DESTDIR)$(bindir)/ticklet
rm $(DESTDIR)$(man1dir)/ticklet$(man1ext)
################################################################################
.PHONY: clean
clean:
rm -rf $(outdir)
################################################################################
.PHONY: check
check:
@for test in tests/*; do \
echo "=== $$test" ;\
./$$test || exit $$? ;\
done
################################################################################
.PHONY: installcheck
installcheck:
@for test in tests/*; do \
echo "=== $$test" ;\
./$$test $(DESTDIR)$(bindir)/ticklet || exit $$? ;\
done
################################################################################
.PHONY: dist
dist: VERSION
tar cvzf ../ticklet_$(version).tar.gz \
--exclude-vcs \
--exclude-vcs-ignores \
--exclude $(outdir) \
--exclude debian \
--exclude .travis.yml \
--transform 's|^.|ticklet|' \
.
.INTERMEDIATE: VERSION
VERSION:
echo $(version) >$@
################################################################################