]> git.ipfire.org Git - thirdparty/util-linux.git/blob - config/gtk-doc.make
Merge branch 'mount-omode' of https://github.com/yontalcar/util-linux
[thirdparty/util-linux.git] / config / gtk-doc.make
1 #
2 # WARNING: this is not gtk-doc.make file from gtk-doc project. This
3 # file has been modified to match with util-linux requirements:
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 #
13
14 ####################################
15 # Everything below here is generic #
16 ####################################
17
18 if GTK_DOC_USE_LIBTOOL
19 GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
20 GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
21 GTKDOC_RUN = $(LIBTOOL) --mode=execute
22 else
23 GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
24 GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
25 GTKDOC_RUN =
26 endif
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 #
33 GPATH = $(srcdir)
34
35 TARGET_DIR=$(docdir)/$(DOC_MODULE)
36
37 DISTCLEANFILES =
38
39 EXTRA_DIST = \
40 $(content_files) \
41 $(HTML_IMAGES) \
42 $(DOC_MAIN_SGML_FILE) \
43 $(DOC_MODULE)-sections.txt
44 # $(DOC_MODULE)-overrides.txt
45
46 DOC_STAMPS=scan-build.stamp sgml-build.stamp html-build.stamp \
47 $(srcdir)/setup.stamp $(srcdir)/sgml.stamp \
48 $(srcdir)/html.stamp
49
50 SCANOBJ_FILES = \
51 $(DOC_MODULE).args \
52 $(DOC_MODULE).hierarchy \
53 $(DOC_MODULE).interfaces \
54 $(DOC_MODULE).prerequisites \
55 $(DOC_MODULE).signals \
56 $(DOC_MODULE).types # util-linux: we don't use types
57
58 REPORT_FILES = \
59 $(DOC_MODULE)-undocumented.txt \
60 $(DOC_MODULE)-undeclared.txt \
61 $(DOC_MODULE)-unused.txt
62
63 CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
64
65 if ENABLE_GTK_DOC
66 all-local: html-build.stamp
67 else
68 all-local:
69 endif
70
71 docs: html-build.stamp
72
73 $(REPORT_FILES): sgml-build.stamp
74
75 #### setup ####
76
77 setup-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
91 setup.stamp: setup-build.stamp
92 @true
93
94
95 #### scan ####
96
97 scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) $(srcdir)/$(DOC_MODULE)-*.txt $(content_files)
98
99 @test -f $(DOC_MODULE)-sections.txt || \
100 cp $(srcdir)/$(DOC_MODULE)-sections.txt $(builddir)
101
102 $(AM_V_GEN)gtkdoc-scan --module=$(DOC_MODULE) \
103 --source-dir=$(srcdir)/$(DOC_SOURCE_DIR) \
104 --source-dir=$(builddir)/$(DOC_SOURCE_DIR) \
105 --ignore-decorators="__ul_attribute__\(.*\)" \
106 --ignore-headers="$(IGNORE_HFILES)" \
107 --output-dir=$(builddir) \
108 $(SCAN_OPTIONS) $(EXTRA_HFILES)
109
110 @ if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \
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) ; \
115 else \
116 for i in $(SCANOBJ_FILES) ; do \
117 test -f $$i || touch $$i ; \
118 done \
119 fi
120 @ touch scan-build.stamp
121
122 $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
123 @true
124
125 #### templates ####
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 #
140
141 #### xml ####
142
143 sgml-build.stamp: setup.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-decl.txt $(DOC_MODULE)-sections.txt $(expand_content_files)
144 $(AM_V_GEN)gtkdoc-mkdb --module=$(DOC_MODULE) \
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)
152 @touch sgml-build.stamp
153
154 sgml.stamp: sgml-build.stamp
155 @true
156
157 #### html ####
158
159 html-build.stamp: sgml.stamp $(srcdir)/$(DOC_MAIN_SGML_FILE) $(content_files)
160 @rm -rf $(builddir)/html
161 @$(MKDIR_P) $(builddir)/html
162 $(AM_V_GEN)cd $(builddir)/html && \
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
168 @test "x$(HTML_IMAGES)" = "x" || \
169 ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html )
170
171 $(AM_V_GEN)gtkdoc-fixxref --module-dir=html \
172 --module=$(DOC_MODULE) \
173 --html-dir=$(HTML_DIR) \
174 $(FIXXREF_OPTIONS)
175 @touch html-build.stamp
176
177 ##############
178
179 clean-local:
180 rm -f *~ *.bak
181 rm -rf .libs
182
183 distclean-local:
184 rm -rf xml html $(REPORT_FILES) *.stamp \
185 $(DOC_MODULE)-overrides.txt \
186 $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
187 test $(abs_builddir) == $(abs_srcdir) || \
188 rm -f $(DOC_MODULE)-*.txt $(DOC_MODULE)-*.xml *.xml.in
189
190 install-data-local:
191 installfiles=`echo $(builddir)/html/*`; \
192 if test "$$installfiles" = '$(builddir)/html/*'; \
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
215 uninstall-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 #
226 if ENABLE_GTK_DOC
227 dist-check-gtkdoc:
228 else
229 dist-check-gtkdoc:
230 @echo "*** gtk-doc must be installed and enabled in order to make dist"
231 @false
232 endif
233
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