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