doc
[nikiroo-utils.git] / man.d
CommitLineData
8dd68dca
NR
1# Requires variables: NAME, PREFIX (for install and uninstall only)
2
3.PHONY: man clean mrpropre mrproper install uninstall
4
5man: 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
43clean:
44 # nothing to clean for the manual
45mrproper: mrpropre
46mrpropre: clean
47 rm -f man/man1/*.1 man/*/man1/*.1
48 rmdir man/*/man1 man/* man 2>/dev/null || true
49
50install:
51 @if [ -e "man/man1/$(NAME).1" ]; then \
52 echo mkdir -p "$(PREFIX)"/share/man; \
53 mkdir -p "$(PREFIX)"/share/man; \
54 echo cp -r man "$(PREFIX)"/share/; \
55 cp -r man "$(PREFIX)"/share/; \
56 else \
57 echo "No manual has been built (see \`make man')"; \
58 fi
59
60uninstall:
61 @if [ -e "man/man1/$(NAME).1" ]; then \
62 find man/ -type f | while read -r page; do \
63 echo rm "$(PREFIX)/share/$$page";\
64 rm "$(PREFIX)/share/$$page";\
65 done; \
66 echo rmdir "$(PREFIX)/share/man" 2>/dev/null \|\| true; \
67 rmdir "$(PREFIX)/share/man" 2>/dev/null || true; \
68 rmdir "$(PREFIX)/share" 2>/dev/null || true; \
69 else \
70 echo "No manual has been built (see \`make man')"; \
71 fi
72