Add manual pages to RTD as individual files
[ric-plt/lib/rmr.git] / doc / src / rtd / Makefile
1 # vim: ts=4 noet sw=4:
2 #==================================================================================
3 #       Copyright (c) 2019 Nokia
4 #       Copyright (c) 2018-2019 AT&T Intellectual Property.
5 #
6 #   Licensed under the Apache License, Version 2.0 (the "License");
7 #   you may not use this file except in compliance with the License.
8 #   You may obtain a copy of the License at
9 #
10 #       http://www.apache.org/licenses/LICENSE-2.0
11 #
12 #   Unless required by applicable law or agreed to in writing, software
13 #   distributed under the License is distributed on an "AS IS" BASIS,
14 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 #   See the License for the specific language governing permissions and
16 #   limitations under the License.
17 #==================================================================================
18
19 # This is a stand-alone make file as the RTD documentation is NOT built and packaged
20 # with the normal CMake process and thus isn't covered in the CMake files.
21
22 # {X}fm is required to compile the source. 
23
24
25 %.rst:: %.xfm   man_list.im
26         OUTPUT_TYPE=rst tfm $< | sed 's/^ //' >$@
27
28 %.ps:: %.xfm    man_list.im
29         OUTPUT_TYPE=ps pfm $< $@
30
31 %.txt:: %.xfm   man_list.im
32         OUTPUT_TYPE=txt tfm $< $@
33
34 %.md:: %.xfm    man_list.im
35         OUTPUT_TYPE=markdown tfm $<  | sed 's/^ //' >$@
36
37 docs = config-deploy developer-guide user-guide rel-notes overview
38
39 all:: $(docs:%=%.rst) $(docs:%=%.txt) $(docs:%=%.md)
40
41 man_list.im:: always
42         bash gen_man_list.sh >man_list.im
43
44 rel-notes.xfm:: always
45         ksh fmt_changes.ksh >rel-notes.xfm
46
47
48 # we force the docs to always be out of date so that we don't have to
49 # manage the list of man pages and other files that are read to generate the
50 # output needed for RTD.
51 #
52 $(docs:%=%.rst): always
53 $(docs:%=%.txt): always
54 $(docs:%=%.md): always
55
56
57 # copy the .rst files which have changed into the docs (plural) directory at the root of the repo
58 publish : $(docs:%=%.rst)
59         bash publish_man.sh;\
60         for f in *.rst;\
61         do\
62                 if ! diff -N -q $$f ../../../docs/$$f >/dev/null 2>&1;\
63                 then\
64                         cp -p $$f ../../../docs/;\
65                 fi;\
66         done
67
68 # just list what would be published
69 verify : $(docs:%=%.rst)
70         for f in *.rst;\
71         do\
72                 if ! diff -N -q $$f ../../../docs/$$f >/dev/null 2>&1;\
73                 then\
74                         echo "$$f would be published";\
75                 fi;\
76         done
77
78 # ditch any intermediate files
79 clean:
80         rm -f rel-notes.xfm *.sp *.ca
81
82 # ditch anything that can be rebuilt
83 nuke: clean
84         rm -f *.ps *.pdf *.rst *.md *.txt
85
86 # make hack to force a rule to always be out of date
87 always: