build: Replace non-portable cp -d
[profile/ivi/rygel.git] / doc / reference / doc-build.am
1 # Other Makefile.am files should set:
2 # VALA_SOURCE_FILES, VALA_SOURCE_FILES_WITH_PATHS, 
3 # RYGEL_DOCBUILD_VALADOC_FLAGS, RYGEL_DOCBUILD_MODULE
4 # and RYGEL_DOCBUILD_EXTRA_GTKDOC_OPTIONS
5 # and the include this .am file.
6
7 if ENABLE_VALADOC
8
9 VALADOC_FLAGS = --force \
10                 --vapidir $(top_srcdir)/src/lib$(RYGEL_DOCBUILD_MODULE) \
11                 $(RYGEL_DOCBUILD_VALADOC_FLAGS) \
12                 --target-glib=2.32 \
13                 --vapidir=$(rygeldir) \
14                 --pkg rygel-build-config \
15                 -b $(top_srcdir)/src/lib$(RYGEL_DOCBUILD_MODULE) \
16                 --package-name lib$(RYGEL_DOCBUILD_MODULE) \
17                 --package-version 2.2 \
18                 $(VALA_SOURCE_FILES_WITH_PATHS)
19
20
21 valadoc-gen: $(VALA_SOURCE_FILES_WITH_PATHS)
22         $(AM_V_GEN)$(VALADOC) \
23                 -o valadoc \
24                 $(VALADOC_FLAGS)
25
26 # Avoid regeneration of the html if none of its dependencies have changed:
27 gtkdoc/html/index.html: gtkdoc-gen
28
29 # The use of extra .xml DocBook files, just for the gtk-doc output
30 # (in RYGEL_GTKDOC_DOCS_XML_EXTRA),
31 # will be unnecessary when valadoc has some way to add extra pages of
32 # documentation. See https://bugzilla.gnome.org/show_bug.cgi?id=680798
33 # The whole gtk-doc build might then get much simpler like it once was:
34 # http://git.gnome.org/browse/rygel/commit/doc/reference/Makefile.am?id=80b68029d42fec3fbbb9c0dbdda99c065bddcb0f
35 RYGEL_GTKDOC_DOCS_XML = \
36         $(top_srcdir)/doc/reference/lib$(RYGEL_DOCBUILD_MODULE)/gtkdoc/lib$(RYGEL_DOCBUILD_MODULE)-docs.xml \
37         $(top_srcdir)/doc/reference/lib$(RYGEL_DOCBUILD_MODULE)/gtkdoc/overview.xml $(RYGEL_GTKDOC_DOCS_XML_EXTRA)
38
39 gtkdoc-gen: $(VALA_SOURCE_FILES_WITH_PATHS) $(RYGEL_GTKDOC_DOCS_XML)
40         @rm -rf gtkdoc/html
41         $(AM_V_GEN)$(VALADOC) \
42                 -X $(top_srcdir)/src/lib$(RYGEL_DOCBUILD_MODULE)/$(RYGEL_DOCBUILD_MODULE).h \
43                 $(RYGEL_DOCBUILD_EXTRA_GTKDOC_OPTIONS) \
44                 -X -l -X $(top_builddir)/src/lib$(RYGEL_DOCBUILD_MODULE)/.libs/lib$(RYGEL_DOCBUILD_MODULE)-2.2.so \
45                 -o gtkdoc \
46                 --doclet gtkdoc \
47                 $(VALADOC_FLAGS)
48                 
49 clean-local:
50         rm -rf valadoc gtkdoc/html
51         rm -f gtkdoc/html.stamp
52         rm -f gtkdoc/sgml.stamp
53         rm -rf gtkdoc/ccomments
54         rm -rf gtkdoc/xml
55         rm -rf gtkdoc/cscan
56         rm -f gtkdoc/lib$(RYGEL_DOCBUILD_MODULE).args
57         rm -f gtkdoc/lib$(RYGEL_DOCBUILD_MODULE).interfaces
58         rm -f gtkdoc/lib$(RYGEL_DOCBUILD_MODULE).hierarchy
59         rm -f gtkdoc/lib$(RYGEL_DOCBUILD_MODULE).signals
60         rm -f gtkdoc/lib$(RYGEL_DOCBUILD_MODULE).types
61         rm -f gtkdoc/lib$(RYGEL_DOCBUILD_MODULE)*.txt
62         rm -f gtkdoc/lib$(RYGEL_DOCBUILD_MODULE).prerequisites
63
64 all: valadoc-gen gtkdoc-gen
65
66 # The chmod corrects the directory permissions so that distcheck can remove the installed files.
67 install-data-hook: gtkdoc/html/index.html
68         $(MKDIR_P) $(RYGEL_GTKDOC_INSTALL_DIR)
69         cp -p -R $(srcdir)/gtkdoc/html/* $(RYGEL_GTKDOC_INSTALL_DIR)
70         chmod -R u+w $(RYGEL_GTKDOC_INSTALL_DIR)
71
72 else
73 install-data-hook:
74         test -d $(srcdir)/gtkdoc/html && $(MKDIR_P) $(RYGEL_GTKDOC_INSTALL_DIR); true
75         test -d $(srcdir)/gtkdoc/html && cp -d -R $(srcdir)/gtkdoc/html/* $(RYGEL_GTKDOC_INSTALL_DIR); true
76         test -d $(srcdir)/gtkdoc/html && chmod -R u+w $(RYGEL_GTKDOC_INSTALL_DIR); true
77
78 endif
79
80 RYGEL_GTKDOC_INSTALL_DIR = $(DESTDIR)$(datadir)/gtk-doc/html/lib$(RYGEL_DOCBUILD_MODULE)
81
82 uninstall-hook:
83         rm -rf $(RYGEL_GTKDOC_INSTALL_DIR)
84
85 distclean-local:
86         @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
87                 rm -f gtkdoc/lib$(RYGEL_DOCBUILD_MODULE)-docs.xml; \
88         fi
89
90 EXTRA_DIST = $(RYGEL_GTKDOC_DOCS_XML) gtkdoc/html valadoc
91