]> git.ipfire.org Git - thirdparty/util-linux.git/blame - config/gtk-doc.make
libmount: fix comment referring to passno field
[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) \
bc636434 105 --ignore-decorators="__ul_attribute__\(.*\)" \
e42b25eb
KZ
106 --ignore-headers="$(IGNORE_HFILES)" \
107 --output-dir=$(builddir) \
108 $(SCAN_OPTIONS) $(EXTRA_HFILES)
109
99152a95 110 @ if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \
e42b25eb
KZ
111 CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" \
112 CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) \
113 $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) \
114 --module=$(DOC_MODULE) --output-dir=$(builddir) ; \
a77bfc3a 115 else \
a77bfc3a
KZ
116 for i in $(SCANOBJ_FILES) ; do \
117 test -f $$i || touch $$i ; \
118 done \
119 fi
99152a95 120 @ touch scan-build.stamp
a77bfc3a 121
e96a05a9 122$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
a77bfc3a
KZ
123 @true
124
125#### templates ####
99152a95
KZ
126#
127#tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(srcdir)/$(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
128# @echo 'gtk-doc: Rebuilding template files'
129# test -z $(builddir)/tmpl || $(MKDIR_P) $(builddir)/tmpl
130# gtkdoc-mktmpl --module=$(DOC_MODULE) \
131# $(MKTMPL_OPTIONS)
132# touch tmpl-build.stamp
133#
134#tmpl.stamp: tmpl-build.stamp
135# @true
136#
137#tmpl/*.sgml:
138# @true
139#
a77bfc3a
KZ
140
141#### xml ####
142
e96a05a9 143sgml-build.stamp: setup.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-decl.txt $(DOC_MODULE)-sections.txt $(expand_content_files)
9f06f52b 144 $(AM_V_GEN)gtkdoc-mkdb --module=$(DOC_MODULE) \
e42b25eb
KZ
145 --source-dir=$(srcdir)/$(DOC_SOURCE_DIR) \
146 --source-dir=$(builddir)/$(DOC_SOURCE_DIR) \
147 --output-format=xml \
148 --ignore-files="$(IGNORE_HFILES)" \
149 --expand-content-files="$(expand_content_files)" \
150 --main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) \
151 $(MKDB_OPTIONS)
9f06f52b 152 @touch sgml-build.stamp
a77bfc3a
KZ
153
154sgml.stamp: sgml-build.stamp
155 @true
156
157#### html ####
158
e42b25eb 159html-build.stamp: sgml.stamp $(srcdir)/$(DOC_MAIN_SGML_FILE) $(content_files)
9f06f52b
KZ
160 @rm -rf $(builddir)/html
161 @$(MKDIR_P) $(builddir)/html
162 $(AM_V_GEN)cd $(builddir)/html && \
e42b25eb
KZ
163 gtkdoc-mkhtml --path="$(abs_builddir):$(abs_builddir)/xml:$(abs_srcdir)" \
164 $(MKHTML_OPTIONS) \
165 $(DOC_MODULE) \
166 $(abs_srcdir)/$(DOC_MAIN_SGML_FILE)
167
9f06f52b 168 @test "x$(HTML_IMAGES)" = "x" || \
e42b25eb
KZ
169 ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html )
170
9f06f52b 171 $(AM_V_GEN)gtkdoc-fixxref --module-dir=html \
8e066650 172 --module=$(DOC_MODULE) \
e42b25eb
KZ
173 --html-dir=$(HTML_DIR) \
174 $(FIXXREF_OPTIONS)
9f06f52b 175 @touch html-build.stamp
a77bfc3a
KZ
176
177##############
178
179clean-local:
180 rm -f *~ *.bak
181 rm -rf .libs
182
183distclean-local:
99152a95 184 rm -rf xml html $(REPORT_FILES) *.stamp \
e42b25eb
KZ
185 $(DOC_MODULE)-overrides.txt \
186 $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
187 test $(abs_builddir) == $(abs_srcdir) || \
3fe1b06a 188 rm -f $(DOC_MODULE)-*.txt $(DOC_MODULE)-*.xml *.xml.in
a77bfc3a
KZ
189
190install-data-local:
e42b25eb
KZ
191 installfiles=`echo $(builddir)/html/*`; \
192 if test "$$installfiles" = '$(builddir)/html/*'; \
a77bfc3a
KZ
193 then echo '-- Nothing to install' ; \
194 else \
195 if test -n "$(DOC_MODULE_VERSION)"; then \
196 installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
197 else \
198 installdir="$(DESTDIR)$(TARGET_DIR)"; \
199 fi; \
200 $(mkinstalldirs) $${installdir} ; \
201 for i in $$installfiles; do \
202 echo '-- Installing '$$i ; \
203 $(INSTALL_DATA) $$i $${installdir}; \
204 done; \
205 if test -n "$(DOC_MODULE_VERSION)"; then \
206 mv -f $${installdir}/$(DOC_MODULE).devhelp2 \
207 $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \
208 mv -f $${installdir}/$(DOC_MODULE).devhelp \
209 $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \
210 fi; \
211 ! which gtkdoc-rebase >/dev/null 2>&1 || \
212 gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir} ; \
213 fi
214
215uninstall-local:
216 if test -n "$(DOC_MODULE_VERSION)"; then \
217 installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
218 else \
219 installdir="$(DESTDIR)$(TARGET_DIR)"; \
220 fi; \
221 rm -rf $${installdir}
222
223#
224# Require gtk-doc when making dist
225#
226if ENABLE_GTK_DOC
227dist-check-gtkdoc:
228else
229dist-check-gtkdoc:
230 @echo "*** gtk-doc must be installed and enabled in order to make dist"
231 @false
232endif
233
e42b25eb
KZ
234#dist-hook: dist-check-gtkdoc dist-hook-local sgml.stamp html-build.stamp
235# mkdir $(distdir)/tmpl
236# mkdir $(distdir)/xml
237# mkdir $(distdir)/html
238# -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
239# -cp $(srcdir)/xml/*.xml $(distdir)/xml
240# cp $(srcdir)/html/* $(distdir)/html
241# -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/
242# -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/
243# cd $(distdir) && rm -f $(DISTCLEANFILES)
244# ! which gtkdoc-rebase >/dev/null 2>&1 || \
245# gtkdoc-rebase --online --relative --html-dir=$(distdir)/html
246#
247#.PHONY : dist-hook-local docs