1 # Makefile.am for gtk+/gtk
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 -I$(top_builddir)/gtk \
15 -I$(top_srcdir) -I../gdk \
17 -I$(top_srcdir)/gdk-pixbuf -I../gdk-pixbuf \
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) \
32 @LIBTOOL_EXPORT_OPTIONS@ \
33 $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la \
34 $(top_builddir)/gdk/@gdktargetlib@ \
39 # setup source file variables
42 # GTK+ header files for public installation (non-generated, or generated
44 gtk_public_h_sources = @STRIP_BEGIN@ \
61 gtkseparatormenuitem.h \
72 gtkcellrenderertext.h \
73 gtkcellrenderertoggle.h \
74 gtkcellrendererpixbuf.h \
102 gtkimcontextsimple.h \
104 gtkimmulticontext.h \
139 gtkscrolledwindow.h \
151 gtktearoffmenuitem.h \
175 gtktreeviewcolumn.h \
188 # GTK+ header files that don't get installed
189 gtk_private_h_sources = @STRIP_BEGIN@ \
192 gtktextchildprivate.h \
195 gtktextiterprivate.h \
196 gtktextmarkprivate.h \
197 gtktexttagprivate.h \
201 gtkwindow-decorate.h \
203 # GTK+ C sources to build the library from
204 gtk_c_sources = @STRIP_BEGIN@ \
220 gtkcellrenderertext.c \
221 gtkcellrenderertoggle.c \
222 gtkcellrendererpixbuf.c \
225 gtkseparatormenuitem.c \
229 gtkcolorseldialog.c \
259 gtkimcontextsimple.c \
261 gtkimmulticontext.c \
296 gtkscrolledwindow.c \
307 gtktearoffmenuitem.c \
314 gtktextiterprivate.h \
317 gtktextmarkprivate.h \
338 gtktreeviewcolumn.c \
350 gtkwindow-decorate.c \
357 gtk_plug_c_sources = @STRIP_BEGIN@ \
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
369 # built sources that get installed with the header files
370 gtk_built_public_sources = @STRIP_BEGIN@ \
374 # built sources that don't get installed
375 gtk_built_sources = @STRIP_BEGIN@ \
377 stamp-gtktypebuiltins.h \
379 gtktypebuiltins_vars.c \
380 gtktypebuiltins_ids.c \
381 gtktypebuiltins_evals.c \
384 ${gtk_built_public_sources} \
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@ \
399 # setup GTK+ sources and their dependancies
401 gtk_target_headers = $(gtk_public_h_sources) $(gtk_built_public_sources) gtkversion.h
402 gtk_target_sources = $(gtk_c_sources) $(gtk_plug_c_sources)
403 MAINTAINERCLEANFILES = $(gtk_built_sources)
405 EXTRA_DIST = $(gtk_private_h_sources) $(gtk_extra_sources)
406 EXTRA_DIST += $(gtk_built_sources)
409 # rules to generate built sources
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@ ;; \
432 && $$glib_mkenums --comments ";; @comment@" \
433 --fprod "; enumerations from \"@filename@\"\n " \
434 --vhead "(define-@type@ @EnumName@" \
435 --vprod " (@valuenick@ @VALUENAME@)" \
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) \
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@ ;; \
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@ ;; \
458 && $$glib_genmarshal --prefix=gtk_marshal gtkmarshal.list --body >> xgen-gmc \
459 && cp xgen-gmc gtkmarshal.c \
460 && rm -f xgen-gmc xgen-gmc~
461 $(srcdir)/stamp-gtktypebuiltins.h: @REBUILD@ maketypes.awk $(srcdir)/stamp-gtk.defs gtktypebuiltins.h
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) \
466 && echo timestamp > $(@F)
467 $(srcdir)/gtktypebuiltins_vars.c: @REBUILD@ maketypes.awk $(srcdir)/stamp-gtk.defs
469 && LC_ALL=C $(AWK) -f maketypes.awk gtk.defs variables > xgen-gtbvc \
470 && cp xgen-gtbvc $(@F) \
472 $(srcdir)/gtktypebuiltins_ids.c: @REBUILD@ maketypes.awk $(srcdir)/stamp-gtk.defs
474 && LC_ALL=C $(AWK) -f maketypes.awk gtk.defs entries > xgen-gtbic \
475 && cp xgen-gtbic $(@F) \
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@ ;; \
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) \
494 lib_ltlibraries = @gtktargetlib@
495 # now define the real one to workaround automake's mishandling
496 lib_LTLIBRARIES = $(lib_ltlibraries)
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)
503 libgtk_linux_fb_includedir = $(includedir)/gtk-2.0/gtk
504 libgtk_linux_fb_include_HEADERS = $(gtk_target_headers)
505 libgtk_linux_fb_1_3_la_SOURCES = $(gtk_target_sources)
507 EXTRA_LTLIBRARIES = libgtk-x11-1.3.la libgtk-linux-fb-1.3.la
510 # We create a dummy theme for the default GTK+ theme
512 $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0
513 echo "# Empty gtkrc for default theme" > $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
514 rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
516 DEPS = @gtktargetlib@ $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la $(top_builddir)/gdk/@gdktargetlib@
517 TEST_DEPS = $(DEPS) gtk.immodules
519 LDADDS = @STRIP_BEGIN@ \
521 $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la \
522 $(top_builddir)/gdk/@gdktargetlib@ \
528 bin_PROGRAMS = gtk-query-immodules-2.0
530 gtk_query_immodules_2_0_DEPENDENCIES = $(DEPS)
531 gtk_query_immodules_2_0_LDADD = $(LDADDS)
533 gtk_query_immodules_2_0_SOURCES = queryimmodules.c
535 .PHONY: files test test-debug
538 @files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
542 EXTRA_DIST += @STRIP_BEGIN@ \
543 oldest-source-stamp \