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\" \
15 -I$(top_builddir)/gtk \
16 -I$(top_srcdir) -I../gdk \
18 -I$(top_srcdir)/gdk-pixbuf -I../gdk-pixbuf \
26 no_undefined = -no-undefined
31 gtk_win32_symbols = -export-symbols $(gtk_def) -lwsock32
33 gtk_win32res_lo = gtk-win32res.lo
35 gtk-win32res.lo : gtk-win32.rc
36 $(top_srcdir)/build/win32/lt-compile-resource gtk-win32.rc gtk-win32res.lo
38 install-libtool-import-lib:
39 $(INSTALL) .libs/libgtk-win32-1.3.dll.a $(DESTDIR)$(libdir)
40 uninstall-libtool-import-lib:
41 -rm $(DESTDIR)$(libdir)/libtk-win32-1.3.dll.a
43 install-libtool-import-lib:
44 uninstall-libtool-import-lib:
48 noinst_DATA = gtk-win32-1.3.lib
50 gtk-win32-1.3.lib: libgtk-win32-1.3.la gtk.def
51 lib -name:libgtk-win32-1.3-@LT_CURRENT_MINUS_AGE@.dll -def:gtk.def -out:$@
54 $(INSTALL) gtk-win32-1.3.lib $(DESTDIR)$(libdir)
57 -rm $(DESTDIR)$(libdir)/gtk-win32-1.3.lib
63 # libtool stuff: set version and export symbols for resolving
64 # since automake doesn't support conditionalized libsomething_la_LDFLAGS
65 # we use the general approach here
66 libgtkincludedir = $(includedir)/gtk-2.0/gtk
67 LDFLAGS = @STRIP_BEGIN@ \
68 -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
72 @LIBTOOL_EXPORT_OPTIONS@ \
73 $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la \
74 $(top_builddir)/gdk/@gdktargetlib@ \
75 $(gtk_win32_symbols) \
80 # setup source file variables
83 # GTK+ header files for public installation (non-generated, or generated
85 gtk_public_h_sources = @STRIP_BEGIN@ \
103 gtkseparatormenuitem.h \
107 gtkcolorseldialog.h \
114 gtkcellrenderertext.h \
115 gtkcellrenderertoggle.h \
116 gtkcellrendererpixbuf.h \
144 gtkimcontextsimple.h \
146 gtkimmulticontext.h \
181 gtkscrolledwindow.h \
193 gtktearoffmenuitem.h \
217 gtktreeviewcolumn.h \
230 # GTK+ header files that don't get installed
231 gtk_private_h_sources = @STRIP_BEGIN@ \
234 gtktextchildprivate.h \
237 gtktextiterprivate.h \
238 gtktextmarkprivate.h \
239 gtktexttagprivate.h \
243 gtkwindow-decorate.h \
245 # GTK+ C sources to build the library from
246 gtk_c_sources = @STRIP_BEGIN@ \
263 gtkcellrenderertext.c \
264 gtkcellrenderertoggle.c \
265 gtkcellrendererpixbuf.c \
268 gtkseparatormenuitem.c \
272 gtkcolorseldialog.c \
302 gtkimcontextsimple.c \
304 gtkimmulticontext.c \
341 gtkscrolledwindow.c \
352 gtktearoffmenuitem.c \
359 gtktextiterprivate.h \
362 gtktextmarkprivate.h \
383 gtktreeviewcolumn.c \
395 gtkwindow-decorate.c \
402 gtk_plug_c_sources = @STRIP_BEGIN@ \
408 # we use our own built_sources variable rules to avoid automake's
409 # BUILT_SOURCES oddities
410 # we generate frequently rebuild files piggyback on a stamp file, so sources
411 # depending on them only get rebuild when the built source actually changed
414 # built sources that get installed with the header files
415 gtk_built_public_sources = @STRIP_BEGIN@ \
419 # built sources that don't get installed
420 gtk_built_sources = @STRIP_BEGIN@ \
422 stamp-gtktypebuiltins.h \
423 stamp-gtkmarshalers.h \
424 gtktypebuiltins_vars.c \
425 gtktypebuiltins_ids.c \
426 gtktypebuiltins_evals.c \
431 ${gtk_built_public_sources} \
433 # non-header sources (headers should be specified in the above variables)
434 # that don't serve as direct make target sources, i.e. they don't have
435 # their own .lo rules and don't get publically installed
436 gtk_extra_sources = @STRIP_BEGIN@ \
445 # setup GTK+ sources and their dependancies
447 gtk_target_headers = $(gtk_public_h_sources) $(gtk_built_public_sources) gtkversion.h
448 gtk_target_sources = $(gtk_c_sources) $(gtk_plug_c_sources)
449 MAINTAINERCLEANFILES = $(gtk_built_sources)
451 EXTRA_DIST = $(gtk_private_h_sources) $(gtk_extra_sources)
452 EXTRA_DIST += $(gtk_built_sources)
455 # rules to generate built sources
457 # setup autogeneration dependancies
458 gen_sources = xgen-gdef xgen-gtbh xgen-gtbvc xgen-gtbic xgen-gtbec xgen-gmh xgen-gmc
459 CLEANFILES = $(gen_sources)
460 Makefile: oldest-source-stamp # oh boy, does automake SUCK!
461 oldest-source-stamp: $(gtk_built_sources)
462 $(OBJECTS): oldest-source-stamp ${gtk_built_public_sources} # this is our oldest file, used for implicit auto-generation deps
463 # initial creation of the real stamp-* files
464 gtk.defs gtkmarshalers.h gtktypebuiltins.h: # never add deps here
465 test -f "$(srcdir)/$@" || touch $(srcdir)/$@
466 # normal autogeneration rules
467 # all autogenerated files need to be generated in the srcdir,
468 # so old versions get remade and are not confused with newer
469 # versions in the build dir. thus a development setup requires
470 # srcdir to be writable, passing --disable-rebuilds to
471 # ../configure will supress all autogeneration rules.
472 $(srcdir)/stamp-gtk.defs: @REBUILD@ gtk.defs gtk-boxed.defs $(gtk_public_h_sources)
473 case @GLIB_MKENUMS@ in \
474 .*) glib_mkenums=`pwd`/@GLIB_MKENUMS@ ;; \
475 *) glib_mkenums=@GLIB_MKENUMS@ ;; \
478 && $$glib_mkenums --comments ";; @comment@" \
479 --fprod "; enumerations from \"@filename@\"\n " \
480 --vhead "(define-@type@ @EnumName@" \
481 --vprod " (@valuenick@ @VALUENAME@)" \
483 $(gtk_public_h_sources) > xgen-gdef \
484 && cat gtk-boxed.defs >> xgen-gdef \
485 && (cmp -s xgen-gdef gtk.defs || cp xgen-gdef gtk.defs) \
487 && echo timestamp > $(@F)
489 $(srcdir)/stamp-gtkmarshalers.h: @REBUILD@ gtkmarshalers.list gtkmarshalers.h
490 case @GLIB_GENMARSHAL@ in \
491 .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;; \
492 *) glib_genmarshal=@GLIB_GENMARSHAL@ ;; \
495 && $$glib_genmarshal --prefix=_gtk_marshal gtkmarshalers.list --header >> xgen-gmh \
496 && (cmp -s xgen-gmh gtkmarshalers.h || cp xgen-gmh gtkmarshalers.h) \
497 && rm -f xgen-gmh xgen-gmh~ \
498 && echo timestamp > $(@F)
499 $(srcdir)/gtkmarshalers.c: @REBUILD@ $(srcdir)/stamp-gtkmarshalers.h
500 case @GLIB_GENMARSHAL@ in \
501 .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;; \
502 *) glib_genmarshal=@GLIB_GENMARSHAL@ ;; \
505 && $$glib_genmarshal --prefix=_gtk_marshal gtkmarshalers.list --body >> xgen-gmc \
506 && cp xgen-gmc gtkmarshalers.c \
507 && rm -f xgen-gmc xgen-gmc~
508 $(srcdir)/gtkmarshal.h: @REBUILD@ gtkmarshal.list
509 case @GLIB_GENMARSHAL@ in \
510 .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;; \
511 *) glib_genmarshal=@GLIB_GENMARSHAL@ ;; \
514 && echo "#ifndef GTK_DISABLE_DEPRECATED" > xgen-gmh \
515 && $$glib_genmarshal --prefix=gtk_marshal gtkmarshal.list --header >> xgen-gmh \
516 && echo "#endif /* GTK_DISABLE_DEPRECATED */" >> xgen-gmh \
517 && cp xgen-gmh gtkmarshal.h \
518 && rm -f xgen-gmh xgen-gmh~
519 $(srcdir)/gtkmarshal.c: @REBUILD@ gtkmarshal.h
520 case @GLIB_GENMARSHAL@ in \
521 .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;; \
522 *) glib_genmarshal=@GLIB_GENMARSHAL@ ;; \
525 && $$glib_genmarshal --prefix=gtk_marshal gtkmarshal.list --body >> xgen-gmc \
526 && cp xgen-gmc gtkmarshal.c \
527 && rm -f xgen-gmc xgen-gmc~
529 $(srcdir)/stamp-gtktypebuiltins.h: @REBUILD@ maketypes.awk $(srcdir)/stamp-gtk.defs gtktypebuiltins.h
531 && LC_ALL=C $(AWK) -f maketypes.awk gtk.defs macros > xgen-gtbh \
532 && (cmp -s xgen-gtbh gtktypebuiltins.h || cp xgen-gtbh gtktypebuiltins.h) \
534 && echo timestamp > $(@F)
535 $(srcdir)/gtktypebuiltins_vars.c: @REBUILD@ maketypes.awk $(srcdir)/stamp-gtk.defs
537 && LC_ALL=C $(AWK) -f maketypes.awk gtk.defs variables > xgen-gtbvc \
538 && cp xgen-gtbvc $(@F) \
540 $(srcdir)/gtktypebuiltins_ids.c: @REBUILD@ maketypes.awk $(srcdir)/stamp-gtk.defs
542 && LC_ALL=C $(AWK) -f maketypes.awk gtk.defs entries > xgen-gtbic \
543 && cp xgen-gtbic $(@F) \
545 $(srcdir)/gtktypebuiltins_evals.c: @REBUILD@ $(gtk_public_h_sources)
546 case @GLIB_MKENUMS@ in \
547 .*) glib_mkenums=`pwd`/@GLIB_MKENUMS@ ;; \
548 *) glib_mkenums=@GLIB_MKENUMS@ ;; \
552 --fprod "\n/* enumerations from \"@filename@\" */" \
553 --vhead "static const GtkEnumValue _@enum_name@_values[] = {" \
554 --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
555 --vtail " { 0, NULL, NULL }\n};" \
556 $(gtk_public_h_sources) > xgen-gtbec \
557 && cp xgen-gtbec $(@F) \
562 lib_ltlibraries = @gtktargetlib@
563 # now define the real one to workaround automake's mishandling
564 lib_LTLIBRARIES = $(lib_ltlibraries)
566 libgtk_x11_includedir = $(includedir)/gtk-2.0/gtk
567 libgtk_x11_include_HEADERS = $(gtk_target_headers)
568 libgtk_x11_1_3_la_SOURCES = $(gtk_target_sources)
571 libgtk_linux_fb_includedir = $(includedir)/gtk-2.0/gtk
572 libgtk_linux_fb_include_HEADERS = $(gtk_target_headers)
573 libgtk_linux_fb_1_3_la_SOURCES = $(gtk_target_sources)
576 libgtk_win32_includedir = $(includedir)/gtk-2.0/gtk
577 libgtk_win32_include_HEADERS = $(gtk_target_headers)
578 libgtk_win32_1_3_la_SOURCES = $(gtk_target_sources)
579 libgtk_win32_1_3_la_LIBADD = $(gtk_win32res_lo)
580 libgtk_win32_1_3_la_DEPENDENCIES = $(gtk_def) $(gtk_win32res_lo)
582 EXTRA_LTLIBRARIES = libgtk-x11-1.3.la libgtk-linux-fb-1.3.la libgtk-win32-1.3.la
585 # We create a dummy theme for the default GTK+ theme
586 install-data-local: install-ms-lib install-libtool-import-lib
587 $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0
588 echo "# Empty gtkrc for default theme" > $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
589 rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
591 uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib
593 DEPS = @gtktargetlib@ $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la $(top_builddir)/gdk/@gdktargetlib@
594 TEST_DEPS = $(DEPS) gtk.immodules
596 LDADDS = @STRIP_BEGIN@ \
598 $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la \
599 $(top_builddir)/gdk/@gdktargetlib@ \
605 bin_PROGRAMS = gtk-query-immodules-2.0
607 gtk_query_immodules_2_0_DEPENDENCIES = $(DEPS)
608 gtk_query_immodules_2_0_LDADD = $(LDADDS)
610 gtk_query_immodules_2_0_SOURCES = queryimmodules.c
612 .PHONY: files test test-debug
615 @files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
619 EXTRA_DIST += @STRIP_BEGIN@ \
620 oldest-source-stamp \