]> Pileus Git - ~andy/gtk/blob - gtk/Makefile.am
Look for windres on Win32.
[~andy/gtk] / gtk / Makefile.am
1 # Makefile.am for gtk+/gtk
2
3 SUBDIRS=stock-icons theme-bits
4
5 if OS_UNIX
6 SUBDIRS += xdgmime
7 endif
8
9 DIST_SUBDIRS=stock-icons theme-bits xdgmime
10
11 INCLUDES =                                              \
12         -DG_LOG_DOMAIN=\"Gtk\"                          \
13         -DGTK_LIBDIR=\"$(libdir)\"                      \
14         -DGTK_DATADIR=\"$(datadir)\"                    \
15         -DGTK_DATA_PREFIX=\"$(prefix)\"                 \
16         -DGTK_SYSCONFDIR=\"$(sysconfdir)\"              \
17         -DGTK_VERSION=\"$(GTK_VERSION)\"                \
18         -DGTK_BINARY_VERSION=\"$(GTK_BINARY_VERSION)\"  \
19         -DGTK_HOST=\"$(host)\"                          \
20         -DGTK_COMPILATION                               \
21         -I$(top_builddir)/gtk                           \
22         -I$(top_srcdir) -I../gdk                        \
23         -I$(top_srcdir)/gdk                             \
24         -I$(top_srcdir)/gdk-pixbuf -I../gdk-pixbuf      \
25         -DG_DISABLE_DEPRECATED                          \
26         -DGDK_PIXBUF_DISABLE_DEPRECATED                 \
27         -DGDK_DISABLE_DEPRECATED                        \
28         -DGTK_DISABLE_DEPRECATED                        \
29         -DGTK_FILE_SYSTEM_ENABLE_UNSUPPORTED            \
30         $(GTK_DEBUG_FLAGS)                              \
31         $(GTK_DEP_CFLAGS)
32
33 gtarget=$(gdktarget)
34
35 if PLATFORM_WIN32
36 no_undefined = -no-undefined
37 endif
38
39 if OS_WIN32
40 gtk_def = gtk.def
41 gtk_win32_symbols = -export-symbols $(gtk_def)
42
43 gtk_win32_res = gtk-win32-res.o
44 gtk_win32_res_ldflag = -Wl,$(gtk_win32_res)
45
46 gtk-win32-res.o : gtk-win32.rc
47         $(WINDRES) gtk-win32.rc $@
48
49 install-def-file: gtk.def
50         $(INSTALL) $(gtk_def) $(DESTDIR)$(libdir)/gtk-win32-2.0.def
51 uninstall-def-file:
52         -rm $(DESTDIR)$(libdir)/gtk-win32-2.0.def
53 else
54 install-def-file:
55 uninstall-def-file:
56 endif
57
58 if MS_LIB_AVAILABLE
59 noinst_DATA = gtk-win32-$(GTK_API_VERSION).lib
60
61 gtk-win32-$(GTK_API_VERSION).lib: libgtk-win32-$(GTK_API_VERSION).la gtk.def
62         lib -name:libgtk-win32-$(GTK_API_VERSION)-@LT_CURRENT_MINUS_AGE@.dll -def:gtk.def -out:$@
63
64 install-ms-lib:
65         $(INSTALL) gtk-win32-$(GTK_API_VERSION).lib $(DESTDIR)$(libdir)
66
67 uninstall-ms-lib:
68         -rm $(DESTDIR)$(libdir)/gtk-win32-$(GTK_API_VERSION).lib
69 else
70 install-ms-lib:
71 uninstall-ms-lib:
72 endif
73
74 gtk.def: gtk.symbols
75         (echo -e EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/gtk.symbols | sed -e '/^$$/d' -e 's/^/    /' -e 's/G_GNUC_[^ ]*//g') > gtk.def
76
77 gtkalias.h: gtk.symbols
78           $(PERL) $(srcdir)/makegtkalias.pl < $(srcdir)/gtk.symbols > gtkalias.h
79 gtkaliasdef.c: gtk.symbols
80           $(PERL) $(srcdir)/makegtkalias.pl -def < $(srcdir)/gtk.symbols > gtkaliasdef.c
81
82 if OS_LINUX
83 TESTS = abicheck.sh
84 endif
85
86 # libtool stuff: set version and export symbols for resolving
87 # since automake doesn't support conditionalized libsomething_la_LDFLAGS
88 # we use the general approach here
89 libgtkincludedir = $(includedir)/gtk-2.0/gtk
90 libadd =                                                                \
91         $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la  \
92         $(top_builddir)/gdk/$(gdktargetlib)                             \
93         $(GTK_DEP_LIBS)
94
95 if OS_UNIX
96 libadd += xdgmime/libxdgmime.la
97 endif
98
99 # common options for the various packages.
100 libtool_opts =                                                  \
101   -version-info $(LT_VERSION_INFO)                              \
102   -export-dynamic $(no_undefined) $(LIBTOOL_EXPORT_OPTIONS)     \
103   -rpath $(libdir) $(libgtk_target_ldflags)
104
105
106 #
107 # setup source file variables
108 #
109
110 # GTK+ header files for public installation (non-generated, or generated
111 # by configure)
112 gtk_public_h_sources =          \
113         gtk.h                   \
114         gtkaboutdialog.h        \
115         gtkaccelgroup.h         \
116         gtkaccellabel.h         \
117         gtkaccelmap.h           \
118         gtkaccessible.h         \
119         gtkaction.h             \
120         gtkactiongroup.h        \
121         gtkadjustment.h         \
122         gtkalignment.h          \
123         gtkarrow.h              \
124         gtkaspectframe.h        \
125         gtkbbox.h               \
126         gtkbin.h                \
127         gtkbindings.h           \
128         gtkbox.h                \
129         gtkbutton.h             \
130         gtkcalendar.h           \
131         gtkcelleditable.h       \
132         gtkcelllayout.h         \
133         gtkcellrenderer.h       \
134         gtkcellrenderercombo.h  \
135         gtkcellrendererpixbuf.h \
136         gtkcellrendererprogress.h \
137         gtkcellrenderertext.h   \
138         gtkcellrenderertoggle.h \
139         gtkcellview.h           \
140         gtkcheckbutton.h        \
141         gtkcheckmenuitem.h      \
142         gtkclipboard.h          \
143         gtkclist.h              \
144         gtkclipboard.h          \
145         gtkcolorbutton.h        \
146         gtkcolorsel.h           \
147         gtkcolorseldialog.h     \
148         gtkcombo.h              \
149         gtkcombobox.h           \
150         gtkcomboboxentry.h      \
151         gtkcontainer.h          \
152         gtkctree.h              \
153         gtkcurve.h              \
154         gtkdebug.h              \
155         gtkdialog.h             \
156         gtkdnd.h                \
157         gtkdrawingarea.h        \
158         gtkeditable.h           \
159         gtkentry.h              \
160         gtkentrycompletion.h    \
161         gtkenums.h              \
162         gtkeventbox.h           \
163         gtkexpander.h           \
164         gtkfilechooser.h        \
165         gtkfilechooserbutton.h  \
166         gtkfilechooserdialog.h  \
167         gtkfilechooserwidget.h  \
168         gtkfilefilter.h         \
169         gtkfilesel.h            \
170         gtkfixed.h              \
171         gtkfontbutton.h         \
172         gtkfontsel.h            \
173         gtkframe.h              \
174         gtkgamma.h              \
175         gtkgc.h                 \
176         gtkhandlebox.h          \
177         gtkhbbox.h              \
178         gtkhbox.h               \
179         gtkhpaned.h             \
180         gtkhruler.h             \
181         gtkhscale.h             \
182         gtkhscrollbar.h         \
183         gtkhseparator.h         \
184         gtkiconfactory.h        \
185         gtkicontheme.h          \
186         gtkiconview.h           \
187         gtkimage.h              \
188         gtkimagemenuitem.h      \
189         gtkimcontext.h          \
190         gtkimcontextsimple.h    \
191         gtkimmodule.h           \
192         gtkimmulticontext.h     \
193         gtkinputdialog.h        \
194         gtkinvisible.h          \
195         gtkitem.h               \
196         gtkitemfactory.h        \
197         gtklabel.h              \
198         gtklayout.h             \
199         gtklist.h               \
200         gtklistitem.h           \
201         gtkliststore.h          \
202         gtkmain.h               \
203         gtkmenu.h               \
204         gtkmenubar.h            \
205         gtkmenuitem.h           \
206         gtkmenushell.h          \
207         gtkmenutoolbutton.h     \
208         gtkmessagedialog.h      \
209         gtkmisc.h               \
210         gtkmodules.h            \
211         gtknotebook.h           \
212         gtkobject.h             \
213         gtkoldeditable.h        \
214         gtkoptionmenu.h         \
215         gtkpaned.h              \
216         gtkpixmap.h             \
217         gtkplug.h               \
218         gtkpreview.h            \
219         gtkprivate.h            \
220         gtkprogress.h           \
221         gtkprogressbar.h        \
222         gtkradioaction.h        \
223         gtkradiobutton.h        \
224         gtkradiomenuitem.h      \
225         gtkradiotoolbutton.h    \
226         gtkrange.h              \
227         gtkrc.h                 \
228         gtkruler.h              \
229         gtkscale.h              \
230         gtkscrollbar.h          \
231         gtkscrolledwindow.h     \
232         gtkselection.h          \
233         gtkseparator.h          \
234         gtkseparatormenuitem.h  \
235         gtkseparatortoolitem.h  \
236         gtksettings.h           \
237         gtksignal.h             \
238         gtksizegroup.h          \
239         gtksocket.h             \
240         gtkspinbutton.h         \
241         gtkstatusbar.h          \
242         gtkstock.h              \
243         gtkstyle.h              \
244         gtktable.h              \
245         gtktearoffmenuitem.h    \
246         gtktext.h               \
247         gtktextbuffer.h         \
248         gtktextchild.h          \
249         gtktextdisplay.h        \
250         gtktextiter.h           \
251         gtktextmark.h           \
252         gtktexttag.h            \
253         gtktexttagtable.h       \
254         gtktextview.h           \
255         gtktipsquery.h          \
256         gtktoggleaction.h       \
257         gtktogglebutton.h       \
258         gtktoggletoolbutton.h   \
259         gtktoolbar.h            \
260         gtktoolbutton.h         \
261         gtktoolitem.h           \
262         gtktooltips.h           \
263         gtktree.h               \
264         gtktreednd.h            \
265         gtktreeitem.h           \
266         gtktreemodel.h          \
267         gtktreemodelfilter.h    \
268         gtktreemodelsort.h      \
269         gtktreeselection.h      \
270         gtktreesortable.h       \
271         gtktreestore.h          \
272         gtktreeview.h           \
273         gtktreeviewcolumn.h     \
274         gtktypeutils.h          \
275         gtkuimanager.h          \
276         gtkvbbox.h              \
277         gtkvbox.h               \
278         gtkviewport.h           \
279         gtkvpaned.h             \
280         gtkvruler.h             \
281         gtkvscale.h             \
282         gtkvscrollbar.h         \
283         gtkvseparator.h         \
284         gtkwidget.h             \
285         gtkwindow.h
286
287 # Installed header files without compatibility guarantees
288 # that are not include in gtk/gtk.h
289 gtk_semi_private_h_sources =    \
290         gtktextlayout.h         \
291         gtkfilesystem.h
292
293 # GTK+ header files that don't get installed
294 gtk_private_h_sources =         \
295         gtkdndcursors.h         \
296         gtkentryprivate.h       \
297         gtkfilechooserembed.h   \
298         gtkfilechooserentry.h   \
299         gtkfilechooserdefault.h \
300         gtkfilechooserprivate.h \
301         gtkfilechooserutils.h   \
302         gtkfilesystemunix.h     \
303         gtkfilesystemmodel.h    \
304         gtkiconcache.h          \
305         gtkpathbar.h            \
306         gtkrbtree.h             \
307         gtksequence.h           \
308         gtktextbtree.h          \
309         gtktextchildprivate.h   \
310         gtktextsegment.h        \
311         gtktexttypes.h          \
312         gtktextutil.h           \
313         gtktextiterprivate.h    \
314         gtktextmarkprivate.h    \
315         gtktexttagprivate.h     \
316         gtkthemes.h             \
317         gtktreedatalist.h       \
318         gtktreeprivate.h        \
319         gtkwindow-decorate.h    \
320         gtktoggleactionprivate.h
321
322 # GTK+ C sources to build the library from
323 gtk_c_sources =                 \
324         fnmatch.c               \
325         gtkaboutdialog.c        \
326         gtkaccelgroup.c         \
327         gtkaccellabel.c         \
328         gtkaccelmap.c           \
329         gtkaccessible.c         \
330         gtkaction.c             \
331         gtkactiongroup.c        \
332         gtkadjustment.c         \
333         gtkalignment.c          \
334         gtkarrow.c              \
335         gtkaspectframe.c        \
336         gtkbbox.c               \
337         gtkbin.c                \
338         gtkbindings.c           \
339         gtkbox.c                \
340         gtkbutton.c             \
341         gtkcalendar.c           \
342         gtkcelleditable.c       \
343         gtkcelllayout.c         \
344         gtkcellrenderer.c       \
345         gtkcellrenderercombo.c  \
346         gtkcellrendererpixbuf.c \
347         gtkcellrendererprogress.c \
348         gtkcellrenderertext.c   \
349         gtkcellrenderertoggle.c \
350         gtkcellview.c           \
351         gtkcheckbutton.c        \
352         gtkcheckmenuitem.c      \
353         gtkclipboard.c          \
354         gtkclist.c              \
355         gtkcolorbutton.c        \
356         gtkcolorsel.c           \
357         gtkcolorseldialog.c     \
358         gtkcombo.c              \
359         gtkcombobox.c           \
360         gtkcomboboxentry.c      \
361         gtkcontainer.c          \
362         gtkctree.c              \
363         gtkcurve.c              \
364         gtkdialog.c             \
365         gtkdnd.c                \
366         gtkdrawingarea.c        \
367         gtkeditable.c           \
368         gtkentry.c              \
369         gtkentrycompletion.c    \
370         gtkeventbox.c           \
371         gtkexpander.c           \
372         gtkfilechooser.c        \
373         gtkfilechooserbutton.c  \
374         gtkfilechooserdialog.c  \
375         gtkfilechooserembed.c   \
376         gtkfilechooserentry.c   \
377         gtkfilechooserdefault.c \
378         gtkfilechooserutils.c   \
379         gtkfilechooserwidget.c  \
380         gtkfilefilter.c         \
381         gtkfilesel.c            \
382         gtkfilesystem.c         \
383         gtkfilesystemmodel.c    \
384         gtkfixed.c              \
385         gtkfontbutton.c         \
386         gtkfontsel.c            \
387         gtkframe.c              \
388         gtkgamma.c              \
389         gtkgc.c                 \
390         gtkhandlebox.c          \
391         gtkhbbox.c              \
392         gtkhbox.c               \
393         gtkhpaned.c             \
394         gtkhruler.c             \
395         gtkhscale.c             \
396         gtkhscrollbar.c         \
397         gtkhseparator.c         \
398         gtkhsv.c                \
399         gtkhsv.h                \
400         gtkiconfactory.c        \
401         gtkiconcache.c          \
402         gtkicontheme.c          \
403         gtkiconview.c           \
404         gtkimage.c              \
405         gtkimagemenuitem.c      \
406         gtkimcontext.c          \
407         gtkimcontextsimple.c    \
408         gtkimmodule.c           \
409         gtkimmulticontext.c     \
410         gtkinputdialog.c        \
411         gtkintl.h               \
412         gtkinvisible.c          \
413         gtkitem.c               \
414         gtkitemfactory.c        \
415         gtkkeyhash.c            \
416         gtkkeyhash.h            \
417         gtklabel.c              \
418         gtklayout.c             \
419         gtklist.c               \
420         gtklistitem.c           \
421         gtkliststore.c          \
422         gtkmain.c               \
423         gtkmarshal.c            \
424         gtkmarshalers.c         \
425         gtkmenu.c               \
426         gtkmenubar.c            \
427         gtkmenuitem.c           \
428         gtkmenushell.c          \
429         gtkmenutoolbutton.c     \
430         gtkmessagedialog.c      \
431         gtkmisc.c               \
432         gtkmnemonichash.c       \
433         gtkmnemonichash.h       \
434         gtkmodules.c            \
435         gtknotebook.c           \
436         gtkobject.c             \
437         gtkoldeditable.c        \
438         gtkoptionmenu.c         \
439         gtkpaned.c              \
440         gtkpathbar.c            \
441         gtkpixmap.c             \
442         gtkpreview.c            \
443         gtkprogress.c           \
444         gtkprogressbar.c        \
445         gtkradioaction.c        \
446         gtkradiobutton.c        \
447         gtkradiomenuitem.c      \
448         gtkradiotoolbutton.c    \
449         gtkrange.c              \
450         gtkrbtree.c             \
451         gtkrc.c                 \
452         gtkruler.c              \
453         gtkscale.c              \
454         gtkscrollbar.c          \
455         gtkscrolledwindow.c     \
456         gtksequence.c           \
457         gtkselection.c          \
458         gtkseparator.c          \
459         gtkseparatormenuitem.c  \
460         gtkseparatortoolitem.c  \
461         gtksettings.c           \
462         gtksignal.c             \
463         gtksizegroup.c          \
464         gtkspinbutton.c         \
465         gtkstatusbar.c          \
466         gtkstock.c              \
467         gtkstyle.c              \
468         gtktable.c              \
469         gtktearoffmenuitem.c    \
470         gtktext.c               \
471         gtktextbtree.c          \
472         gtktextbuffer.c         \
473         gtktextchild.c          \
474         gtktextdisplay.c        \
475         gtktextiter.c           \
476         gtktextiterprivate.h    \
477         gtktextlayout.c         \
478         gtktextmark.c           \
479         gtktextmarkprivate.h    \
480         gtktextsegment.c        \
481         gtktexttag.c            \
482         gtktexttagtable.c       \
483         gtktexttypes.c          \
484         gtktextutil.c           \
485         gtktextview.c           \
486         gtkthemes.c             \
487         gtktipsquery.c          \
488         gtktoggleaction.c       \
489         gtktogglebutton.c       \
490         gtktoggletoolbutton.c   \
491         gtktoolbar.c            \
492         gtktoolbutton.c         \
493         gtktoolitem.c           \
494         gtktooltips.c           \
495         gtktree.c               \
496         gtktreedatalist.c       \
497         gtktreednd.c            \
498         gtktreeitem.c           \
499         gtktreemodel.c          \
500         gtktreemodelfilter.c    \
501         gtktreemodelsort.c      \
502         gtktreeselection.c      \
503         gtktreesortable.c       \
504         gtktreestore.c          \
505         gtktreeview.c           \
506         gtktreeviewcolumn.c     \
507         gtktypebuiltins.c       \
508         gtktypeutils.c          \
509         gtkuimanager.c          \
510         gtkvbbox.c              \
511         gtkvbox.c               \
512         gtkviewport.c           \
513         gtkvpaned.c             \
514         gtkvruler.c             \
515         gtkvscale.c             \
516         gtkvscrollbar.c         \
517         gtkvseparator.c         \
518         gtkwidget.c             \
519         gtkwindow-decorate.c    \
520         gtkwindow.c             \
521         xembed.h
522
523 if OS_UNIX
524 gtk_private_h_sources += gtkfilesystemunix.h
525 gtk_c_sources +=         gtkfilesystemunix.c
526 endif
527
528 if OS_WIN32
529 gtk_private_h_sources += gtkfilesystemwin32.h
530 gtk_c_sources +=         gtkfilesystemwin32.c
531 endif
532
533 gtk_plug_c_sources =            \
534         gtkplug.c               \
535         gtksocket.c             \
536         gtkxembed.c             \
537         gtkxembed.h
538
539 # we use our own built_sources variable rules to avoid automake's
540 # BUILT_SOURCES oddities
541 # we generate frequently rebuild files piggyback on a stamp file, so sources
542 # depending on them only get rebuild when the built source actually changed
543 # content
544
545 # built sources that get installed with the header files
546 gtk_built_public_sources =                      \
547         gtkmarshal.h                            \
548         gtktypebuiltins.h
549
550 # built sources that don't get installed
551 gtk_built_private_headers =                     \
552         gtkalias.h                              \
553         gtkmarshalers.h
554
555 gtk_built_sources =                             \
556         gtkaliasdef.c                           \
557         gtktypebuiltins.c                       \
558         gtkmarshalers.c                         \
559         gtkmarshalers.h                         \
560         gtkmarshal.c                            \
561         ${gtk_built_private_headers}            \
562         ${gtk_built_public_sources}
563
564 stamp_files =                                   \
565         stamp-gtkmarshalers.h                   \
566         stamp-gtkmarshal.h                      \
567         stamp-gtktypebuiltins.h
568
569 # non-header sources (headers should be specified in the above variables)
570 # that don't serve as direct make target sources, i.e. they don't have
571 # their own .lo rules and don't get publically installed
572 gtk_extra_sources =                             \
573         gtk.symbols                             \
574         gtkversion.h.in                         \
575         gtkmarshalers.list                      \
576         gtkmarshal.list
577
578 #
579 # setup GTK+ sources and their dependencies
580 #
581 MAINTAINERCLEANFILES = $(gtk_built_sources) $(stamp_files)
582 EXTRA_HEADERS =
583 EXTRA_DIST = $(gtk_private_h_sources) $(gtk_extra_sources)
584 EXTRA_DIST += $(gtk_built_sources)
585
586 #
587 # rules to generate built sources
588 #
589 # setup autogeneration dependencies
590 gen_sources = xgen-gdef xgen-gtbh xgen-gtic xgen-gmh xgen-gmc xgen-gmlh xgen-gmlc
591 CLEANFILES = $(gen_sources)
592
593 BUILT_SOURCES = $(gtk_built_sources)
594
595 # all autogenerated files need to be generated in the srcdir,
596 # so old versions get remade and are not confused with newer
597 # versions in the build dir. thus a development setup requires
598 # srcdir to be writable, passing --disable-rebuilds to
599 # ../configure will supress all autogeneration rules.
600 gtkmarshalers.h: stamp-gtkmarshalers.h
601         @true
602 stamp-gtkmarshalers.h: @REBUILD@ gtkmarshalers.list
603         $(GLIB_GENMARSHAL) --prefix=_gtk_marshal $(srcdir)/gtkmarshalers.list --header >> xgen-gmlh \
604         && (cmp -s xgen-gmlh gtkmarshalers.h || cp xgen-gmlh gtkmarshalers.h) \
605         && rm -f xgen-gmlh \
606         && echo timestamp > $(@F)       
607 gtkmarshalers.c: @REBUILD@ gtkmarshalers.list
608         (echo "#include \"gtkalias.h\""; $(GLIB_GENMARSHAL) --prefix=_gtk_marshal $(srcdir)/gtkmarshalers.list --body) >> xgen-gmlc \
609         && cp xgen-gmlc gtkmarshalers.c \
610         && rm -f xgen-gmlc
611
612 gtkmarshal.h: stamp-gtkmarshal.h
613         @true
614 stamp-gtkmarshal.h: @REBUILD@ gtkmarshal.list
615         echo "#ifndef GTK_DISABLE_DEPRECATED" > xgen-gmh                                        \
616         && $(GLIB_GENMARSHAL) --prefix=gtk_marshal $(srcdir)/gtkmarshal.list --header >> xgen-gmh \
617         && echo "#endif /* GTK_DISABLE_DEPRECATED */" >> xgen-gmh \
618         && (cmp -s xgen-gmh gtkmarshal.h || cp xgen-gmh gtkmarshal.h) \
619         && rm -f xgen-gmh \
620         && echo timestamp > $(@F)
621 gtkmarshal.c: @REBUILD@ gtkmarshal.list
622         (echo "#include \"gtkalias.h\""; $(GLIB_GENMARSHAL) --prefix=gtk_marshal $(srcdir)/gtkmarshal.list --body) >> xgen-gmc \
623         && cp xgen-gmc gtkmarshal.c \
624         && rm -f xgen-gmc 
625
626 gtktypebuiltins.h: stamp-gtktypebuiltins.h
627         @true
628 stamp-gtktypebuiltins.h: @REBUILD@ $(gtk_public_h_sources) Makefile
629         ( cd $(srcdir) && glib-mkenums \
630                         --fhead "#ifndef __GTK_TYPE_BUILTINS_H__\n#define __GTK_TYPE_BUILTINS_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
631                         --fprod "/* enumerations from \"@filename@\" */\n" \
632                         --vhead "GType @enum_name@_get_type (void) G_GNUC_CONST;\n#define GTK_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
633                         --ftail "G_END_DECLS\n\n#endif /* __GTK_TYPE_BUILTINS_H__ */" \
634                 $(gtk_public_h_sources) ) >> xgen-gtbh \
635         && (cmp -s xgen-gtbh gtktypebuiltins.h || cp xgen-gtbh gtktypebuiltins.h ) \
636         && rm -f xgen-gtbh \
637         && echo timestamp > $(@F)
638 gtktypebuiltins.c: @REBUILD@ $(gtk_public_h_sources) Makefile
639         ( cd $(srcdir) && glib-mkenums \
640                         --fhead "#undef GTK_DISABLE_DEPRECATED\n#define GTK_ENABLE_BROKEN\n#include \"gtk.h\"\n#include \"gtkprivate.h\"\n#include \"gtkalias.h\"\n" \
641                         --ftail "#define __GTK_TYPE_BUILTINS_C__\n#include \"gtkaliasdef.c\"\n" \
642                         --fprod "\n/* enumerations from \"@filename@\" */" \
643                         --vhead "GType\n@enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G@Type@Value values[] = {" \
644                         --vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
645                         --vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values);\n  }\n  return etype;\n}\n" \
646                 $(gtk_public_h_sources) ) > xgen-gtbc \
647         && cp xgen-gtbc gtktypebuiltins.c  \
648         && rm -f xgen-gtbc
649
650 # target platform:
651 lib_LTLIBRARIES = $(gtktargetlib)
652
653 gtkincludedir = $(includedir)/gtk-2.0/gtk
654 gtkinclude_HEADERS = $(gtk_public_h_sources) $(gtk_semi_private_h_sources) $(gtk_built_public_sources) gtkversion.h
655
656 libgtk_x11_2_0_la_SOURCES = $(gtk_c_sources) $(gtk_plug_c_sources)
657 libgtk_linux_fb_2_0_la_SOURCES = $(gtk_c_sources)
658 libgtk_win32_2_0_la_SOURCES = $(gtk_c_sources)
659
660 libgtk_x11_2_0_la_LDFLAGS = $(libtool_opts)
661 libgtk_linux_fb_2_0_la_LDFLAGS = $(libtool_opts)
662 libgtk_win32_2_0_la_LDFLAGS = $(libtool_opts)
663
664 libgtk_x11_2_0_la_LIBADD = $(libadd)
665 libgtk_linux_fb_2_0_la_LIBADD = $(libadd)
666 libgtk_win32_2_0_la_LIBADD = $(libadd) -lole32
667 libgtk_win32_2_0_la_DEPENDENCIES = $(gtk_def) $(gtk_win32_res)
668
669 if USE_WIN32
670 libgtk_target_ldflags = $(gtk_win32_res_ldflag) $(gtk_win32_symbols)
671 endif
672 EXTRA_LTLIBRARIES = libgtk-x11-2.0.la libgtk-linux-fb-2.0.la libgtk-win32-2.0.la
673
674 install-exec-hook: 
675 if DISABLE_EXPLICIT_DEPS
676         $(SHELL) $(top_srcdir)/sanitize-la.sh $(DESTDIR)$(libdir)/$(gtktargetlib)
677 endif
678
679 # Install a RC file for the default GTK+ theme, and key themes
680 install-data-local: install-ms-lib install-def-file
681         $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0
682         $(INSTALL_DATA) $(srcdir)/gtkrc.default $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
683         $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key
684         $(INSTALL_DATA) $(srcdir)/gtkrc.key.default $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key/gtkrc
685         $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key
686         $(INSTALL_DATA) $(srcdir)/gtkrc.key.emacs $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key/gtkrc
687
688 uninstall-local: uninstall-ms-lib uninstall-def-file
689         rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
690         rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key/gtkrc
691         rm -f $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key/gtkrc
692
693 # if srcdir!=builddir, clean out maintainer-clean files from builddir
694 # this allows dist to pass.
695 distclean-local:
696         if test $(srcdir) != .; then \
697           rm -f $(MAINTAINERCLEANFILES); \
698         fi
699
700 DEPS = $(gtktargetlib) $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la $(top_builddir)/gdk/$(gdktargetlib)
701
702 TEST_DEPS = $(DEPS) gtk.immodules
703
704 LDADDS =                                                                \
705         $(gtktargetlib)                                                 \
706         $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la  \
707         $(top_builddir)/gdk/$(gdktargetlib)
708
709 #
710 # Installed tools
711 #
712 bin_PROGRAMS = gtk-query-immodules-2.0 gtk-update-icon-cache
713
714 gtk_query_immodules_2_0_DEPENDENCIES = $(DEPS)
715 gtk_query_immodules_2_0_LDADD = $(LDADDS)
716
717 gtk_query_immodules_2_0_SOURCES = queryimmodules.c
718
719
720 gtk_update_icon_cache_DEPENDENCIES = $(DEPS)
721 gtk_update_icon_cache_LDADD = $(LDADDS)
722
723 gtk_update_icon_cache_SOURCES = updateiconcache.c
724
725 .PHONY: files test test-debug
726
727 files:
728         @files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
729           echo $$p; \
730         done
731
732 EXTRA_DIST +=                   \
733         line-arrow.xbm          \
734         line-wrap.xbm           \
735         tree_plus.xbm           \
736         tree_minus.xbm          \
737         tree_minus.xpm          \
738         tree_plus.xpm           \
739         gtk.def                 \
740         gtk-win32.rc            \
741         gtk-win32.rc.in         \
742         gtkfilesystemwin32.h    \
743         gtkfilesystemwin32.c    \
744         gtkrc.default           \
745         gtkrc.key.default       \
746         gtkrc.key.emacs         \
747         makefile.msc            \
748         makefile.msc.in         \
749         makegtkalias.pl         \
750         abicheck.sh
751
752 install-data-local: