changelog
[fanfix.git] / man.d
1 # Requires variables: NAME, PREFIX (for install and uninstall only)
2
3 .PHONY: man mrpropre mrproper install uninstall
4
5 man: VERSION README.md README*.md
6 @if pandoc -v >/dev/null 2>&1; then \
7 ls README*.md 2>/dev/null \
8 | grep 'README\(-..\|\)\.md' \
9 | while read man; do \
10 lang="`echo "$$man" \
11 | sed 's:README\.md:en:' \
12 | sed 's:README-\(.*\)\.md:\1:'`"; \
13 echo "Processing language: $$lang..."; \
14 echo mkdir -p man/"$$lang"/man1; \
15 mkdir -p man/"$$lang"/man1; \
16 echo "pandoc [...] > man/$$lang"/man1/"${NAME}.1"; \
17 ( \
18 echo ".TH \"${NAME}\" 1 `\
19 date +%Y-%m-%d\
20 ` \"version `cat VERSION`\""; \
21 echo; \
22 UNAME="`echo "${NAME}" \
23 | sed 's:\(.*\):\U\1:g'`"; \
24 ( \
25 cat "$$man" | head -n1 \
26 | sed 's:.*(README\(-..\|\)\.md).*::g'; \
27 cat "$$man" | tail -n+2; \
28 ) | sed 's:^#\(#.*\):\1:g' \
29 | sed 's:^\(#.*\):\U\1:g;s:# *'"$$UNAME"':# NAME\n'"${NAME}"' \\- :g' \
30 | sed 's:--:——:g' \
31 | pandoc -f markdown -t man | sed 's:——:--:g' ; \
32 ) > man/"$$lang"/man1/"${NAME}.1"; \
33 done; \
34 echo mkdir -p "man/man1"; \
35 mkdir -p "man/man1"; \
36 echo cp man/en/man1/"${NAME}".1 man/man1/; \
37 cp man/en/man1/"${NAME}".1 man/man1/; \
38 else \
39 echo "man pages generation: pandoc required" >&2; \
40 false; \
41 fi; \
42
43 mrproper: mrpropre
44 mrpropre:
45 rm -f man/man1/*.1 man/*/man1/*.1
46 rmdir man/*/man1 man/* man 2>/dev/null || true
47
48 install:
49 @if [ -e "man/man1/$(NAME).1" ]; then \
50 echo mkdir -p "$(PREFIX)"/share/man; \
51 mkdir -p "$(PREFIX)"/share/man; \
52 echo cp -r man "$(PREFIX)"/share/; \
53 cp -r man "$(PREFIX)"/share/; \
54 else \
55 echo "No manual has been built (see \`make man')"; \
56 fi
57
58 uninstall:
59 @if [ -e "man/man1/$(NAME).1" ]; then \
60 find man/ -type f | while read -r page; do \
61 echo rm "$(PREFIX)/share/$$page";\
62 rm "$(PREFIX)/share/$$page";\
63 done; \
64 echo rmdir "$(PREFIX)/share/man" 2>/dev/null \|\| true; \
65 rmdir "$(PREFIX)/share/man" 2>/dev/null || true; \
66 rmdir "$(PREFIX)/share" 2>/dev/null || true; \
67 else \
68 echo "No manual has been built (see \`make man')"; \
69 fi
70