1 # -*- mode: makefile -*-
3 ####################################
4 # Everything below here is generic #
5 ####################################
8 GTKDOC_CC
= $(LIBTOOL
) --mode
=compile
$(CC
) $(INCLUDES
) $(AM_CPPFLAGS
) $(CPPFLAGS
) $(AM_CFLAGS
) $(CFLAGS
)
9 GTKDOC_LD
= $(LIBTOOL
) --mode
=link
$(CC
) $(AM_CFLAGS
) $(CFLAGS
) $(AM_LDFLAGS
) $(LDFLAGS
)
11 GTKDOC_CC
= $(CC
) $(INCLUDES
) $(AM_CPPFLAGS
) $(CPPFLAGS
) $(AM_CFLAGS
) $(CFLAGS
)
12 GTKDOC_LD
= $(CC
) $(AM_CFLAGS
) $(CFLAGS
) $(AM_LDFLAGS
) $(LDFLAGS
)
15 # We set GPATH here; this gives us semantics for GNU make
16 # which are more like other make's VPATH, when it comes to
17 # whether a source that is a target of one rule is then
18 # searched for in VPATH/GPATH.
22 TARGET_DIR
=$(HTML_DIR
)/$(DOC_MODULE
)
27 $(DOC_MAIN_SGML_FILE
) \
28 $(DOC_MODULE
)-sections.txt \
29 $(DOC_MODULE
)-overrides.txt
31 DOC_STAMPS
=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \
32 $(srcdir)/tmpl.stamp
$(srcdir)/sgml.stamp
$(srcdir)/html.stamp
36 $(DOC_MODULE
).hierarchy \
37 $(DOC_MODULE
).interfaces \
38 $(DOC_MODULE
).prerequisites \
42 $(DOC_MODULE
)-undocumented.txt \
43 $(DOC_MODULE
)-undeclared.txt \
44 $(DOC_MODULE
)-unused.txt
46 CLEANFILES
= $(SCANOBJ_FILES
) $(REPORT_FILES
) $(DOC_STAMPS
)
48 check-local
: html-build.stamp
50 docs
: html-build.stamp
54 scan-build.stamp
: $(HFILE_GLOB
) $(CFILE_GLOB
)
55 @echo
'gtk-doc: Scanning header files'
56 @
-chmod
-R u
+w
$(srcdir)
57 @PATH
=$(top_builddir
):$(PATH
) PERL5LIB
=$(top_builddir
):$(PERL5LIB
) && cd
$(srcdir) && \
58 gtkdoc-scan
--module
=$(DOC_MODULE
) --source-dir
=$(DOC_SOURCE_DIR
) --ignore-headers
="$(IGNORE_HFILES)" $(SCAN_OPTIONS
) $(EXTRA_HFILES
)
59 if grep
-l
'^..*$$' $(srcdir)/$(DOC_MODULE
).types
> /dev
/null
2>&1 ; then \
60 CC
="$(GTKDOC_CC)" LD
="$(GTKDOC_LD)" CFLAGS
="$(GTKDOC_CFLAGS)" LDFLAGS
="$(GTKDOC_LIBS)" $(top_builddir
)/gtkdoc-scangobj
--module
=$(DOC_MODULE
) --output-dir
=$(srcdir) $(SCANGOBJ_OPTIONS
); \
63 for i in
$(SCANOBJ_FILES
) ; do \
64 test -f
$$i || touch
$$i ; \
67 touch scan-build.stamp
69 $(DOC_MODULE
)-decl.txt
$(SCANOBJ_FILES
) $(DOC_MODULE
)-sections.txt
$(DOC_MODULE
)-overrides.txt
: scan-build.stamp
74 tmpl-build.stamp
: $(DOC_MODULE
)-decl.txt
$(SCANOBJ_FILES
) $(DOC_MODULE
)-sections.txt
$(DOC_MODULE
)-overrides.txt
75 @echo
'gtk-doc: Rebuilding template files'
76 @
-chmod
-R u
+w
$(srcdir)
77 @PATH
=$(top_builddir
):$(PATH
) PERL5LIB
=$(top_builddir
):$(PERL5LIB
) && cd
$(srcdir) && \
78 gtkdoc-mktmpl
--module
=$(DOC_MODULE
) $(MKTMPL_OPTIONS
)
79 touch tmpl-build.stamp
81 tmpl.stamp
: tmpl-build.stamp
90 sgml-build.stamp
: tmpl.stamp
$(HFILE_GLOB
) $(CFILE_GLOB
) $(DOC_MODULE
)-sections.txt
$(srcdir)/tmpl
/*.sgml
$(expand_content_files
)
91 @echo
'gtk-doc: Building XML'
92 @
-chmod
-R u
+w
$(srcdir)
93 @PATH
=$(top_builddir
):$(PATH
) PERL5LIB
=$(top_builddir
):$(PERL5LIB
) && cd
$(srcdir) && \
94 gtkdoc-mkdb
--module
=$(DOC_MODULE
) --source-dir
=$(DOC_SOURCE_DIR
) --output-format
=xml
--expand-content-files
="$(expand_content_files)" --main-sgml-file
=$(DOC_MAIN_SGML_FILE
) $(MKDB_OPTIONS
)
95 touch sgml-build.stamp
97 sgml.stamp
: sgml-build.stamp
102 html-build.stamp
: sgml.stamp
$(DOC_MAIN_SGML_FILE
) $(content_files
)
103 @echo
'gtk-doc: Building HTML'
104 @
-chmod
-R u
+w
$(srcdir)
105 rm -rf
$(srcdir)/html
107 @PATH
=$(top_builddir
):$(PATH
) PERL5LIB
=$(top_builddir
):$(PERL5LIB
) && cd
$(srcdir)/html
&& \
108 gtkdoc-mkhtml
$(DOC_MODULE
) ..
/$(DOC_MAIN_SGML_FILE
) $(MKHTML_OPTIONS
)
109 test "x$(HTML_IMAGES)" = "x" ||
( cd
$(srcdir) && cp
$(HTML_IMAGES
) html
)
110 @echo
'gtk-doc: Fixing cross-references'
111 @PATH
=$(top_builddir
):$(PATH
) PERL5LIB
=$(top_builddir
):$(PERL5LIB
) && cd
$(srcdir) && \
112 gtkdoc-fixxref
--module-dir
=html
--html-dir
=$(HTML_DIR
) $(FIXXREF_OPTIONS
)
113 touch html-build.stamp
117 # we need to enforce a rebuild for the tests
122 rm -rf xml
$(REPORT_FILES
) \
123 $(DOC_MODULE
)-decl-list.txt
$(DOC_MODULE
)-decl.txt
127 rm -rf xml
$(REPORT_FILES
) \
128 $(DOC_MODULE
)-decl-list.txt
$(DOC_MODULE
)-decl.txt
130 maintainer-clean-local
: clean
131 cd
$(srcdir) && rm -rf xml html
134 -installfiles
=`echo $(srcdir)/html/*`; \
135 if
test "$$installfiles" = '$(srcdir)/html/*'; \
136 then echo
'-- Nothing to install' ; \
138 $(mkinstalldirs
) $(DESTDIR
)$(TARGET_DIR
); \
139 for i in
$$installfiles; do \
140 echo
'-- Installing '$$i ; \
141 $(INSTALL_DATA
) $$i $(DESTDIR
)$(TARGET_DIR
); \
143 echo
'-- Installing $(srcdir)/html/index.sgml' ; \
144 $(INSTALL_DATA
) $(srcdir)/html
/index.sgml
$(DESTDIR
)$(TARGET_DIR
) ||
:; \
145 which gtkdoc-rebase
>/dev
/null
&& \
146 gtkdoc-rebase
--relative
--dest-dir
=$(DESTDIR
) --html-dir
=$(DESTDIR
)$(TARGET_DIR
) ; \
150 rm -f
$(DESTDIR
)$(TARGET_DIR
)/*
153 # Require gtk-doc when making dist
157 dist-hook
: dist-check-gtkdoc dist-hook-local
158 mkdir
$(distdir
)/tmpl
160 mkdir
$(distdir
)/html
161 -cp
$(srcdir)/tmpl
/*.sgml
$(distdir
)/tmpl
162 -cp
$(srcdir)/xml
/*.xml
$(distdir
)/xml
163 cp
$(srcdir)/html
/* $(distdir
)/html
164 -cp
$(srcdir)/$(DOC_MODULE
).types
$(distdir
)/
165 -cp
$(srcdir)/$(DOC_MODULE
)-sections.txt
$(distdir
)/
166 cd
$(distdir
) && rm -f
$(DISTCLEANFILES
)
167 -gtkdoc-rebase
--online
--relative
--html-dir
=$(distdir
)/html
169 .PHONY
: dist-hook-local docs