]> git.ipfire.org Git - thirdparty/util-linux.git/blame - config/gtk-doc.make
build-sys: enable libmount and libblkid docs
[thirdparty/util-linux.git] / config / gtk-doc.make
CommitLineData
e42b25eb
KZ
1#
2# WARNING: this is not gtk-doc.make file from gtk-doc project. This
601d12fb 3# file has been modified to match with util-linux requirements:
e42b25eb
KZ
4#
5# * install files to $datadir
6# * don't maintain generated files in git repository
7# * don't distribute the final html files
8# * don't require --enable-gtk-doc for "make dist"
9# * support out-of-tree build ($srcdir != $builddir)
10#
11# -- kzak, Nov 2009
12#
a77bfc3a
KZ
13
14####################################
15# Everything below here is generic #
16####################################
17
18if GTK_DOC_USE_LIBTOOL
99152a95
KZ
19GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
20GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
a77bfc3a
KZ
21GTKDOC_RUN = $(LIBTOOL) --mode=execute
22else
23GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
24GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
99152a95 25GTKDOC_RUN =
a77bfc3a
KZ
26endif
27
28# We set GPATH here; this gives us semantics for GNU make
29# which are more like other make's VPATH, when it comes to
30# whether a source that is a target of one rule is then
31# searched for in VPATH/GPATH.
32#
33GPATH = $(srcdir)
34
e42b25eb 35TARGET_DIR=$(docdir)/$(DOC_MODULE)
a77bfc3a 36
3fe1b06a
KZ
37DISTCLEANFILES =
38
a77bfc3a
KZ
39EXTRA_DIST = \
40 $(content_files) \
41 $(HTML_IMAGES) \
42 $(DOC_MAIN_SGML_FILE) \
e42b25eb
KZ
43 $(DOC_MODULE)-sections.txt
44# $(DOC_MODULE)-overrides.txt
a77bfc3a 45
99152a95
KZ
46DOC_STAMPS=scan-build.stamp sgml-build.stamp html-build.stamp \
47 $(srcdir)/setup.stamp $(srcdir)/sgml.stamp \
48 $(srcdir)/html.stamp
a77bfc3a
KZ
49
50SCANOBJ_FILES = \
51 $(DOC_MODULE).args \
52 $(DOC_MODULE).hierarchy \
53 $(DOC_MODULE).interfaces \
54 $(DOC_MODULE).prerequisites \
3fe1b06a
KZ
55 $(DOC_MODULE).signals \
56 $(DOC_MODULE).types # util-linux: we don't use types
a77bfc3a
KZ
57
58REPORT_FILES = \
59 $(DOC_MODULE)-undocumented.txt \
60 $(DOC_MODULE)-undeclared.txt \
61 $(DOC_MODULE)-unused.txt
62
63CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
64
65if ENABLE_GTK_DOC
66all-local: html-build.stamp
67else
68all-local:
69endif
70
71docs: html-build.stamp
72
73$(REPORT_FILES): sgml-build.stamp
74
99152a95
KZ
75#### setup ####
76
77setup-build.stamp:
78 -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
79 echo 'gtk-doc: Preparing build'; \
80 files=`echo $(EXTRA_DIST) $(expand_content_files) $(srcdir)/$(DOC_MODULE).types`; \
81 if test "x$$files" != "x" ; then \
82 for file in $$files ; do \
83 test -f $(abs_srcdir)/$$file && \
84 cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \
85 done \
86 fi \
87 fi
88 @touch setup-build.stamp
89
90
91setup.stamp: setup-build.stamp
92 @true
93
94
a77bfc3a
KZ
95#### scan ####
96
e42b25eb
KZ
97scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) $(srcdir)/$(DOC_MODULE)-*.txt $(content_files)
98
9f06f52b 99 @test -f $(DOC_MODULE)-sections.txt || \
e42b25eb
KZ
100 cp $(srcdir)/$(DOC_MODULE)-sections.txt $(builddir)
101
9f06f52b 102 $(AM_V_GEN)gtkdoc-scan --module=$(DOC_MODULE) \
e42b25eb
KZ
103 --source-dir=$(srcdir)/$(DOC_SOURCE_DIR) \
104 --source-dir=$(builddir)/$(DOC_SOURCE_DIR) \
105 --ignore-headers="$(IGNORE_HFILES)" \
106 --output-dir=$(builddir) \
107 $(SCAN_OPTIONS) $(EXTRA_HFILES)
108
99152a95 109 @ if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \
e42b25eb
KZ
110 CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" \
111 CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) \
112 $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) \
113 --module=$(DOC_MODULE) --output-dir=$(builddir) ; \
a77bfc3a 114 else \
a77bfc3a
KZ
115 for i in $(SCANOBJ_FILES) ; do \
116 test -f $$i || touch $$i ; \
117 done \
118 fi
99152a95 119 @ touch scan-build.stamp
a77bfc3a 120
e96a05a9 121$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
a77bfc3a
KZ
122 @true
123
124#### templates ####
99152a95
KZ
125#
126#tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(srcdir)/$(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
127# @echo 'gtk-doc: Rebuilding template files'
128# test -z $(builddir)/tmpl || $(MKDIR_P) $(builddir)/tmpl
129# gtkdoc-mktmpl --module=$(DOC_MODULE) \
130# $(MKTMPL_OPTIONS)
131# touch tmpl-build.stamp
132#
133#tmpl.stamp: tmpl-build.stamp
134# @true
135#
136#tmpl/*.sgml:
137# @true
138#
a77bfc3a
KZ
139
140#### xml ####
141
e96a05a9 142sgml-build.stamp: setup.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-decl.txt $(DOC_MODULE)-sections.txt $(expand_content_files)
9f06f52b 143 $(AM_V_GEN)gtkdoc-mkdb --module=$(DOC_MODULE) \
e42b25eb
KZ
144 --source-dir=$(srcdir)/$(DOC_SOURCE_DIR) \
145 --source-dir=$(builddir)/$(DOC_SOURCE_DIR) \
146 --output-format=xml \
147 --ignore-files="$(IGNORE_HFILES)" \
148 --expand-content-files="$(expand_content_files)" \
149 --main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) \
150 $(MKDB_OPTIONS)
9f06f52b 151 @touch sgml-build.stamp
a77bfc3a
KZ
152
153sgml.stamp: sgml-build.stamp
154 @true
155
156#### html ####
157
e42b25eb 158html-build.stamp: sgml.stamp $(srcdir)/$(DOC_MAIN_SGML_FILE) $(content_files)
9f06f52b
KZ
159 @rm -rf $(builddir)/html
160 @$(MKDIR_P) $(builddir)/html
161 $(AM_V_GEN)cd $(builddir)/html && \
e42b25eb
KZ
162 gtkdoc-mkhtml --path="$(abs_builddir):$(abs_builddir)/xml:$(abs_srcdir)" \
163 $(MKHTML_OPTIONS) \
164 $(DOC_MODULE) \
165 $(abs_srcdir)/$(DOC_MAIN_SGML_FILE)
166
9f06f52b 167 @test "x$(HTML_IMAGES)" = "x" || \
e42b25eb
KZ
168 ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html )
169
9f06f52b 170 $(AM_V_GEN)gtkdoc-fixxref --module-dir=html \
e42b25eb
KZ
171 --html-dir=$(HTML_DIR) \
172 $(FIXXREF_OPTIONS)
9f06f52b 173 @touch html-build.stamp
a77bfc3a
KZ
174
175##############
176
177clean-local:
178 rm -f *~ *.bak
179 rm -rf .libs
180
181distclean-local:
99152a95 182 rm -rf xml html $(REPORT_FILES) *.stamp \
e42b25eb
KZ
183 $(DOC_MODULE)-overrides.txt \
184 $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
185 test $(abs_builddir) == $(abs_srcdir) || \
3fe1b06a 186 rm -f $(DOC_MODULE)-*.txt $(DOC_MODULE)-*.xml *.xml.in
a77bfc3a
KZ
187
188install-data-local:
e42b25eb
KZ
189 installfiles=`echo $(builddir)/html/*`; \
190 if test "$$installfiles" = '$(builddir)/html/*'; \
a77bfc3a
KZ
191 then echo '-- Nothing to install' ; \
192 else \
193 if test -n "$(DOC_MODULE_VERSION)"; then \
194 installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
195 else \
196 installdir="$(DESTDIR)$(TARGET_DIR)"; \
197 fi; \
198 $(mkinstalldirs) $${installdir} ; \
199 for i in $$installfiles; do \
200 echo '-- Installing '$$i ; \
201 $(INSTALL_DATA) $$i $${installdir}; \
202 done; \
203 if test -n "$(DOC_MODULE_VERSION)"; then \
204 mv -f $${installdir}/$(DOC_MODULE).devhelp2 \
205 $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \
206 mv -f $${installdir}/$(DOC_MODULE).devhelp \
207 $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \
208 fi; \
209 ! which gtkdoc-rebase >/dev/null 2>&1 || \
210 gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir} ; \
211 fi
212
213uninstall-local:
214 if test -n "$(DOC_MODULE_VERSION)"; then \
215 installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
216 else \
217 installdir="$(DESTDIR)$(TARGET_DIR)"; \
218 fi; \
219 rm -rf $${installdir}
220
221#
222# Require gtk-doc when making dist
223#
224if ENABLE_GTK_DOC
225dist-check-gtkdoc:
226else
227dist-check-gtkdoc:
228 @echo "*** gtk-doc must be installed and enabled in order to make dist"
229 @false
230endif
231
e42b25eb
KZ
232#dist-hook: dist-check-gtkdoc dist-hook-local sgml.stamp html-build.stamp
233# mkdir $(distdir)/tmpl
234# mkdir $(distdir)/xml
235# mkdir $(distdir)/html
236# -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
237# -cp $(srcdir)/xml/*.xml $(distdir)/xml
238# cp $(srcdir)/html/* $(distdir)/html
239# -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/
240# -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/
241# cd $(distdir) && rm -f $(DISTCLEANFILES)
242# ! which gtkdoc-rebase >/dev/null 2>&1 || \
243# gtkdoc-rebase --online --relative --html-dir=$(distdir)/html
244#
245#.PHONY : dist-hook-local docs