1 # -*- mode: makefile -*-
3 ####################################
4 # Everything below here is generic #
5 ####################################
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
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
)
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.
24 TARGET_DIR
=$(HTML_DIR
)/$(DOC_MODULE
)
28 $(DOC_MAIN_SGML_FILE
) \
29 $(DOC_MODULE
)-sections.txt \
30 $(DOC_MODULE
)-overrides.txt
36 DOC_STAMPS
=setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \
37 html-build.stamp pdf-build.stamp \
38 tmpl.stamp sgml.stamp html.stamp pdf.stamp
42 $(DOC_MODULE
).hierarchy \
43 $(DOC_MODULE
).interfaces \
44 $(DOC_MODULE
).prerequisites \
48 $(DOC_MODULE
)-undocumented.txt \
49 $(DOC_MODULE
)-undeclared.txt \
50 $(DOC_MODULE
)-unused.txt
52 CLEANFILES
= $(SCANOBJ_FILES
) $(REPORT_FILES
) $(DOC_STAMPS
)
56 HTML_BUILD_STAMP
=html-build.stamp
61 PDF_BUILD_STAMP
=pdf-build.stamp
66 all-local
: $(HTML_BUILD_STAMP
) $(PDF_BUILD_STAMP
)
71 docs
: $(HTML_BUILD_STAMP
) $(PDF_BUILD_STAMP
)
73 $(REPORT_FILES
): sgml-build.stamp
78 -@if
test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
79 echo
' DOC Preparing build'; \
80 files
=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
81 if
test "x$$files" != "x" ; then \
82 for file in
$$files ; do \
83 test -f
$(abs_srcdir
)/$$file && \
84 cp
-pu
$(abs_srcdir
)/$$file $(abs_builddir
)/ || true
; \
87 test -f
$(abs_srcdir
)/tmpl
&& \
88 cp
-rp
$(abs_srcdir
)/tmpl
$(abs_builddir
)/; \
90 @touch setup-build.stamp
94 scan-build.stamp
: $(HFILE_GLOB
) $(CFILE_GLOB
)
95 @echo
' DOC Scanning header files'
97 for i in
$(DOC_SOURCE_DIR
) ; do \
98 _source_dir
="$${_source_dir} --source-dir=$$i" ; \
100 gtkdoc-scan
--module
=$(DOC_MODULE
) --ignore-headers
="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS
) $(EXTRA_HFILES
)
101 @if grep
-l
'^..*$$' $(DOC_MODULE
).types
> /dev
/null
2>&1 ; then \
102 echo
" DOC Introspecting gobjects"; \
103 scanobj_options
=""; \
104 gtkdoc-scangobj
2>&1 --help | grep
>/dev
/null
"\-\-verbose"; \
105 if
test "$(?)" = "0"; then \
106 if
test "x$(V)" = "x1"; then \
107 scanobj_options
="--verbose"; \
110 CC
="$(GTKDOC_CC)" LD
="$(GTKDOC_LD)" RUN
="$(GTKDOC_RUN)" CFLAGS
="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS
="$(GTKDOC_LIBS) $(LDFLAGS)" \
111 gtkdoc-scangobj
$(SCANGOBJ_OPTIONS
) $$scanobj_options --module
=$(DOC_MODULE
); \
113 for i in
$(SCANOBJ_FILES
) ; do \
114 test -f
$$i || touch
$$i ; \
117 @touch scan-build.stamp
119 $(DOC_MODULE
)-decl.txt
$(SCANOBJ_FILES
) $(DOC_MODULE
)-sections.txt
$(DOC_MODULE
)-overrides.txt
: scan-build.stamp
124 tmpl-build.stamp
: setup-build.stamp
$(DOC_MODULE
)-decl.txt
$(SCANOBJ_FILES
) $(DOC_MODULE
)-sections.txt
$(DOC_MODULE
)-overrides.txt
125 @echo
' DOC Rebuilding template files'
126 @gtkdoc-mktmpl
--module
=$(DOC_MODULE
) $(MKTMPL_OPTIONS
)
127 @if
test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
128 if
test -w
$(abs_srcdir
) ; then \
129 cp
-rp
$(abs_builddir
)/tmpl
$(abs_srcdir
)/; \
132 @touch tmpl-build.stamp
134 tmpl.stamp
: tmpl-build.stamp
137 $(srcdir)/tmpl
/*.sgml
:
142 sgml-build.stamp
: tmpl.stamp
$(DOC_MODULE
)-sections.txt
$(srcdir)/tmpl
/*.sgml
$(expand_content_files
)
143 @echo
' DOC Building XML'
144 @
-chmod
-R u
+w
$(srcdir)
146 for i in
$(DOC_SOURCE_DIR
) ; do \
147 _source_dir
="$${_source_dir} --source-dir=$$i" ; \
149 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
)
150 @touch sgml-build.stamp
152 sgml.stamp
: sgml-build.stamp
157 html-build.stamp
: sgml.stamp
$(DOC_MAIN_SGML_FILE
) $(content_files
)
158 @echo
' DOC Building HTML'
161 @mkhtml_options
=""; \
162 gtkdoc-mkhtml
2>&1 --help | grep
>/dev
/null
"\-\-verbose"; \
163 if
test "$(?)" = "0"; then \
164 if
test "x$(AM_DEFAULT_VERBOSITY)" = "x1"; then \
165 mkhtml_options
="$$mkhtml_options --verbose"; \
168 gtkdoc-mkhtml
2>&1 --help | grep
>/dev
/null
"\-\-path"; \
169 if
test "$(?)" = "0"; then \
170 mkhtml_options
="$$mkhtml_options --path=\"$(abs_srcdir)\""; \
172 cd html
&& gtkdoc-mkhtml
$$mkhtml_options $(MKHTML_OPTIONS
) $(DOC_MODULE
) ..
/$(DOC_MAIN_SGML_FILE
)
173 -@
test "x$(HTML_IMAGES)" = "x" || \
174 for file in
$(HTML_IMAGES
) ; do \
175 if
test -f
$(abs_srcdir
)/$$file ; then \
176 cp
$(abs_srcdir
)/$$file $(abs_builddir
)/html
; \
178 if
test -f
$(abs_builddir
)/$$file ; then \
179 cp
$(abs_builddir
)/$$file $(abs_builddir
)/html
; \
182 @echo
' DOC Fixing cross-references'
183 @gtkdoc-fixxref
--module
=$(DOC_MODULE
) --module-dir
=html
--html-dir
=$(HTML_DIR
) $(FIXXREF_OPTIONS
)
184 @touch html-build.stamp
188 pdf-build.stamp
: sgml.stamp
$(DOC_MAIN_SGML_FILE
) $(content_files
)
189 @echo
' DOC Building PDF'
190 @
rm -f
$(DOC_MODULE
).pdf
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"; \
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"; \
207 gtkdoc-mkpdf
--path
="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE
) $(DOC_MAIN_SGML_FILE
) $(MKPDF_OPTIONS
)
208 @touch pdf-build.stamp
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
; \
224 maintainer-clean-local
: clean
228 @installfiles
=`echo $(srcdir)/html/*`; \
229 if
test "$$installfiles" = '$(srcdir)/html/*'; \
230 then echo
1>&2 'Nothing to install' ; \
232 if
test -n
"$(DOC_MODULE_VERSION)"; then \
233 installdir
="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
235 installdir
="$(DESTDIR)$(TARGET_DIR)"; \
237 $(mkinstalldirs
) $${installdir} ; \
238 for i in
$$installfiles; do \
239 echo
' $(INSTALL_DATA) '$$i ; \
240 $(INSTALL_DATA
) $$i $${installdir}; \
242 if
test -n
"$(DOC_MODULE_VERSION)"; then \
243 mv
-f
$${installdir}/$(DOC_MODULE
).devhelp2 \
244 $${installdir}/$(DOC_MODULE
)-$(DOC_MODULE_VERSION
).devhelp2
; \
245 mv
-f
$${installdir}/$(DOC_MODULE
).devhelp \
246 $${installdir}/$(DOC_MODULE
)-$(DOC_MODULE_VERSION
).devhelp
; \
248 $(GTKDOC_REBASE
) --relative
--dest-dir
=$(DESTDIR
) --html-dir
=$${installdir}; \
252 @if
test -n
"$(DOC_MODULE_VERSION)"; then \
253 installdir
="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
255 installdir
="$(DESTDIR)$(TARGET_DIR)"; \
257 rm -rf
$${installdir}
260 # Require gtk-doc when making dist
266 @echo
"*** gtk-doc must be installed and enabled in order to make dist"
270 dist-hook
: dist-check-gtkdoc dist-hook-local
271 @mkdir
$(distdir
)/tmpl
272 @mkdir
$(distdir
)/html
273 @
-cp .
/tmpl
/*.sgml
$(distdir
)/tmpl
274 @cp .
/html
/* $(distdir
)/html
275 @
-cp .
/$(DOC_MODULE
).pdf
$(distdir
)/
276 @
-cp .
/$(DOC_MODULE
).types
$(distdir
)/
277 @
-cp .
/$(DOC_MODULE
)-sections.txt
$(distdir
)/
278 @cd
$(distdir
) && rm -f
$(DISTCLEANFILES
)
279 @
$(GTKDOC_REBASE
) --online
--relative
--html-dir
=$(distdir
)/html
281 .PHONY
: dist-hook-local docs