Add pluggable interface RST documentation
[krb5.git] / doc / Makefile
1 SRCDIR=../src
2 DVI=texi2dvi
3 DVIPS=dvips -o "$@"
4 PSPDF=ps2pdf
5 INFO=makeinfo
6 HTML=makeinfo --html --no-split
7 RM=rm -f
8 TAR=tar -chvf
9 GZIP=gzip -9
10 MANPS=./man2ps
11 MANTXT=nroff -man 
12 PERL=perl
13 MANHTML=$(PERL) man2html
14
15 ADMIN_INCLUDES=definitions.texinfo copyright.texinfo document-list.texinfo \
16         glossary.texinfo support-enc.texinfo salts.texinfo krb5conf.texinfo \
17         kdcconf.texinfo dnstxt.texinfo dnssrv.texinfo send-pr.texinfo
18 ADMIN_DEPS=admin.texinfo $(ADMIN_INCLUDES)
19
20 INSTALL_INCLUDES=definitions.texinfo copyright.texinfo document-list.texinfo \
21         dnstxt.texinfo dnssrv.texinfo build.texinfo bug-report.texinfo \
22         krb5conf.texinfo kdcconf.texinfo send-pr.texinfo
23 INSTALL_DEPS=install.texinfo $(INSTALL_INCLUDES)
24
25 MANPAGES=$(SRCDIR)/clients/kdestroy/kdestroy.M $(SRCDIR)/clients/kinit/kinit.M $(SRCDIR)/clients/klist/klist.M $(SRCDIR)/clients/ksu/ksu.M $(SRCDIR)/clients/kpasswd/kpasswd.M
26
27 USER_GUIDE_INCLUDES=definitions.texinfo copyright.texinfo glossary.texinfo
28 USER_GUIDE_DEPS=user-guide.texinfo $(USER_GUIDE_INCLUDES)
29
30 SPHINX_BUILD=sphinx-build
31
32 .PHONY: all
33 all:: admin-guide-full install-guide-full user-guide-full clean-temp-ps clean-tex
34
35 .PHONY: admin-guide-full
36 admin-guide-full:: admin-guide admin-guide-info admin-guide-html
37
38 .PHONY: admin-guide
39 admin-guide:: admin-guide.ps admin-guide.pdf
40
41 admin-guide.ps: $(ADMIN_DEPS)
42         $(DVI) admin.texinfo
43         $(DVIPS) admin
44
45 admin-guide.pdf: admin-guide.ps
46         $(PSPDF) admin-guide.ps admin-guide.pdf
47
48 .PHONY: admin-guide-html
49 admin-guide-html:: admin.html
50
51 admin.html: $(ADMIN_DEPS)
52         $(HTML) admin.texinfo
53
54 .PHONY: admin-guide-info
55 admin-guide-info:: krb5-admin.info
56
57 krb5-admin.info: $(ADMIN_DEPS)
58         $(INFO) admin.texinfo
59
60 .PHONY: install-guide-full
61 install-guide-full:: install-guide install-guide-info install-guide-html
62
63 .PHONY: install-guide
64 install-guide:: install-guide.ps install-guide.pdf
65
66 install-guide.ps: $(INSTALL_DEPS)
67         $(DVI) install.texinfo
68         $(DVIPS) install
69
70 install-guide.pdf: install-guide.ps
71         $(PSPDF) install-guide.ps install-guide.pdf
72
73 .PHONY: install-guide-html
74 install-guide-html:: install.html
75
76 install.html:: $(INSTALL_DEPS)
77         $(HTML) install.texinfo         
78
79 .PHONY: install-guide-info
80 install-guide-info:: krb5-install.info
81
82 krb5-install.info: $(INSTALL_DEPS)
83         $(INFO) install.texinfo
84
85 .PHONY: user-guide-full
86 user-guide-full:: user-guide user-guide-info user-guide-html
87
88 .PHONY: user-guide
89 user-guide:: user-guide.ps user-guide.pdf
90
91 user-guide.ps: $(USER_GUIDE_DEPS)
92         $(DVI) user-guide.texinfo
93         $(MANPS) $(MANPAGES)
94         $(DVIPS) user-guide
95
96 user-guide.pdf: user-guide.ps
97         $(PSPDF) user-guide.ps user-guide.pdf
98
99 .PHONY: user-guide-info
100 user-guide-info:: krb5-user.info
101
102 krb5-user.info: $(USER_GUIDE_DEPS)
103         $(INFO) user-guide.texinfo
104
105 .PHONY: user-guide-html
106 user-guide-html:: user-guide.html
107
108 user-guide.html: $(USER_GUIDE_DEPS)
109         $(MANTXT) $(SRCDIR)/clients/kdestroy/kdestroy.M | $(MANHTML) > kdestroy.html
110         $(MANTXT) $(SRCDIR)/clients/kinit/kinit.M | $(MANHTML) > kinit.html
111         $(MANTXT) $(SRCDIR)/clients/klist/klist.M | $(MANHTML) > klist.html
112         $(MANTXT) $(SRCDIR)/clients/ksu/ksu.M | $(MANHTML) > ksu.html
113         $(MANTXT) $(SRCDIR)/clients/kpasswd/kpasswd.M | $(MANHTML) > kpasswd.html
114         $(HTML) user-guide.texinfo              
115
116 .PHONY: implementor.ps implementor.pdf implementor.info
117 implementor.pdf: implementor.ps
118         $(PSPDF) implementor.ps
119 implementor.ps: implementor.texinfo
120         $(DVI) implementor.texinfo
121         $(DVIPS) implementor
122 implementor.info: implementor.texinfo
123         $(INFO) implementor.texinfo
124
125 .PHONY: clean
126 clean:: clean-all
127
128 .PHONY: clean-all
129 clean-all:: clean-tex clean-backup clean-final clean-tarfiles
130
131 .PHONY: clean-final
132 clean-final::
133         $(RM) *.ps *.info *.info-? *.html *.pdf
134
135 .PHONY: clean-tex
136 clean-tex::
137         $(RM) *.aux *.cp *.dvi *.fn *.ky *.log *.pg *.toc *.tp *.vr *.fns *.vrs *.tps
138
139 .PHONY: clean-backup
140 clean-backup::
141         $(RM) *~ #*
142
143 .PHONY: clean-tarfiles
144 clean-tarfiles::
145         $(RM) *.tar *.tar.gz *.tgz
146
147 .PHONY: clean-temp-ps
148 clean-temp-ps::
149         $(RM) ftp?.ps kinit?.ps klist?.ps kdestroy?.ps ksu?.ps rlogin?.ps \
150                 rcp?.ps rsh?.ps telnet?.ps kpasswd?.ps
151
152 .PHONY: tgz
153 tgz::
154         $(TAR) krb5-docs.tar admin.texinfo build.texinfo copyright.texinfo definitions.texinfo document-list.texinfo glossary.texinfo install.texinfo texinfo.tex user-guide.texinfo *-guide.ps *.info *.info-? *.html
155         $(GZIP) krb5-docs.tar
156         $(MV) krb5-docs.tar.gz krb5-docs.tgz
157
158 ../NOTICE: notice.texinfo definitions.texinfo copyright.texinfo
159         makeinfo --plaintext -o $@ notice.texinfo
160
161 RSTMAN=k5identity.5 k5login.5 k5srvutil.1 kadmin.1 kadmind.8 kdb5_ldap_util.8 \
162         kdb5_util.8 kdc.conf.5 kdestroy.1 kinit.1 klist.1 kpasswd.1 kprop.8 \
163         kpropd.8 kproplog.8 krb5.conf.5 krb5kdc.8 ksu.1 kswitch.1 ktutil.1 \
164         kvno.1
165
166 # The file editing loop deletes some trailing whitespace that the
167 # docutils manpage writer outputs near the end of its output files.
168 rstman::
169         $(SPHINX_BUILD) -q -b man rst_source ../src/man
170         (cd ../src/man && for f in $(RSTMAN); do \
171                 (echo '$$'; echo '?^.." $$?d'; echo 'w'; echo 'q' ) | ed $$f; \
172         done)