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