]> Pileus Git - ~andy/gtk/blob - gtk/Makefile.am
77c92c453b75a4a0bb61ce9f5806b94d5be7c37d
[~andy/gtk] / gtk / Makefile.am
1 # Makefile.am for gtk+/gtk
2
3 SUBDIRS=stock-icons
4
5 INCLUDES = @STRIP_BEGIN@ \
6         -DG_LOG_DOMAIN=\"Gtk\"                          \
7         -DGTK_LIBDIR=\"$(libdir)\"                      \
8         -DGTK_DATA_PREFIX=\"$(prefix)\"                 \
9         -DGTK_SYSCONFDIR=\"$(sysconfdir)\"              \
10         -DGTK_LOCALEDIR=\"$(gtklocaledir)\"             \
11         -DGTK_VERSION=\"@GTK_VERSION@\"                 \
12         -DGTK_BINARY_VERSION=\"@GTK_BINARY_VERSION@\"   \
13         -DTESTGTK_RCFILE=\"`pwd`/$(srcdir)/testgtkrc\"  \
14         -DG_DISABLE_CONST_RETURNS                       \
15         -I$(top_builddir)/gtk                           \
16         -I$(top_srcdir) -I../gdk                        \
17         -I$(top_srcdir)/gdk                             \
18         -I$(top_srcdir)/gdk-pixbuf -I../gdk-pixbuf      \
19         @GTK_DEBUG_FLAGS@                               \
20         @GTK_DEP_CFLAGS@                                \
21 @STRIP_END@
22
23 gtarget=@gdktarget@
24
25 # libtool stuff: set version and export symbols for resolving
26 # since automake doesn't support conditionalized libsomething_la_LDFLAGS
27 # we use the general approach here
28 libgtkincludedir = $(includedir)/gtk-2.0/gtk
29 LDFLAGS = @STRIP_BEGIN@ \
30         -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)    \
31         -export-dynamic                                         \
32         -rpath @prefix@/lib                                     \
33         @LIBTOOL_EXPORT_OPTIONS@                                \
34         $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la         \
35         $(top_builddir)/gdk/@gdktargetlib@                      \
36         @GTK_DEP_LIBS@                                          \
37 @STRIP_END@
38
39 #
40 # setup source file variables
41 #
42
43 # GTK+ header files for public installation (non-generated, or generated
44 # by configure)
45 gtk_public_h_sources = @STRIP_BEGIN@ \
46         gtk.h                   \
47         gtkaccelgroup.h         \
48         gtkaccellabel.h         \
49         gtkaccessible.h         \
50         gtkadjustment.h         \
51         gtkalignment.h          \
52         gtkarrow.h              \
53         gtkaspectframe.h        \
54         gtkbin.h                \
55         gtkbindings.h           \
56         gtkbbox.h               \
57         gtkbox.h                \
58         gtkbutton.h             \
59         gtkcalendar.h           \
60         gtkcheckbutton.h        \
61         gtkcheckmenuitem.h      \
62         gtkseparatormenuitem.h  \
63         gtkclist.h              \
64         gtkclipboard.h          \
65         gtkcolorsel.h           \
66         gtkcolorseldialog.h     \
67         gtkcombo.h              \
68         gtkcontainer.h          \
69         gtkctree.h              \
70         gtkcurve.h              \
71         gtkcellrenderer.h       \
72         gtkcelleditable.h       \
73         gtkcellrenderertext.h   \
74         gtkcellrenderertoggle.h \
75         gtkcellrendererpixbuf.h \
76         gtkdebug.h              \
77         gtkdialog.h             \
78         gtkdnd.h                \
79         gtkdrawingarea.h        \
80         gtkeditable.h           \
81         gtkentry.h              \
82         gtkenums.h              \
83         gtkeventbox.h           \
84         gtkfilesel.h            \
85         gtkfixed.h              \
86         gtkfontsel.h            \
87         gtkframe.h              \
88         gtkgamma.h              \
89         gtkgc.h                 \
90         gtkhandlebox.h          \
91         gtkhbbox.h              \
92         gtkhbox.h               \
93         gtkhpaned.h             \
94         gtkhruler.h             \
95         gtkhscale.h             \
96         gtkhscrollbar.h         \
97         gtkhseparator.h         \
98         gtkhsv.h                \
99         gtkiconfactory.h        \
100         gtkimage.h              \
101         gtkimagemenuitem.h      \
102         gtkimcontext.h          \
103         gtkimmodule.h           \
104         gtkimmulticontext.h     \
105         gtkinputdialog.h        \
106         gtkinvisible.h          \
107         gtkitem.h               \
108         gtkitemfactory.h        \
109         gtklabel.h              \
110         gtklayout.h             \
111         gtklist.h               \
112         gtklistitem.h           \
113         gtkliststore.h          \
114         gtkmain.h               \
115         gtkmenu.h               \
116         gtkmenubar.h            \
117         gtkmenuitem.h           \
118         gtkmenushell.h          \
119         gtkmessagedialog.h      \
120         gtkmisc.h               \
121         gtknotebook.h           \
122         gtkoldeditable.h        \
123         gtkobject.h             \
124         gtkoptionmenu.h         \
125         gtkpaned.h              \
126         gtkpixmap.h             \
127         gtkplug.h               \
128         gtkpreview.h            \
129         gtkprivate.h            \
130         gtkprogress.h           \
131         gtkprogressbar.h        \
132         gtkradiobutton.h        \
133         gtkradiomenuitem.h      \
134         gtkrange.h              \
135         gtkrc.h                 \
136         gtkruler.h              \
137         gtkscale.h              \
138         gtkscrollbar.h          \
139         gtkscrolledwindow.h     \
140         gtkselection.h          \
141         gtkseparator.h          \
142         gtksettings.h           \
143         gtksignal.h             \
144         gtksizegroup.h          \
145         gtksocket.h             \
146         gtkspinbutton.h         \
147         gtkstyle.h              \
148         gtkstatusbar.h          \
149         gtkstock.h              \
150         gtktable.h              \
151         gtktearoffmenuitem.h    \
152         gtktextbuffer.h         \
153         gtktextchild.h          \
154         gtktextdisplay.h        \
155         gtktextiter.h           \
156         gtktextlayout.h         \
157         gtktextmark.h           \
158         gtktexttag.h            \
159         gtktexttagtable.h       \
160         gtktextview.h           \
161         gtktext.h               \
162         gtktipsquery.h          \
163         gtktogglebutton.h       \
164         gtktoolbar.h            \
165         gtktooltips.h           \
166         gtktree.h               \
167         gtktreednd.h            \
168         gtktreeitem.h           \
169         gtktreemodel.h          \
170         gtktreemodelsort.h      \
171         gtktreeselection.h      \
172         gtktreesortable.h       \
173         gtktreestore.h          \
174         gtktreeview.h           \
175         gtktreeviewcolumn.h     \
176         gtktypeutils.h          \
177         gtkvbbox.h              \
178         gtkvbox.h               \
179         gtkviewport.h           \
180         gtkvpaned.h             \
181         gtkvruler.h             \
182         gtkvscale.h             \
183         gtkvscrollbar.h         \
184         gtkvseparator.h         \
185         gtkwidget.h             \
186         gtkwindow.h             \
187 @STRIP_END@
188 # GTK+ header files that don't get installed
189 gtk_private_h_sources = @STRIP_BEGIN@ \
190         gtkrbtree.h             \
191         gtktextbtree.h          \
192         gtktextchildprivate.h   \
193         gtktextsegment.h        \
194         gtktexttypes.h          \
195         gtktextiterprivate.h    \
196         gtktextmarkprivate.h    \
197         gtktexttagprivate.h     \
198         gtkthemes.h             \
199         gtktreedatalist.h       \
200         gtktreeprivate.h        \
201         gtkwindow-decorate.h    \
202 @STRIP_END@
203 # GTK+ C sources to build the library from
204 gtk_c_sources = @STRIP_BEGIN@   \
205         gtkaccelgroup.c         \
206         gtkaccellabel.c         \
207         gtkaccessible.c         \
208         gtkadjustment.c         \
209         gtkalignment.c          \
210         gtkarrow.c              \
211         gtkaspectframe.c        \
212         gtkbin.c                \
213         gtkbindings.c           \
214         gtkbbox.c               \
215         gtkbox.c                \
216         gtkbutton.c             \
217         gtkcalendar.c           \
218         gtkcellrenderer.c       \
219         gtkcelleditable.c       \
220         gtkcellrenderertext.c   \
221         gtkcellrenderertoggle.c \
222         gtkcellrendererpixbuf.c \
223         gtkcheckbutton.c        \
224         gtkcheckmenuitem.c      \
225         gtkseparatormenuitem.c  \
226         gtkclipboard.c          \
227         gtkclist.c              \
228         gtkcolorsel.c           \
229         gtkcolorseldialog.c     \
230         gtkcombo.c              \
231         gtkcontainer.c          \
232         gtkctree.c              \
233         gtkcurve.c              \
234         gtkdialog.c             \
235         gtkdnd.c                \
236         gtkdrawingarea.c        \
237         gtkeditable.c           \
238         gtkentry.c              \
239         gtkeventbox.c           \
240         gtkfilesel.c            \
241         gtkfixed.c              \
242         gtkfontsel.c            \
243         gtkframe.c              \
244         gtkgamma.c              \
245         gtkgc.c                 \
246         gtkhandlebox.c          \
247         gtkhbbox.c              \
248         gtkhbox.c               \
249         gtkhpaned.c             \
250         gtkhruler.c             \
251         gtkhscale.c             \
252         gtkhscrollbar.c         \
253         gtkhseparator.c         \
254         gtkhsv.c                \
255         gtkiconfactory.c        \
256         gtkimage.c              \
257         gtkimagemenuitem.c      \
258         gtkimcontext.c          \
259         gtkimcontextsimple.c    \
260         gtkimcontextsimple.h    \
261         gtkimmodule.c           \
262         gtkimmulticontext.c     \
263         gtkinputdialog.c        \
264         gtkintl.h               \
265         gtkinvisible.c          \
266         gtkitem.c               \
267         gtkitemfactory.c        \
268         gtklabel.c              \
269         gtklayout.c             \
270         gtklist.c               \
271         gtklistitem.c           \
272         gtkliststore.c          \
273         gtkmain.c               \
274         gtkmenu.c               \
275         gtkmenubar.c            \
276         gtkmenuitem.c           \
277         gtkmenushell.c          \
278         gtkmessagedialog.c      \
279         gtkmisc.c               \
280         gtknotebook.c           \
281         gtkobject.c             \
282         gtkoldeditable.c        \
283         gtkoptionmenu.c         \
284         gtkpaned.c              \
285         gtkpixmap.c             \
286         gtkpreview.c            \
287         gtkprogress.c           \
288         gtkprogressbar.c        \
289         gtkradiobutton.c        \
290         gtkradiomenuitem.c      \
291         gtkrange.c              \
292         gtkrbtree.c             \
293         gtkrc.c                 \
294         gtkruler.c              \
295         gtkscale.c              \
296         gtkscrollbar.c          \
297         gtkscrolledwindow.c     \
298         gtkselection.c          \
299         gtkseparator.c          \
300         gtksettings.c           \
301         gtksignal.c             \
302         gtksizegroup.c          \
303         gtkspinbutton.c         \
304         gtkstock.c              \
305         gtkstyle.c              \
306         gtkstatusbar.c          \
307         gtktable.c              \
308         gtktearoffmenuitem.c    \
309         gtktext.c               \
310         gtktextbtree.c          \
311         gtktextbuffer.c         \
312         gtktextchild.c          \
313         gtktextdisplay.c        \
314         gtktextiter.c           \
315         gtktextiterprivate.h    \
316         gtktextlayout.c         \
317         gtktextmark.c           \
318         gtktextmarkprivate.h    \
319         gtktextsegment.c        \
320         gtktexttag.c            \
321         gtktexttagtable.c       \
322         gtktexttypes.c          \
323         gtktextview.c           \
324         gtkthemes.c             \
325         gtktipsquery.c          \
326         gtktogglebutton.c       \
327         gtktoolbar.c            \
328         gtktooltips.c           \
329         gtktree.c               \
330         gtktreeitem.c           \
331         gtktreedatalist.c       \
332         gtktreednd.c            \
333         gtktreemodel.c          \
334         gtktreemodelsort.c      \
335         gtktreeselection.c      \
336         gtktreesortable.c       \
337         gtktreestore.c          \
338         gtktreeview.c           \
339         gtktreeviewcolumn.c     \
340         gtktypeutils.c          \
341         gtkvbbox.c              \
342         gtkvbox.c               \
343         gtkviewport.c           \
344         gtkvpaned.c             \
345         gtkvruler.c             \
346         gtkvscale.c             \
347         gtkvscrollbar.c         \
348         gtkvseparator.c         \
349         gtkwidget.c             \
350         gtkwindow.c             \
351         gtkwindow-decorate.c    \
352         fnmatch.c               \
353         fnmatch.h               \
354         xembed.h                \
355 @STRIP_END@
356
357 if USE_X11
358 gtk_plug_c_sources = @STRIP_BEGIN@   \
359         gtkplug.c               \
360         gtksocket.c             \
361 @STRIP_END@
362 endif
363
364 # we use our own built_sources variable rules to avoid automake's
365 # BUILT_SOURCES oddities
366 # we generate frequently rebuild files piggyback on a stamp file, so sources
367 # depending on them only get rebuild when the built source actually changed
368 # content
369
370 # built sources that get installed with the header files
371 gtk_built_public_sources = @STRIP_BEGIN@ \
372         gtkmarshal.h            \
373         gtktypebuiltins.h       \
374 @STRIP_END@
375 # built sources that don't get installed
376 gtk_built_sources = @STRIP_BEGIN@ \
377         stamp-gtk.defs          \
378         stamp-gtktypebuiltins.h \
379         stamp-gtkmarshal.h      \
380         gtktypebuiltins_vars.c  \
381         gtktypebuiltins_ids.c   \
382         gtktypebuiltins_evals.c \
383         gtkmarshal.c            \
384         gtk.defs                \
385         ${gtk_built_public_sources} \
386 @STRIP_END@
387 # non-header sources (headers should be specified in the above variables)
388 # that don't serve as direct make target sources, i.e. they don't have
389 # their own .lo rules and don't get publically installed
390 gtk_extra_sources = @STRIP_BEGIN@ \
391         gtkversion.h.in         \
392         maketypes.awk           \
393         makeenums.h             \
394         gtk-boxed.defs          \
395         gtkmarshal.list         \
396 @STRIP_END@
397
398
399 #
400 # setup GTK+ sources and their dependancies
401 #
402 gtk_target_headers = $(gtk_public_h_sources) $(gtk_built_public_sources) gtkversion.h
403 gtk_target_sources = $(gtk_c_sources) $(gtk_plug_c_sources)
404 MAINTAINERCLEANFILES += $(gtk_built_sources)
405 EXTRA_HEADERS +=
406 EXTRA_DIST += $(gtk_private_h_sources) $(gtk_extra_sources)
407 EXTRA_DIST += $(gtk_built_sources)
408
409 #
410 # rules to generate built sources
411 #
412 # setup autogeneration dependancies
413 gen_sources = xgen-gdef xgen-gtbh xgen-gtbvc xgen-gtbic xgen-gtbec xgen-gmh xgen-gmc
414 CLEANFILES += $(gen_sources)
415 Makefile: oldest-source-stamp   # oh boy, does automake SUCK!
416 oldest-source-stamp: $(gtk_built_sources)
417 $(OBJECTS): oldest-source-stamp  ${gtk_built_public_sources} # this is our oldest file, used for implicit auto-generation deps
418 # initial creation of the real stamp-* files
419 gtk.defs gtkmarshal.h gtktypebuiltins.h:          # never add deps here
420         test -f "$(srcdir)/$@" || touch $(srcdir)/$@
421 # normal autogeneration rules
422 # all autogenerated files need to be generated in the srcdir,
423 # so old versions get remade and are not confused with newer
424 # versions in the build dir. thus a development setup requires
425 # srcdir to be writable, passing --disable-rebuilds to
426 # ../configure will supress all autogeneration rules.
427 $(srcdir)/stamp-gtk.defs: @REBUILD@ gtk.defs gtk-boxed.defs $(gtk_public_h_sources)
428         case @GLIB_MKENUMS@ in                                                                  \
429            .*) glib_mkenums=`pwd`/@GLIB_MKENUMS@ ;;                     \
430            *) glib_mkenums=@GLIB_MKENUMS@ ;;                                                    \
431         esac;                                                                                   \
432         cd $(srcdir) \
433         && $$glib_mkenums --comments ";; @comment@" \
434                         --fprod "; enumerations from \"@filename@\"\n " \
435                         --vhead "(define-@type@ @EnumName@" \
436                         --vprod "   (@valuenick@ @VALUENAME@)" \
437                         --vtail ")" \
438                         $(gtk_public_h_sources) > xgen-gdef \
439         && cat gtk-boxed.defs >> xgen-gdef \
440         && (cmp -s xgen-gdef gtk.defs || cp xgen-gdef gtk.defs) \
441         && rm -f xgen-gdef \
442         && echo timestamp > $(@F)
443 $(srcdir)/stamp-gtkmarshal.h: @REBUILD@ gtkmarshal.list gtkmarshal.h
444         case @GLIB_GENMARSHAL@ in                                                                       \
445            .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;;                               \
446            *) glib_genmarshal=@GLIB_GENMARSHAL@ ;;                                                      \
447         esac;                                                                                           \
448         cd $(srcdir) \
449         && $$glib_genmarshal --prefix=gtk_marshal gtkmarshal.list --header >> xgen-gmh \
450         && (cmp -s xgen-gmh gtkmarshal.h || cp xgen-gmh gtkmarshal.h) \
451         && rm -f xgen-gmh xgen-gmh~ \
452         && echo timestamp > $(@F)
453 $(srcdir)/gtkmarshal.c: @REBUILD@ $(srcdir)/stamp-gtkmarshal.h
454         case @GLIB_GENMARSHAL@ in                                                                       \
455            .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;;                               \
456            *) glib_genmarshal=@GLIB_GENMARSHAL@ ;;                                                      \
457         esac;                                                                                           \
458         cd $(srcdir) \
459         && $$glib_genmarshal --prefix=gtk_marshal gtkmarshal.list --body >> xgen-gmc \
460         && cp xgen-gmc gtkmarshal.c \
461         && rm -f xgen-gmc xgen-gmc~
462 $(srcdir)/stamp-gtktypebuiltins.h: @REBUILD@ maketypes.awk $(srcdir)/stamp-gtk.defs gtktypebuiltins.h
463         cd $(srcdir) \
464         && LC_ALL=C $(AWK) -f maketypes.awk gtk.defs macros > xgen-gtbh \
465         && (cmp -s xgen-gtbh gtktypebuiltins.h || cp xgen-gtbh gtktypebuiltins.h) \
466         && rm -f xgen-gtbh \
467         && echo timestamp > $(@F)
468 $(srcdir)/gtktypebuiltins_vars.c: @REBUILD@ maketypes.awk $(srcdir)/stamp-gtk.defs
469         cd $(srcdir) \
470         && LC_ALL=C $(AWK) -f maketypes.awk gtk.defs variables > xgen-gtbvc \
471         && cp xgen-gtbvc $(@F) \
472         && rm -f xgen-gtbvc
473 $(srcdir)/gtktypebuiltins_ids.c: @REBUILD@ maketypes.awk $(srcdir)/stamp-gtk.defs
474         cd $(srcdir) \
475         && LC_ALL=C $(AWK) -f maketypes.awk gtk.defs entries > xgen-gtbic \
476         && cp xgen-gtbic $(@F) \
477         && rm -f xgen-gtbic
478 $(srcdir)/gtktypebuiltins_evals.c: @REBUILD@ $(gtk_public_h_sources)
479         case @GLIB_MKENUMS@ in                                                                  \
480            .*) glib_mkenums=`pwd`/@GLIB_MKENUMS@ ;;                     \
481            *) glib_mkenums=@GLIB_MKENUMS@ ;;                                                    \
482         esac;                                                                                   \
483         cd $(srcdir) \
484         && $$glib_mkenums \
485                         --fprod "\n/* enumerations from \"@filename@\" */" \
486                         --vhead "static const GtkEnumValue _@enum_name@_values[] = {" \
487                         --vprod "  { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
488                         --vtail "  { 0, NULL, NULL }\n};" \
489                         $(gtk_public_h_sources) > xgen-gtbec \
490         && cp xgen-gtbec $(@F) \
491         && rm -f xgen-gtbec
492
493
494 # target platform:
495 lib_ltlibraries = @gtktargetlib@
496 # now define the real one to workaround automake's mishandling
497 lib_LTLIBRARIES = $(lib_ltlibraries)
498 if USE_X11
499 libgtk_x11_includedir = $(includedir)/gtk-2.0/gtk
500 libgtk_x11_include_HEADERS = $(gtk_target_headers)
501 libgtk_x11_1_3_la_SOURCES = $(gtk_target_sources)
502 endif
503 if USE_NANOX
504 libgtk_nanox_includedir = $(includedir)/gtk-2.0/gtk
505 libgtk_nanox_include_HEADERS = $(gtk_target_headers)
506 libgtk_nanox_1_3_la_SOURCES = $(gtk_target_sources)
507 endif
508 if USE_LINUX_FB
509 libgtk_linux_fb_includedir = $(includedir)/gtk-2.0/gtk
510 libgtk_linux_fb_include_HEADERS = $(gtk_target_headers)
511 libgtk_linux_fb_1_3_la_SOURCES = $(gtk_target_sources)
512 endif
513 EXTRA_LTLIBRARIES = libgtk-x11-1.3.la libgtk-nanox-1.3.la libgtk-linux-fb-1.3.la
514
515
516 # We create a dummy theme for the default GTK+ theme
517 install-data-local:
518         $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0
519         echo "# Empty gtkrc for default theme" > $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
520         rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
521
522 DEPS = @gtktargetlib@ $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la $(top_builddir)/gdk/@gdktargetlib@
523 TEST_DEPS = $(DEPS) gtk.immodules
524
525 LDADDS = @STRIP_BEGIN@ \
526         @gtktargetlib@                                  \
527         $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la \
528         $(top_builddir)/gdk/@gdktargetlib@              \
529 @STRIP_END@
530
531 #
532 # Installed tools
533 #
534 bin_PROGRAMS = gtk-query-immodules-2.0
535
536 gtk_query_immodules_2_0_DEPENDENCIES = $(DEPS)
537 gtk_query_immodules_2_0_LDADD = $(LDADDS)
538
539 gtk_query_immodules_2_0_SOURCES = queryimmodules.c
540
541 .PHONY: files test test-debug
542
543 files:
544         @files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
545           echo $$p; \
546         done
547
548 EXTRA_DIST += @STRIP_BEGIN@     \
549         oldest-source-stamp     \
550         line-arrow.xbm          \
551         line-wrap.xbm           \
552         tree_plus.xbm           \
553         tree_minus.xbm          \
554         tree_minus.xpm          \
555         tree_plus.xpm           \
556         gtk.def                 \
557         gtk-win32.rc            \
558         gtk-win32.rc.in         \
559         makefile.mingw          \
560         makefile.mingw.in       \
561         makefile.msc            \
562         makefile.msc.in         \
563 @STRIP_END@
564
565 install-data-local:
566