summaryrefslogtreecommitdiff
path: root/doc/reference/doc-build.am
blob: 0bae4eb2879edc25807e8237ffb9fc1cd5f0132e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# Other Makefile.am files should set:
# VALA_SOURCE_FILES, VALA_SOURCE_FILES_WITH_PATHS, 
# RYGEL_DOCBUILD_VALADOC_FLAGS, RYGEL_DOCBUILD_MODULE
# and RYGEL_DOCBUILD_EXTRA_GTKDOC_OPTIONS
# and the include this .am file.

if ENABLE_VALADOC

VALADOC_FLAGS = --force \
		--vapidir $(top_srcdir)/src/lib$(RYGEL_DOCBUILD_MODULE) \
		$(RYGEL_DOCBUILD_VALADOC_FLAGS) \
		--target-glib=2.32 \
		--vapidir=$(rygeldir) \
		--pkg rygel-build-config \
		-b $(top_srcdir)/src/lib$(RYGEL_DOCBUILD_MODULE) \
		--package-name lib$(RYGEL_DOCBUILD_MODULE) \
		--package-version 2.2 \
		$(VALA_SOURCE_FILES_WITH_PATHS)


valadoc-gen: $(VALA_SOURCE_FILES_WITH_PATHS)
	$(AM_V_GEN)$(VALADOC) \
		-o valadoc \
		$(VALADOC_FLAGS)

# Avoid regeneration of the html if none of its dependencies have changed:
gtkdoc/html/index.html: gtkdoc-gen

# The use of extra .xml DocBook files, just for the gtk-doc output
# (in RYGEL_GTKDOC_DOCS_XML_EXTRA),
# will be unnecessary when valadoc has some way to add extra pages of
# documentation. See https://bugzilla.gnome.org/show_bug.cgi?id=680798
# The whole gtk-doc build might then get much simpler like it once was:
# http://git.gnome.org/browse/rygel/commit/doc/reference/Makefile.am?id=80b68029d42fec3fbbb9c0dbdda99c065bddcb0f
RYGEL_GTKDOC_DOCS_XML = \
	$(top_srcdir)/doc/reference/lib$(RYGEL_DOCBUILD_MODULE)/gtkdoc/lib$(RYGEL_DOCBUILD_MODULE)-docs.xml \
	$(top_srcdir)/doc/reference/lib$(RYGEL_DOCBUILD_MODULE)/gtkdoc/overview.xml $(RYGEL_GTKDOC_DOCS_XML_EXTRA)

gtkdoc-gen: $(VALA_SOURCE_FILES_WITH_PATHS) $(RYGEL_GTKDOC_DOCS_XML)
	@rm -rf gtkdoc/html
	$(AM_V_GEN)$(VALADOC) \
		-X $(top_srcdir)/src/lib$(RYGEL_DOCBUILD_MODULE)/$(RYGEL_DOCBUILD_MODULE).h \
		$(RYGEL_DOCBUILD_EXTRA_GTKDOC_OPTIONS) \
		-X -l -X $(top_builddir)/src/lib$(RYGEL_DOCBUILD_MODULE)/.libs/lib$(RYGEL_DOCBUILD_MODULE)-2.2.so \
		-o gtkdoc \
		--doclet gtkdoc \
		$(VALADOC_FLAGS)
		
clean-local:
	rm -rf valadoc gtkdoc/html
	rm -f gtkdoc/html.stamp
	rm -f gtkdoc/sgml.stamp
	rm -rf gtkdoc/ccomments
	rm -rf gtkdoc/xml
	rm -rf gtkdoc/cscan
	rm -f gtkdoc/lib$(RYGEL_DOCBUILD_MODULE).args
	rm -f gtkdoc/lib$(RYGEL_DOCBUILD_MODULE).interfaces
	rm -f gtkdoc/lib$(RYGEL_DOCBUILD_MODULE).hierarchy
	rm -f gtkdoc/lib$(RYGEL_DOCBUILD_MODULE).signals
	rm -f gtkdoc/lib$(RYGEL_DOCBUILD_MODULE).types
	rm -f gtkdoc/lib$(RYGEL_DOCBUILD_MODULE)*.txt
	rm -f gtkdoc/lib$(RYGEL_DOCBUILD_MODULE).prerequisites

all: valadoc-gen gtkdoc-gen

# The chmod corrects the directory permissions so that distcheck can remove the installed files.
install-data-hook: gtkdoc/html/index.html
	$(MKDIR_P) $(RYGEL_GTKDOC_INSTALL_DIR)
	cp -d -R $(srcdir)/gtkdoc/html/* $(RYGEL_GTKDOC_INSTALL_DIR)
	chmod -R u+w $(RYGEL_GTKDOC_INSTALL_DIR)

else
install-data-hook:
	test -d $(srcdir)/gtkdoc/html && $(MKDIR_P) $(RYGEL_GTKDOC_INSTALL_DIR); true
	test -d $(srcdir)/gtkdoc/html && cp -d -R $(srcdir)/gtkdoc/html/* $(RYGEL_GTKDOC_INSTALL_DIR); true
	test -d $(srcdir)/gtkdoc/html && chmod -R u+w $(RYGEL_GTKDOC_INSTALL_DIR); true

endif

RYGEL_GTKDOC_INSTALL_DIR = $(DESTDIR)$(datadir)/gtk-doc/html/lib$(RYGEL_DOCBUILD_MODULE)

uninstall-hook:
	rm -rf $(RYGEL_GTKDOC_INSTALL_DIR)

distclean-local:
	@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
		rm -f gtkdoc/lib$(RYGEL_DOCBUILD_MODULE)-docs.xml; \
	fi

EXTRA_DIST = $(RYGEL_GTKDOC_DOCS_XML) gtkdoc/html valadoc