Git init
[pkgs/e/elektra.git] / doc / Makefile.am
1 # $Id$
2
3 EXTRA_DIST=kdb.1.xml elektra.7.xml elektra.5.xml
4 EXTRA_DIST+=author.xml bestpract.xml rgexample.xml rgcmd.xml storage.xml overview.xml apiexample.xml api.xml compared.xml garbage.xml html-params.xsl html-titlepage-layout.tpl society.xml storage.xml UPLOAD
5 EXTRA_DIST+=docbook.css doxygen.css
6 #EXTRA_DIST+=elektra.odp
7 EXTRA_DIST+=$(all_mans)
8 EXTRA_DIST+= $(HTML_TITLE_LAYOUT_XSL)
9
10 SUBDIRS=images standards
11
12 # Dependencies for Doxygen documentation
13 # main...
14 DOXYSOURCES=$(srcdir)/../src/libelektra/*.c $(srcdir)/../src/include/*.h $(srcdir)/../src/Doxyfile
15
16 # tools...
17 DOXYSOURCES+=$(srcdir)/../src/libelektratools/kdbtools.c
18
19 # kdb command...
20 DOXYSOURCES+=$(srcdir)/../src/kdb/kdb-tool.c
21
22 # backend stuff...
23 DOXYSOURCES+=$(srcdir)/../src/backends/doc/backend.c
24
25 if HAVE_XSL
26
27 SUFFIXES: .xml .html .pdf .ps .rtf .xsl .fo .tpl
28 #
29 ## Build man documentation
30 #
31 man3_MANS =
32 # man pages are installed in any case, but not distributed if they
33 # annot be built
34 man1_MANS = kdb.1
35 man5_MANS = elektra.5
36 man7_MANS = elektra.7
37
38 all_mans = $(man1_MANS) $(man5_MANS) $(man7_MANS)
39
40 kdb.1: kdb.1.xml author.xml bestpract.xml rgexample.xml rgcmd.xml
41         $(xsltproc) $(dbroot)/manpages/docbook.xsl $<
42
43 elektra.7: elektra.7.xml author.xml overview.xml bestpract.xml rgexample.xml
44         $(xsltproc) $(dbroot)/manpages/docbook.xsl $<
45
46 elektra.5: elektra.5.xml author.xml storage.xml
47         $(xsltproc) $(dbroot)/manpages/docbook.xsl $<
48
49
50 #
51 # HTML and doc targets for the previous web site. Obsolete, unused for now
52 #
53
54 # howto.html dependencies and target (unused)
55 .xml.html:
56         $(xsltproc) -path . -o $@ ${HTML_TITLE_LAYOUT_XSL} $<
57
58 howto.html: howto.xml elektra.7.xml author.xml garbage.xml overview.xml bestpract.xml rgexample.xml rgcmd.xml storage.xml api.xml society.xml compared.xml api.xml apiexample.xml xorgpatch.xml initpatch.xml csource.xml ${HTML_TITLE_LAYOUT_XSL}
59
60 # Layout and configurations to generate HTML for the web site
61 HTML_TITLE_LAYOUT_XSL=html-titlepage-layout.xsl
62 #HTML_TITLE_LAYOUT=html-titlepage-layout.tpl
63 HTML_TITLE_LAYOUT=html-params.xsl
64
65 $(HTML_TITLE_LAYOUT_XSL): $(HTML_TITLE_LAYOUT)
66         -$(xsltproc) -o ${HTML_TITLE_LAYOUT_XSL} $(dbroot)/template/titlepage.xsl $(srcdir)/${HTML_TITLE_LAYOUT}
67
68 # web site
69 libelektra.org: howto.xml elektra.7.xml author.xml garbage.xml overview.xml bestpract.xml rgexample.xml rgcmd.xml storage.xml api.xml society.xml compared.xml api.xml apiexample.xml xorgpatch.xml initpatch.xml csource.xml elektra-api.tar.gz $(man_html) ${HTML_TITLE_LAYOUT_XSL}
70         $(xsltproc) -path . -stringparam base.dir $@ ${HTML_TITLE_LAYOUT_XSL} $<
71         -cp $(srcdir)/docbook.css $@/
72         -mkdir $@/images/
73         -cp -r images/*png images/*gif $@/images
74         -find elektra-api/html | cpio -pdvm $@
75         -cp elektra-api.tar.gz $@
76         -cp $(man_html) $@
77
78 else
79 # in case there are no man pages in source dir and the xsl tools
80 # are not installed, make install will fail without the files.
81 # this situation should be very rare, it could only happen
82 # from cvs (and without xsl tools) or after a make maintainer-clean
83 # or after a modification of the xml sources.
84 kdb.1: kdb.1.xml author.xml bestpract.xml rgexample.xml rgcmd.xml
85         touch $<
86
87 elektra.7: elektra.7.xml author.xml overview.xml bestpract.xml rgexample.xml
88         touch $<
89
90 elektra.5: elektra.5.xml author.xml storage.xml
91         touch $<
92
93
94 endif
95
96 # html generated from man pages.
97 if HAVE_MAN2HTML
98 man_html = kdb.1.html elektra.7.html elektra.5.html kdb.3.html key.3.html keyset.3.html
99
100 kdb.1.html: kdb.1
101         $(man2html) -r $< | sed -e 's|Content-type: text/html||; s|\"\.\.\/man.\/|\"|g; s|\"\.\.\/|\"|g;' > kdb.1.html
102
103 elektra.5.html: elektra.5
104         $(man2html) -r $< | sed -e 's|Content-type: text/html||; s|\"\.\.\/man.\/|\"|g; s|\"\.\.\/|\"|g;' > elektra.5.html
105
106 elektra.7.html: elektra.7
107         $(man2html) -r $< | sed -e 's|Content-type: text/html||; s|\"\.\.\/man.\/|\"|g; s|\"\.\.\/|\"|g;' > elektra.7.html
108
109 kdb.3.html: elektra-api
110         dir=.; \
111         if test -f elektra-api/man/man3/kdb.3; then dir=elektra-api/man/man3 ;\
112         else \
113           if test -f $(srcdir)/elektra-api/man/man3/kdb.3; then dir=$(srcdir)/elektra-api/man/man3 ; fi; \
114         fi; \
115         $(man2html) -r < $$dir/kdb.3 | sed -e 's|Content-type: text/html||; s|\"\.\.\/man.\/|\"|g; s|\"\.\.\/|\"|g;' > kdb.3.html
116
117 key.3.html: elektra-api
118         dir=.; \
119         if test -f elektra-api/man/man3/key.3; then dir=elektra-api/man/man3 ;\
120         else \
121           if test -f $(srcdir)/elektra-api/man/man3/key.3; then dir=$(srcdir)/elektra-api/man/man3 ; fi; \
122         fi; \
123         $(man2html) -r < $$dir/key.3 | sed -e 's|Content-type: text/html||; s|\"\.\.\/man.\/|\"|g; s|\"\.\.\/|\"|g;' > key.3.html
124
125 keyset.3.html: elektra-api
126         dir=.; \
127         if test -f elektra-api/man/man3/keyset.3; then dir=elektra-api/man/man3 ;\
128         else \
129           if test -f $(srcdir)/elektra-api/man/man3/keyset.3; then dir=$(srcdir)/elektra-api/man/man3 ; fi; \
130         fi; \
131         $(man2html) -r < $$dir/keyset.3 | sed -e 's|Content-type: text/html||; s|\"\.\.\/man.\/|\"|g; s|\"\.\.\/|\"|g;' > keyset.3.html
132 endif
133
134
135 # all: documentation
136
137 # html doxygen
138 # documentation: docbookman doxygen
139 # docbookman: kdb.1 elektra.7 elektra.5
140
141 develdoc_DATA = elektra-api
142 apihtmldir = $(develdocdir)/api-html
143
144 if HAVE_DOXYGEN
145 #
146 # Generate doxygen documentation
147 # This generate man for API too (see src/Doxyfile)
148 #
149 elektra-api.tar.gz: elektra-api
150         tar -zcf elektra-api.tar.gz elektra-api/html
151
152 elektra-api: $(DOXYSOURCES)
153         @echo "Making Doxygen..."
154         cd ../src/; srcdir=$(top_srcdir)/src $(doxygen) $(top_srcdir)/src/Doxyfile
155
156 clean-local:
157         rm -rf elektra-api
158         rm -rf libelektra.org
159
160
161 else
162 # fake target that is required when doxygen isn't found and the directory
163 # has to be created (make install, make dist)
164 elektra-api:
165         mkdir elektra-api
166
167 clean-local:
168         rm -rf elektra-api
169
170 endif
171
172 CLEANFILES = csource.xml \
173         $(man_html) \
174         $(HTML_TITLE_LAYOUT_XSL) \
175         xorgpatch.xml initpatch.xml \
176         elektra-api.tar.gz
177
178 MAINTAINERCLEANFILES = howto.html \
179         kdb.1 elektra.5 elektra.7
180
181 # putting in EXTRA_DIST doesn't work, since in that case it may be
182 # copied from srcdir and also from the current dir, leading to an error
183 dist-hook:
184         if test -d elektra-api/html; \
185           then cp -pR elektra-api $(distdir); \
186         else \
187           if test -d $(srcdir)/elektra-api; \
188             then cp -pR $(srcdir)/elektra-api $(distdir); \
189           fi; \
190         fi
191
192 install-develdocDATA: $(api_DATA)
193         @$(NORMAL_INSTALL)
194         $(mkinstalldirs) $(DESTDIR)$(apihtmldir)
195         @if test -d elektra-api/html/; then api_d=elektra-api/html/; \
196           else api_d=$(srcdir)/elektra-api/html/; \
197         fi; \
198         list=`find $$api_d`; for p in $$list; do \
199         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
200         f="`echo $$p | sed -e 's|^.*/||'`"; \
201           echo " $(develdocDATA_INSTALL) $$d$$p $(DESTDIR)$(apihtmldir)/$$f"; \
202           $(develdocDATA_INSTALL) $$d$$p $(DESTDIR)$(apihtmldir)/$$f; \
203         done
204
205 uninstall-develdocDATA:
206         -if test -d elektra-api/html/; then api_d=elektra-api/html/; \
207           else api_d=$(srcdir)/elektra-api/html/; \
208         fi; \
209         list=`find "$$api_d"`; for p in $$list; do \
210         f="`echo $$p | sed -e 's|^.*/||'`"; \
211           echo "rm -f $(DESTDIR)$(apihtmldir)/$$f"; \
212           rm -f $(DESTDIR)$(apihtmldir)/$$f; \
213          done
214         -rmdir $(DESTDIR)$(apihtmldir)
215
216 #       $(mkinstalldirs) $(DESTDIR)$(apimandir)
217 #       @list=`find elektra-api/man/man3`; for p in $$list; do \
218 #       if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
219 #       f="`echo $$p | sed -e 's|^.*/||'`"; \
220 #         echo " $(develdocDATA_INSTALL) $$d$$p $(DESTDIR)$(apimandir)/$$f"; \
221 #         $(develdocDATA_INSTALL) $$d$$p $(DESTDIR)$(apimandir)/$$f; \
222 #       done
223
224 install-man3: $(man3_MANS)
225         @$(NORMAL_INSTALL)
226         test -z "$(man3dir)" || $(mkdir_p) "$(DESTDIR)$(man3dir)"
227         @if test -d elektra-api/man/; then man_d=elektra-api/man/; \
228           else man_d=$(srcdir)/elektra-api/man/; \
229         fi; \
230         list=`find $$man_d -name "k[db,ey,s]*.3"` ; for i in $$list; do \
231         if test -f "$$i"; then d=; else d="$(srcdir)/"; fi; \
232           ext='3'; \
233           inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
234           inst=`echo $$inst | sed -e 's/^.*\///'`; \
235           inst=`echo $$inst | sed '$(transform)'`.$$ext; \
236           echo " $(INSTALL_DATA) $$d$$i $(DESTDIR)$(man3dir)/$$inst"; \
237           $(INSTALL_DATA) $$d$$i $(DESTDIR)$(man3dir)/$$inst; \
238         done
239
240
241 uninstall-man3:
242         @$(NORMAL_UNINSTALL)
243         -if test -d elektra-api/man/; then man_d=elektra-api/man/; \
244           else man_d=$(srcdir)/elektra-api/man/; \
245         fi; \
246         list=`find $$man_d -name "k[db,ey,s]*.3"` ; for i in $$list; do \
247           ext='3'; \
248           inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
249           inst=`echo $$inst | sed -e 's/^.*\///'`; \
250           inst=`echo $$inst | sed '$(transform)'`.$$ext; \
251           echo " rm -f '$(DESTDIR)$(man3dir)/$$inst'"; \
252           rm -f "$(DESTDIR)$(man3dir)/$$inst"; \
253         done
254