]>
Commit | Line | Data |
---|---|---|
663996b3 MS |
1 | # -*- mode: makefile -*- |
2 | ||
3 | #################################### | |
4 | # Everything below here is generic # | |
5 | #################################### | |
6 | ||
7 | if GTK_DOC_USE_LIBTOOL | |
8 | GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | |
9 | GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) | |
10 | GTKDOC_RUN = $(LIBTOOL) --mode=execute | |
11 | else | |
12 | GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | |
13 | GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) | |
14 | GTKDOC_RUN = | |
15 | endif | |
16 | ||
17 | # We set GPATH here; this gives us semantics for GNU make | |
18 | # which are more like other make's VPATH, when it comes to | |
19 | # whether a source that is a target of one rule is then | |
20 | # searched for in VPATH/GPATH. | |
21 | # | |
22 | GPATH = $(srcdir) | |
23 | ||
24 | TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) | |
25 | ||
26 | SETUP_FILES = \ | |
27 | $(content_files) \ | |
28 | $(DOC_MAIN_SGML_FILE) \ | |
29 | $(DOC_MODULE)-sections.txt \ | |
30 | $(DOC_MODULE)-overrides.txt | |
31 | ||
32 | EXTRA_DIST = \ | |
33 | $(HTML_IMAGES) \ | |
34 | $(SETUP_FILES) | |
35 | ||
36 | DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \ | |
37 | html-build.stamp pdf-build.stamp \ | |
38 | sgml.stamp html.stamp pdf.stamp | |
39 | ||
40 | SCANOBJ_FILES = \ | |
41 | $(DOC_MODULE).args \ | |
42 | $(DOC_MODULE).hierarchy \ | |
43 | $(DOC_MODULE).interfaces \ | |
44 | $(DOC_MODULE).prerequisites \ | |
45 | $(DOC_MODULE).signals | |
46 | ||
47 | REPORT_FILES = \ | |
48 | $(DOC_MODULE)-undocumented.txt \ | |
49 | $(DOC_MODULE)-undeclared.txt \ | |
50 | $(DOC_MODULE)-unused.txt | |
51 | ||
52 | CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) | |
53 | ||
54 | if ENABLE_GTK_DOC | |
55 | if GTK_DOC_BUILD_HTML | |
56 | HTML_BUILD_STAMP=html-build.stamp | |
57 | else | |
58 | HTML_BUILD_STAMP= | |
59 | endif | |
60 | if GTK_DOC_BUILD_PDF | |
61 | PDF_BUILD_STAMP=pdf-build.stamp | |
62 | else | |
63 | PDF_BUILD_STAMP= | |
64 | endif | |
65 | ||
66 | all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) | |
67 | else | |
68 | all-local: | |
69 | endif | |
70 | ||
71 | docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) | |
72 | ||
73 | $(REPORT_FILES): sgml-build.stamp | |
74 | ||
75 | #### setup #### | |
76 | ||
14228c0d MB |
77 | GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_$(V)) |
78 | GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY)) | |
79 | GTK_DOC_V_SETUP_0=@echo " DOC Preparing build"; | |
80 | ||
663996b3 | 81 | setup-build.stamp: |
14228c0d | 82 | -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ |
663996b3 MS |
83 | files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ |
84 | if test "x$$files" != "x" ; then \ | |
85 | for file in $$files ; do \ | |
86 | test -f $(abs_srcdir)/$$file && \ | |
14228c0d | 87 | cp -pu $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ |
663996b3 MS |
88 | done; \ |
89 | fi; \ | |
90 | fi | |
14228c0d | 91 | $(AM_V_at)touch setup-build.stamp |
663996b3 MS |
92 | |
93 | ||
94 | #### scan #### | |
95 | ||
14228c0d MB |
96 | GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_$(V)) |
97 | GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY)) | |
98 | GTK_DOC_V_SCAN_0=@echo " DOC Scanning header files"; | |
99 | ||
100 | GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_$(V)) | |
101 | GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) | |
102 | GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects"; | |
103 | ||
663996b3 | 104 | scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) |
14228c0d | 105 | $(GTK_DOC_V_SCAN)_source_dir='' ; \ |
663996b3 MS |
106 | for i in $(DOC_SOURCE_DIR) ; do \ |
107 | _source_dir="$${_source_dir} --source-dir=$$i" ; \ | |
108 | done ; \ | |
109 | gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) | |
14228c0d | 110 | $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ |
663996b3 MS |
111 | scanobj_options=""; \ |
112 | gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ | |
113 | if test "$(?)" = "0"; then \ | |
114 | if test "x$(V)" = "x1"; then \ | |
115 | scanobj_options="--verbose"; \ | |
116 | fi; \ | |
117 | fi; \ | |
118 | CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ | |
119 | gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ | |
120 | else \ | |
121 | for i in $(SCANOBJ_FILES) ; do \ | |
122 | test -f $$i || touch $$i ; \ | |
123 | done \ | |
124 | fi | |
14228c0d | 125 | $(AM_V_at)touch scan-build.stamp |
663996b3 MS |
126 | |
127 | $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp | |
128 | @true | |
129 | ||
130 | #### xml #### | |
131 | ||
14228c0d MB |
132 | GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V)) |
133 | GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) | |
134 | GTK_DOC_V_XML_0=@echo " DOC Building XML"; | |
135 | ||
663996b3 | 136 | sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) |
14228c0d | 137 | $(GTK_DOC_V_XML)_source_dir='' ; \ |
663996b3 MS |
138 | for i in $(DOC_SOURCE_DIR) ; do \ |
139 | _source_dir="$${_source_dir} --source-dir=$$i" ; \ | |
140 | done ; \ | |
141 | gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) | |
14228c0d | 142 | $(AM_V_at)touch sgml-build.stamp |
663996b3 MS |
143 | |
144 | sgml.stamp: sgml-build.stamp | |
145 | @true | |
146 | ||
147 | #### html #### | |
148 | ||
14228c0d MB |
149 | GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_$(V)) |
150 | GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY)) | |
151 | GTK_DOC_V_HTML_0=@echo " DOC Building HTML"; | |
152 | ||
153 | GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_$(V)) | |
154 | GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY)) | |
155 | GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references"; | |
156 | ||
663996b3 | 157 | html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) |
14228c0d MB |
158 | $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ |
159 | mkhtml_options=""; \ | |
663996b3 MS |
160 | gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ |
161 | if test "$(?)" = "0"; then \ | |
162 | if test "x$(V)" = "x1"; then \ | |
163 | mkhtml_options="$$mkhtml_options --verbose"; \ | |
164 | fi; \ | |
165 | fi; \ | |
166 | gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ | |
167 | if test "$(?)" = "0"; then \ | |
168 | mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ | |
169 | fi; \ | |
170 | cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) | |
171 | -@test "x$(HTML_IMAGES)" = "x" || \ | |
172 | for file in $(HTML_IMAGES) ; do \ | |
173 | if test -f $(abs_srcdir)/$$file ; then \ | |
174 | cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ | |
175 | fi; \ | |
176 | if test -f $(abs_builddir)/$$file ; then \ | |
177 | cp $(abs_builddir)/$$file $(abs_builddir)/html; \ | |
178 | fi; \ | |
179 | done; | |
14228c0d MB |
180 | $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) |
181 | $(AM_V_at)touch html-build.stamp | |
663996b3 MS |
182 | |
183 | #### pdf #### | |
184 | ||
14228c0d MB |
185 | GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_$(V)) |
186 | GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY)) | |
187 | GTK_DOC_V_PDF_0=@echo " DOC Building PDF"; | |
188 | ||
663996b3 | 189 | pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) |
14228c0d MB |
190 | $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ |
191 | mkpdf_options=""; \ | |
663996b3 MS |
192 | gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ |
193 | if test "$(?)" = "0"; then \ | |
194 | if test "x$(V)" = "x1"; then \ | |
195 | mkpdf_options="$$mkpdf_options --verbose"; \ | |
196 | fi; \ | |
197 | fi; \ | |
198 | if test "x$(HTML_IMAGES)" != "x"; then \ | |
199 | for img in $(HTML_IMAGES); do \ | |
200 | part=`dirname $$img`; \ | |
201 | echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ | |
202 | if test $$? != 0; then \ | |
203 | mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ | |
204 | fi; \ | |
205 | done; \ | |
206 | fi; \ | |
207 | gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) | |
14228c0d | 208 | $(AM_V_at)touch pdf-build.stamp |
663996b3 MS |
209 | |
210 | ############## | |
211 | ||
212 | clean-local: | |
213 | @rm -f *~ *.bak | |
214 | @rm -rf .libs | |
215 | ||
216 | distclean-local: | |
217 | @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ | |
218 | $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt | |
219 | @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ | |
220 | rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ | |
221 | fi | |
222 | ||
14228c0d | 223 | maintainer-clean-local: |
663996b3 MS |
224 | @rm -rf xml html |
225 | ||
226 | install-data-local: | |
227 | @installfiles=`echo $(builddir)/html/*`; \ | |
228 | if test "$$installfiles" = '$(builddir)/html/*'; \ | |
229 | then echo 1>&2 'Nothing to install' ; \ | |
230 | else \ | |
231 | if test -n "$(DOC_MODULE_VERSION)"; then \ | |
232 | installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ | |
233 | else \ | |
234 | installdir="$(DESTDIR)$(TARGET_DIR)"; \ | |
235 | fi; \ | |
236 | $(mkinstalldirs) $${installdir} ; \ | |
237 | for i in $$installfiles; do \ | |
238 | echo ' $(INSTALL_DATA) '$$i ; \ | |
239 | $(INSTALL_DATA) $$i $${installdir}; \ | |
240 | done; \ | |
241 | if test -n "$(DOC_MODULE_VERSION)"; then \ | |
242 | mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ | |
243 | $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ | |
244 | fi; \ | |
245 | $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ | |
246 | fi | |
247 | ||
248 | uninstall-local: | |
249 | @if test -n "$(DOC_MODULE_VERSION)"; then \ | |
250 | installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ | |
251 | else \ | |
252 | installdir="$(DESTDIR)$(TARGET_DIR)"; \ | |
253 | fi; \ | |
254 | rm -rf $${installdir} | |
255 | ||
256 | # | |
257 | # Require gtk-doc when making dist | |
258 | # | |
259 | if ENABLE_GTK_DOC | |
14228c0d | 260 | dist-check-gtkdoc: docs |
663996b3 MS |
261 | else |
262 | dist-check-gtkdoc: | |
263 | @echo "*** gtk-doc must be installed and enabled in order to make dist" | |
264 | @false | |
265 | endif | |
266 | ||
267 | dist-hook: dist-check-gtkdoc dist-hook-local | |
268 | @mkdir $(distdir)/html | |
269 | @cp ./html/* $(distdir)/html | |
270 | @-cp ./$(DOC_MODULE).pdf $(distdir)/ | |
271 | @-cp ./$(DOC_MODULE).types $(distdir)/ | |
272 | @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ | |
273 | @cd $(distdir) && rm -f $(DISTCLEANFILES) | |
274 | @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html | |
275 | ||
276 | .PHONY : dist-hook-local docs |