aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: e5c58eb28b468512e9e42c2483e6b1fa55fa5556 (plain) (blame)
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
.POSIX:
PREFIX       = /usr
SHAREDIR     = $(PREFIX)/share
MANDIR       = $(SHAREDIR)/man
VERSION      = 0.3.0
DATE         = 2022-11-25
NAME         = remembering
MAILING_LIST = public-inbox


.SUFFIXES:
.SUFFIXES: .in

.in:
	sed \
		-e 's:@VERSION@:$(VERSION):g' \
		-e 's:@DATE@:$(DATE):g'       \
		-e 's:@NAME@:$(NAME):g'       \
		< $< > $@
	if [ -x $< ]; then chmod +x $@; fi


manpages.en.in = \
	doc/remembering.en.1.in \
	doc/remembering.en.5.in
manpages.in = $(manpages.en.in) \
	doc/remembering.pt.1.in \
	doc/remembering.fr.1.in \
	doc/remembering.eo.1.in \
	doc/remembering.pt.5.in \
	doc/remembering.fr.5.in \
	doc/remembering.eo.5.in
manpages = $(manpages.in:.in=)



all: src/remembering $(manpages)


src/remembering: src/remembering.in

test-files = \
	tests/cli-opts.sh \
	tests/ranking.sh  \
	tests/signals.sh  \

$(test-files): src/remembering ALWAYS
	sh $@

check: $(test-files)

clean:
	rm -rf \
		public/ $(manpages) *.*.md *.sentinel doc/*.html *.html        \
		src/remembering tests/test-profiles/ aux/preamble-md           \
		aux/generated.mk aux/checks/manpages/*.0

install: all
	mkdir -p '$(DESTDIR)$(PREFIX)/bin'
	cp src/remembering '$(DESTDIR)$(PREFIX)/bin'
	sh doc/manpages.sh -ip '$(DESTDIR)$(MANDIR)' $(manpages)

uninstall:
	rm -f '$(DESTDIR)$(PREFIX)/bin/remembering'
	sh doc/manpages.sh -up '$(DESTDIR)$(MANDIR)' $(manpages)


#
# Personal workflow targets
#

dist:
	sh aux/workflow/dist.sh -d '$(DATE)' -V '$(VERSION)' -n '$(NAME)'

public: TODOs.md README.md CHANGELOG.md po/po4a.cfg $(manpages)
	$(MAKE) -f aux/dev.mk public \
		manpages.in='$(manpages.in)' \
		md_files="`echo *.??.md`" \
		MAILING_LIST='$(MAILING_LIST)'

po/po4a.cfg: ALWAYS
	$(MAKE) -f aux/dev.mk $@ en_files='$(manpages.en.in)'

dev: all check public
	$(MAKE) -f aux/dev.mk check MAILING_LIST='$(MAILING_LIST)'


ALWAYS: