]>
Commit | Line | Data |
---|---|---|
a77bfc3a KZ |
1 | # -*- mode: makefile -*- |
2 | ||
3 | #################################### | |
4 | # Everything below here is generic # | |
5 | #################################### | |
6 | ||
7 | if GTK_DOC_USE_LIBTOOL | |
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) | |
10 | GTKDOC_RUN = $(LIBTOOL) --mode=execute | |
11 | else | |
12 | GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | |
13 | GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) | |
14 | GTKDOC_RUN = sh -c | |
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 | EXTRA_DIST = \ | |
27 | $(content_files) \ | |
28 | $(HTML_IMAGES) \ | |
29 | $(DOC_MAIN_SGML_FILE) \ | |
30 | $(DOC_MODULE)-sections.txt \ | |
31 | $(DOC_MODULE)-overrides.txt | |
32 | ||
33 | DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ | |
34 | $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp | |
35 | ||
36 | SCANOBJ_FILES = \ | |
37 | $(DOC_MODULE).args \ | |
38 | $(DOC_MODULE).hierarchy \ | |
39 | $(DOC_MODULE).interfaces \ | |
40 | $(DOC_MODULE).prerequisites \ | |
41 | $(DOC_MODULE).signals | |
42 | ||
43 | REPORT_FILES = \ | |
44 | $(DOC_MODULE)-undocumented.txt \ | |
45 | $(DOC_MODULE)-undeclared.txt \ | |
46 | $(DOC_MODULE)-unused.txt | |
47 | ||
48 | CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) | |
49 | ||
50 | if ENABLE_GTK_DOC | |
51 | all-local: html-build.stamp | |
52 | else | |
53 | all-local: | |
54 | endif | |
55 | ||
56 | docs: html-build.stamp | |
57 | ||
58 | $(REPORT_FILES): sgml-build.stamp | |
59 | ||
60 | #### scan #### | |
61 | ||
62 | scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) | |
63 | @echo 'gtk-doc: Scanning header files' | |
64 | @-chmod -R u+w $(srcdir) | |
65 | cd $(srcdir) && \ | |
66 | gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) | |
67 | if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \ | |
68 | CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ | |
69 | else \ | |
70 | cd $(srcdir) ; \ | |
71 | for i in $(SCANOBJ_FILES) ; do \ | |
72 | test -f $$i || touch $$i ; \ | |
73 | done \ | |
74 | fi | |
75 | touch scan-build.stamp | |
76 | ||
77 | $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp | |
78 | @true | |
79 | ||
80 | #### templates #### | |
81 | ||
82 | tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt | |
83 | @echo 'gtk-doc: Rebuilding template files' | |
84 | @-chmod -R u+w $(srcdir) | |
85 | cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) | |
86 | touch tmpl-build.stamp | |
87 | ||
88 | tmpl.stamp: tmpl-build.stamp | |
89 | @true | |
90 | ||
91 | tmpl/*.sgml: | |
92 | @true | |
93 | ||
94 | ||
95 | #### xml #### | |
96 | ||
97 | sgml-build.stamp: tmpl.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) | |
98 | @echo 'gtk-doc: Building XML' | |
99 | @-chmod -R u+w $(srcdir) | |
100 | cd $(srcdir) && \ | |
101 | 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) | |
102 | touch sgml-build.stamp | |
103 | ||
104 | sgml.stamp: sgml-build.stamp | |
105 | @true | |
106 | ||
107 | #### html #### | |
108 | ||
109 | html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) | |
110 | @echo 'gtk-doc: Building HTML' | |
111 | @-chmod -R u+w $(srcdir) | |
112 | rm -rf $(srcdir)/html | |
113 | mkdir $(srcdir)/html | |
114 | mkhtml_options=""; \ | |
115 | gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ | |
116 | if test "$(?)" = "0"; then \ | |
117 | mkhtml_options=--path="$(srcdir)"; \ | |
118 | fi | |
119 | cd $(srcdir)/html && gtkdoc-mkhtml $(mkhtml_options) $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) | |
120 | test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) | |
121 | @echo 'gtk-doc: Fixing cross-references' | |
122 | cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) | |
123 | touch html-build.stamp | |
124 | ||
125 | ############## | |
126 | ||
127 | clean-local: | |
128 | rm -f *~ *.bak | |
129 | rm -rf .libs | |
130 | ||
131 | distclean-local: | |
132 | cd $(srcdir) && \ | |
133 | rm -rf xml $(REPORT_FILES) \ | |
134 | $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt | |
135 | ||
136 | maintainer-clean-local: clean | |
137 | cd $(srcdir) && rm -rf xml html | |
138 | ||
139 | install-data-local: | |
140 | installfiles=`echo $(srcdir)/html/*`; \ | |
141 | if test "$$installfiles" = '$(srcdir)/html/*'; \ | |
142 | then echo '-- Nothing to install' ; \ | |
143 | else \ | |
144 | if test -n "$(DOC_MODULE_VERSION)"; then \ | |
145 | installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ | |
146 | else \ | |
147 | installdir="$(DESTDIR)$(TARGET_DIR)"; \ | |
148 | fi; \ | |
149 | $(mkinstalldirs) $${installdir} ; \ | |
150 | for i in $$installfiles; do \ | |
151 | echo '-- Installing '$$i ; \ | |
152 | $(INSTALL_DATA) $$i $${installdir}; \ | |
153 | done; \ | |
154 | if test -n "$(DOC_MODULE_VERSION)"; then \ | |
155 | mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ | |
156 | $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ | |
157 | mv -f $${installdir}/$(DOC_MODULE).devhelp \ | |
158 | $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \ | |
159 | fi; \ | |
160 | ! which gtkdoc-rebase >/dev/null 2>&1 || \ | |
161 | gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir} ; \ | |
162 | fi | |
163 | ||
164 | uninstall-local: | |
165 | if test -n "$(DOC_MODULE_VERSION)"; then \ | |
166 | installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ | |
167 | else \ | |
168 | installdir="$(DESTDIR)$(TARGET_DIR)"; \ | |
169 | fi; \ | |
170 | rm -rf $${installdir} | |
171 | ||
172 | # | |
173 | # Require gtk-doc when making dist | |
174 | # | |
175 | if ENABLE_GTK_DOC | |
176 | dist-check-gtkdoc: | |
177 | else | |
178 | dist-check-gtkdoc: | |
179 | @echo "*** gtk-doc must be installed and enabled in order to make dist" | |
180 | @false | |
181 | endif | |
182 | ||
183 | dist-hook: dist-check-gtkdoc dist-hook-local | |
184 | mkdir $(distdir)/tmpl | |
185 | mkdir $(distdir)/xml | |
186 | mkdir $(distdir)/html | |
187 | -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl | |
188 | -cp $(srcdir)/xml/*.xml $(distdir)/xml | |
189 | cp $(srcdir)/html/* $(distdir)/html | |
190 | -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ | |
191 | -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ | |
192 | cd $(distdir) && rm -f $(DISTCLEANFILES) | |
193 | ! which gtkdoc-rebase >/dev/null 2>&1 || \ | |
194 | gtkdoc-rebase --online --relative --html-dir=$(distdir)/html | |
195 | ||
196 | .PHONY : dist-hook-local docs |