doc: Only generate Wayland documentation if xsltproc was found
[profile/ivi/wayland.git] / doc / Wayland / Makefile.am
1 publican_sources = \
2         $(srcdir)/en_US/Wayland.ent \
3         $(srcdir)/en_US/Architecture.xml \
4         $(srcdir)/en_US/Author_Group.xml \
5         $(srcdir)/en_US/Book_Info.xml \
6         $(srcdir)/en_US/Wayland.xml \
7         $(srcdir)/en_US/Protocol.xml \
8         $(srcdir)/en_US/Library.xml \
9         $(srcdir)/en_US/Compositors.xml \
10         $(srcdir)/en_US/Overview.xml \
11         $(srcdir)/en_US/images/icon.svg  \
12         $(srcdir)/en_US/images/wayland-architecture.png \
13         $(srcdir)/en_US/images/wayland.png  \
14         $(srcdir)/en_US/images/x-architecture.png
15
16 if HAVE_PUBLICAN
17 if HAVE_XSLTPROC
18 noinst_DATA = Wayland $(publican_targets)
19 pubdir = $(docdir)/Wayland/en-US
20
21 publican_targets = $(publican_sources:$(srcdir)/en_US%=$(builddir)/en-US%) \
22         en-US/ProtocolSpec.xml en-US/ProtocolInterfaces.xml \
23         en-US/WaylandClientAPI.xml
24
25 # The Protocol.xml is purely generated and required before running publican
26 en-US/ProtocolSpec.xml: $(top_srcdir)/protocol/wayland.xml $(srcdir)/protocol-to-docbook.xsl
27         $(AM_V_GEN)$(MKDIR_P) en-US/images
28         $(AM_V_GEN)$(XSLTPROC) $(srcdir)/protocol-to-docbook.xsl \
29                 $(top_srcdir)/protocol/wayland.xml > en-US/ProtocolSpec.xml
30
31 en-US/ProtocolInterfaces.xml: $(top_srcdir)/protocol/wayland.xml $(srcdir)/protocol-interfaces-to-docbook.xsl
32         $(AM_V_GEN)$(MKDIR_P) en-US/images
33         $(AM_V_GEN)$(XSLTPROC) $(srcdir)/protocol-interfaces-to-docbook.xsl \
34                 $(top_srcdir)/protocol/wayland.xml > en-US/ProtocolInterfaces.xml
35
36 # WaylandClientAPI.xml is generated after combining all xml in one single file
37 # with the exception of wayland-client_8h.xml that is omitted to not duplicate
38 # the output methods.
39 en-US/WaylandClientAPI.xml: $(top_builddir)/doc/doxygen/xml/index.xml $(srcdir)/doxygen-to-publican.xsl
40         $(AM_V_GEN)$(MKDIR_P) en-US/images
41         $(AM_V_GEN)mv $(top_builddir)/doc/doxygen/xml/wayland-client_8h.xml \
42                 $(top_builddir)/doc/doxygen/
43         $(AM_V_GEN)$(XSLTPROC) $(top_builddir)/doc/doxygen/xml/combine.xslt \
44                 $(top_builddir)/doc/doxygen/xml/index.xml > \
45                 $(top_builddir)/doc/doxygen/xml/clientAPI.xml
46         $(AM_V_GEN)mv $(top_builddir)/doc/doxygen/wayland-client_8h.xml \
47                 $(top_builddir)/doc/doxygen/xml
48         $(AM_V_GEN)$(XSLTPROC) $(srcdir)/doxygen-to-publican.xsl \
49                 $(top_builddir)/doc/doxygen/xml/clientAPI.xml > en-US/WaylandClientAPI.xml
50
51 # Copy the en_US source files into en-US destination
52 # This is required for out-of-source-tree build as publican does not allow us
53 # to specify the location of the source code.
54 $(builddir)/en-US/%: $(srcdir)/en_US/% en-US/ProtocolSpec.xml en-US/ProtocolInterfaces.xml en-US/WaylandClientAPI.xml $(publican_sources)
55         $(AM_V_GEN)cp -f $< $@
56         $(AM_V_GEN)chmod a+w $@
57
58 # Run publican for the builddir on the generated (or copied) source
59 # The output formats are generated in the Wayland sub directory. Also, we need
60 # to use a tmp publican.cfg cause 'publican rename' modifies the original.
61 Wayland: $(publican_targets)
62         $(AM_V_GEN)cp -f $(srcdir)/publican.cfg $(builddir)/publican-copy.cfg
63         $(AM_V_GEN)$(PUBLICAN) rename --name Wayland \
64                 --version "$(WAYLAND_VERSION_MAJOR).$(WAYLAND_VERSION_MINOR)" \
65                 --config $(builddir)/publican-copy.cfg
66         $(AM_V_GEN)$(PUBLICAN) build --quiet --lang en-US --format html,pdf \
67                 --config $(builddir)/publican-copy.cfg
68         @touch Wayland
69
70 CLEANFILES = en-US/ProtocolSpec.xml en-US/ProtocolInterfaces.xml en-US/WaylandClientAPI.xml $(publican_targets)
71
72 clean-local:
73         $(AM_V_at)rm -fr $(builddir)/en-US
74         $(AM_V_at)rm -fr $(builddir)/Wayland
75         $(AM_V_at)rm -fr $(builddir)/publican-copy.cfg
76
77 install-data-local:
78         test -z "$(pubdir)/html/Common_Content/css" || $(mkdir_p) "$(DESTDIR)$(pubdir)/html/Common_Content/css"
79         test -z "$(pubdir)/html/Common_Content/images" || $(mkdir_p) "$(DESTDIR)$(pubdir)/html/Common_Content/images"
80         test -z "$(pubdir)/html/images" || $(mkdir_p) "$(DESTDIR)$(pubdir)/html/images"
81         test -z "$(pubdir)/pdf" || $(mkdir_p) "$(DESTDIR)$(pubdir)/pdf"
82         test -z "$(pubdir)/xml/Common_Content/css" || $(mkdir_p) "$(DESTDIR)$(pubdir)/xml/Common_Content/css"
83         test -z "$(pubdir)/xml/Common_Content/images" || $(mkdir_p) "$(DESTDIR)$(pubdir)/xml/Common_Content/images"
84         test -z "$(pubdir)/xml/images" || $(mkdir_p) "$(DESTDIR)$(pubdir)/xml/images"
85         list=`find $(builddir)/Wayland/en-US -type f -not -path '$(builddir)/Wayland/en-US/xml_tmp*'`; \
86         for p in $$list; do \
87           echo " $(INSTALL_DATA) '$$p' '$(DESTDIR)$(docdir)/$$p'"; \
88           $(INSTALL_DATA) "$$p" "$(DESTDIR)$(docdir)/$$p"; \
89         done;
90
91 uninstall-local:
92         @if test -n $(DESTDIR)$(docdir); then \
93           if test -d $(DESTDIR)$(docdir); then \
94             echo " rm -fr $(DESTDIR)$(docdir)/Wayland;"; \
95             rm -fr $(DESTDIR)$(docdir)/Wayland; \
96           fi; \
97         fi;
98
99 endif
100 endif
101
102 EXTRA_DIST = $(publican_sources) publican.cfg protocol-to-docbook.xsl protocol-interfaces-to-docbook.xsl doxygen-to-publican.xsl