]> Pileus Git - ~andy/gtk/blob - docs/reference/gtk/Makefile.am
22abcc87539e8d6fe68afa970cf91ac0f0487fbf
[~andy/gtk] / docs / reference / gtk / Makefile.am
1 ## Process this file with automake to produce Makefile.in
2
3 # The name of the module.
4 DOC_MODULE=gtk
5
6 # The top-level SGML file.
7 DOC_MAIN_SGML_FILE=gtk-docs.sgml
8
9 # The directory containing the source code. Relative to $(srcdir)
10 DOC_SOURCE_DIR=../../../gtk
11
12 # Extra options to pass to gtkdoc-scangobj
13 SCANGOBJ_OPTIONS=--type-init-func="gtk_type_init(0)" 
14
15 # Extra options to supply to gtkdoc-scan
16 SCAN_OPTIONS=--deprecated-guards="GTK_ENABLE_BROKEN|GTK_DISABLE_DEPRECATED" 
17
18 # Extra options to supply to gtkdoc-mkdb
19 MKDB_OPTIONS=--sgml-mode
20
21 # Extra options to supply to gtkdoc-fixref
22 FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
23
24 # Used for dependencies
25 HFILE_GLOB=$(top_srcdir)/gtk/*.h
26 CFILE_GLOB=$(top_srcdir)/gtk/*.c
27
28 # Header files to ignore when scanning
29 IGNORE_HFILES=                  \
30         fnmatch.h               \
31         gdk-pixbuf-loader.h     \
32         gtkdebug.h              \
33         gtkhsv.h                \
34         gtkimmodule.h           \
35         gtkintl.h               \
36         gtkkeyhash.h            \
37         gtkmarshal.h            \
38         gtkprivate.h            \
39         gtktreeprivate.h        \
40         gtkrbtree.h             \
41         gtktreedatalist.h       \
42         gtktextbtree.h          \
43         gtktextdisplay.h        \
44         gtktextiterprivate.h    \
45         gtktextlayout.h         \
46         gtktextmarkprivate.h    \
47         gtktextsegment.h        \
48         gtktexttagprivate.h     \
49         gtktexttypes.h          \
50         gtktextutil.h           \
51         gtktypebuiltins.h       \
52         xembed.h
53
54 # Images to copy into HTML directory
55 HTML_IMAGES = \
56         $(top_srcdir)/gtk/stock-icons/stock_add_24.png                  \
57         $(top_srcdir)/gtk/stock-icons/stock_apply_20.png                \
58         $(top_srcdir)/gtk/stock-icons/stock_text_bold_24.png            \
59         $(top_srcdir)/gtk/stock-icons/stock_cancel_20.png               \
60         $(top_srcdir)/gtk/stock-icons/stock_cdrom_24.png                \
61         $(top_srcdir)/gtk/stock-icons/stock_clear_24.png                \
62         $(top_srcdir)/gtk/stock-icons/stock_close_24.png                \
63         $(top_srcdir)/gtk/stock-icons/stock_convert_24.png              \
64         $(top_srcdir)/gtk/stock-icons/stock_copy_24.png                 \
65         $(top_srcdir)/gtk/stock-icons/stock_cut_24.png                  \
66         $(top_srcdir)/gtk/stock-icons/stock_trash_24.png                \
67         $(top_srcdir)/gtk/stock-icons/stock_dialog_error_48.png         \
68         $(top_srcdir)/gtk/stock-icons/stock_dialog_info_48.png          \
69         $(top_srcdir)/gtk/stock-icons/stock_dialog_question_48.png      \
70         $(top_srcdir)/gtk/stock-icons/stock_dialog_warning_48.png       \
71         $(top_srcdir)/gtk/stock-icons/stock_dnd_32.png                  \
72         $(top_srcdir)/gtk/stock-icons/stock_dnd_multiple_32.png         \
73         $(top_srcdir)/gtk/stock-icons/stock_exec_24.png                 \
74         $(top_srcdir)/gtk/stock-icons/stock_search_24.png               \
75         $(top_srcdir)/gtk/stock-icons/stock_search_replace_24.png       \
76         $(top_srcdir)/gtk/stock-icons/stock_save_24.png                 \
77         $(top_srcdir)/gtk/stock-icons/stock_bottom_24.png               \
78         $(top_srcdir)/gtk/stock-icons/stock_first_24.png                \
79         $(top_srcdir)/gtk/stock-icons/stock_last_24.png                 \
80         $(top_srcdir)/gtk/stock-icons/stock_top_24.png                  \
81         $(top_srcdir)/gtk/stock-icons/stock_left_arrow_24.png           \
82         $(top_srcdir)/gtk/stock-icons/stock_down_arrow_24.png           \
83         $(top_srcdir)/gtk/stock-icons/stock_right_arrow_24.png          \
84         $(top_srcdir)/gtk/stock-icons/stock_up_arrow_24.png             \
85         $(top_srcdir)/gtk/stock-icons/stock_help_24.png                 \
86         $(top_srcdir)/gtk/stock-icons/stock_home_24.png                 \
87         $(top_srcdir)/gtk/stock-icons/stock_index_24.png                \
88         $(top_srcdir)/gtk/stock-icons/stock_text_italic_24.png          \
89         $(top_srcdir)/gtk/stock-icons/stock_jump_to_24.png              \
90         $(top_srcdir)/gtk/stock-icons/stock_align_center_24.png         \
91         $(top_srcdir)/gtk/stock-icons/stock_align_justify_24.png        \
92         $(top_srcdir)/gtk/stock-icons/stock_align_left_24.png           \
93         $(top_srcdir)/gtk/stock-icons/stock_align_right_24.png          \
94         $(top_srcdir)/gtk/stock-icons/stock_new_24.png                  \
95         $(top_srcdir)/gtk/stock-icons/stock_no_20.png                   \
96         $(top_srcdir)/gtk/stock-icons/stock_ok_20.png                   \
97         $(top_srcdir)/gtk/stock-icons/stock_open_24.png                 \
98         $(top_srcdir)/gtk/stock-icons/stock_paste_24.png                \
99         $(top_srcdir)/gtk/stock-icons/stock_preferences_24.png          \
100         $(top_srcdir)/gtk/stock-icons/stock_print_24.png                \
101         $(top_srcdir)/gtk/stock-icons/stock_print_preview_24.png        \
102         $(top_srcdir)/gtk/stock-icons/stock_properties_24.png           \
103         $(top_srcdir)/gtk/stock-icons/stock_exit_24.png                 \
104         $(top_srcdir)/gtk/stock-icons/stock_redo_24.png                 \
105         $(top_srcdir)/gtk/stock-icons/stock_refresh_24.png              \
106         $(top_srcdir)/gtk/stock-icons/stock_remove_24.png               \
107         $(top_srcdir)/gtk/stock-icons/stock_revert_24.png               \
108         $(top_srcdir)/gtk/stock-icons/stock_save_24.png                 \
109         $(top_srcdir)/gtk/stock-icons/stock_save_as_24.png              \
110         $(top_srcdir)/gtk/stock-icons/stock_colorselector_24.png        \
111         $(top_srcdir)/gtk/stock-icons/stock_font_24.png                 \
112         $(top_srcdir)/gtk/stock-icons/stock_sort_ascending_24.png       \
113         $(top_srcdir)/gtk/stock-icons/stock_sort_descending_24.png      \
114         $(top_srcdir)/gtk/stock-icons/stock_spellcheck_24.png           \
115         $(top_srcdir)/gtk/stock-icons/stock_stop_24.png                 \
116         $(top_srcdir)/gtk/stock-icons/stock_text_strikethrough_24.png   \
117         $(top_srcdir)/gtk/stock-icons/stock_undelete_24.png             \
118         $(top_srcdir)/gtk/stock-icons/stock_text_underline_24.png       \
119         $(top_srcdir)/gtk/stock-icons/stock_undo_24.png                 \
120         $(top_srcdir)/gtk/stock-icons/stock_yes_20.png                  \
121         $(top_srcdir)/gtk/stock-icons/stock_zoom_1_24.png               \
122         $(top_srcdir)/gtk/stock-icons/stock_zoom_fit_24.png             \
123         $(top_srcdir)/gtk/stock-icons/stock_zoom_in_24.png              \
124         $(top_srcdir)/gtk/stock-icons/stock_zoom_out_24.png
125
126 # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE)
127 content_files =                 \
128         running.sgml            \
129         building.sgml           \
130         changes-1.2.sgml        \
131         changes-2.0.sgml        \
132         compiling.sgml          \
133         framebuffer.sgml        \
134         objects_grouped.sgml    \
135         question_index.sgml     \
136         resources.sgml          \
137         text_widget.sgml        \
138         tree_widget.sgml        \
139         windows.sgml            \
140         x11.sgml
141
142 # Other files to distribute
143 extra_files =
144
145 # CFLAGS and LDFLAGS for compiling scan program. Only needed
146 # if $(DOC_MODULE).types is non-empty.
147 GTKDOC_CFLAGS = @STRIP_BEGIN@                           \
148         @CFLAGS@                                        \
149         -I$(top_srcdir)                                 \
150         -I$(top_builddir)                               \
151         -I$(top_builddir)/gdk                           \
152         -DGTK_ENABLE_BROKEN                             \
153         @GTK_DEBUG_FLAGS@                               \
154         @GTK_DEP_CFLAGS@                                \
155 @STRIP_END@
156
157 GTKDOC_LIBS = @STRIP_BEGIN@                             \
158         $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la \
159         $(top_builddir)/gdk/@gdktargetlib@              \
160         $(top_builddir)/gtk/@gtktargetlib@              \
161 @STRIP_END@
162
163 GTKDOC_CC=$(LIBTOOL) --mode=compile $(CC)
164 GTKDOC_LD=$(LIBTOOL) --mode=link $(CC)
165
166
167 ####################################
168 # Everything below here is generic #
169 ####################################
170
171 # We set GPATH here; this gives us semantics for GNU make
172 # which are more like other make's VPATH, when it comes to
173 # whether a source that is a target of one rule is then
174 # searched for in VPATH/GPATH.
175 #
176 GPATH = $(srcdir)
177
178 TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
179
180 EXTRA_DIST =                            \
181         $(content_files)                \
182         $(extra_files)                  \
183         $(HTML_IMAGES)                  \
184         $(DOC_MAIN_SGML_FILE)           \
185         $(DOC_MODULE).types             \
186         $(DOC_MODULE)-sections.txt      \
187         $(DOC_MODULE)-overrides.txt
188
189 DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \
190            $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp
191
192 SCANOBJ_FILES =                 \
193         $(DOC_MODULE).args      \
194         $(DOC_MODULE).hierarchy \
195         $(DOC_MODULE).signals
196
197 if ENABLE_GTK_DOC
198 all-local: html-build.stamp
199
200 #### scan ####
201
202 scan-build.stamp: $(HFILE_GLOB)
203         @echo '*** Scanning header files ***'
204         if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null ; then \
205             CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \
206         else \
207             cd $(srcdir) ; \
208             for i in $(SCANOBJ_FILES) ; do \
209                test -f $$i || touch $$i ; \
210             done \
211         fi
212         cd $(srcdir) && \
213           gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES)
214         touch scan-build.stamp
215
216 $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): scan-build.stamp
217         @true
218
219 #### templates ####
220
221 tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
222         @echo '*** Rebuilding template files ***'
223         cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
224         touch tmpl-build.stamp
225
226 tmpl.stamp: tmpl-build.stamp
227         @true
228
229 #### sgml ####
230
231 sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) $(srcdir)/tmpl/*.sgml
232         @echo '*** Building SGML ***'
233         cd $(srcdir) && \
234         gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) $(MKDB_OPTIONS)
235         touch sgml-build.stamp
236
237 sgml.stamp: sgml-build.stamp
238         @true
239
240 #### html ####
241
242 html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
243         @echo '*** Building HTML ***'
244         rm -rf $(srcdir)/html 
245         mkdir $(srcdir)/html
246         cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
247         test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
248         @echo '-- Fixing Crossreferences' 
249         cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
250         touch html-build.stamp
251 endif
252
253 ##############
254
255 clean-local:
256         rm -f *~ *.bak $(SCANOBJ_FILES) *-unused.txt $(DOC_STAMPS)
257
258 maintainer-clean-local: clean
259         cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
260
261 install-data-local:
262         $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)
263         (installfiles=`echo $(srcdir)/html/*`; \
264         if test "$$installfiles" = '$(srcdir)/html/*'; \
265         then echo '-- Nothing to install' ; \
266         else \
267           for i in $$installfiles; do \
268             echo '-- Installing '$$i ; \
269             $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
270           done; \
271           echo '-- Installing $(srcdir)/html/index.sgml' ; \
272           $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \
273         fi)
274
275 #
276 # Require gtk-doc when making dist
277 #
278 if ENABLE_GTK_DOC
279 dist-check-gtkdoc:
280 else
281 dist-check-gtkdoc:
282         @echo "*** gtk-doc must be installed and enabled in order to make dist"
283         @false
284 endif
285
286 dist-hook: dist-check-gtkdoc dist-hook-local
287         mkdir $(distdir)/tmpl
288         mkdir $(distdir)/sgml
289         mkdir $(distdir)/html
290         -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
291         -cp $(srcdir)/sgml/*.sgml $(distdir)/sgml
292         -cp $(srcdir)/html/* $(distdir)/html
293
294 .PHONY : dist-hook-local