]> Pileus Git - ~andy/gtk/blobdiff - gtk/Makefile.am
Switch style of stamp file usage.
[~andy/gtk] / gtk / Makefile.am
index 50d2261f31ba333f86db166e2cc5c308402f0278..0115e06d0e0e599a5fc5f6b8ee3f408a35beeab9 100644 (file)
@@ -1,26 +1,65 @@
 # Makefile.am for gtk+/gtk
 
-SUBDIRS=stock-icons
+SUBDIRS=stock-icons theme-bits
 
 INCLUDES = @STRIP_BEGIN@ \
        -DG_LOG_DOMAIN=\"Gtk\"                          \
-       -DGTK_DISABLE_COMPAT_H                          \
        -DGTK_LIBDIR=\"$(libdir)\"                      \
        -DGTK_DATA_PREFIX=\"$(prefix)\"                 \
        -DGTK_SYSCONFDIR=\"$(sysconfdir)\"              \
        -DGTK_LOCALEDIR=\"$(gtklocaledir)\"             \
        -DGTK_VERSION=\"@GTK_VERSION@\"                 \
-       -DTESTGTK_RCFILE=\"`pwd`/$(srcdir)/testgtkrc\"  \
-       -DG_DISABLE_CONST_RETURNS                       \
+       -DGTK_BINARY_VERSION=\"@GTK_BINARY_VERSION@\"   \
+       -DGTK_HOST=\"@host@\"                           \
+       -DGTK_COMPILATION                               \
        -I$(top_builddir)/gtk                           \
        -I$(top_srcdir) -I../gdk                        \
        -I$(top_srcdir)/gdk                             \
        -I$(top_srcdir)/gdk-pixbuf -I../gdk-pixbuf      \
+       @GTK_DEBUG_FLAGS@                               \
        @GTK_DEP_CFLAGS@                                \
 @STRIP_END@
 
 gtarget=@gdktarget@
 
+if PLATFORM_WIN32
+no_undefined = -no-undefined
+endif
+
+if OS_WIN32
+gtk_def = gtk.def
+gtk_win32_symbols = -export-symbols $(gtk_def)
+
+gtk_win32res_lo = gtk-win32res.lo
+
+gtk-win32res.lo : gtk-win32.rc
+       $(top_srcdir)/build/win32/lt-compile-resource gtk-win32.rc gtk-win32res.lo
+
+install-libtool-import-lib:
+       $(INSTALL) .libs/libgtk-win32-1.3.dll.a $(DESTDIR)$(libdir)
+uninstall-libtool-import-lib:
+       -rm $(DESTDIR)$(libdir)/libtk-win32-1.3.dll.a
+else
+install-libtool-import-lib:
+uninstall-libtool-import-lib:
+endif
+
+if MS_LIB_AVAILABLE
+noinst_DATA = gtk-win32-1.3.lib
+
+gtk-win32-1.3.lib: libgtk-win32-1.3.la gtk.def
+       lib -name:libgtk-win32-1.3-@LT_CURRENT_MINUS_AGE@.dll -def:gtk.def -out:$@
+
+install-ms-lib:
+       $(INSTALL) gtk-win32-1.3.lib $(DESTDIR)$(libdir)
+
+uninstall-ms-lib:
+       -rm $(DESTDIR)$(libdir)/gtk-win32-1.3.lib
+else
+install-ms-lib:
+uninstall-ms-lib:
+endif
+
 # libtool stuff: set version and export symbols for resolving
 # since automake doesn't support conditionalized libsomething_la_LDFLAGS
 # we use the general approach here
@@ -28,10 +67,12 @@ libgtkincludedir = $(includedir)/gtk-2.0/gtk
 LDFLAGS = @STRIP_BEGIN@ \
        -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)    \
        -export-dynamic                                         \
-       -rpath @prefix@/lib                                     \
+       -rpath $(libdir)                                        \
+       $(no_undefined)                                         \
        @LIBTOOL_EXPORT_OPTIONS@                                \
        $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la         \
        $(top_builddir)/gdk/@gdktargetlib@                      \
+       $(libgtk_target_ldflags)                                \
        @GTK_DEP_LIBS@                                          \
 @STRIP_END@
 
@@ -45,10 +86,10 @@ gtk_public_h_sources = @STRIP_BEGIN@ \
        gtk.h                   \
        gtkaccelgroup.h         \
        gtkaccellabel.h         \
+       gtkaccelmap.h           \
        gtkaccessible.h         \
        gtkadjustment.h         \
        gtkalignment.h          \
-       gtkarg.h                \
        gtkarrow.h              \
        gtkaspectframe.h        \
        gtkbin.h                \
@@ -69,8 +110,8 @@ gtk_public_h_sources = @STRIP_BEGIN@ \
        gtkctree.h              \
        gtkcurve.h              \
        gtkcellrenderer.h       \
+       gtkcelleditable.h       \
        gtkcellrenderertext.h   \
-       gtkcellrenderertextpixbuf.h     \
        gtkcellrenderertoggle.h \
        gtkcellrendererpixbuf.h \
        gtkdebug.h              \
@@ -95,11 +136,11 @@ gtk_public_h_sources = @STRIP_BEGIN@ \
        gtkhscale.h             \
        gtkhscrollbar.h         \
        gtkhseparator.h         \
-       gtkhsv.h                \
        gtkiconfactory.h        \
        gtkimage.h              \
        gtkimagemenuitem.h      \
        gtkimcontext.h          \
+       gtkimcontextsimple.h    \
        gtkimmodule.h           \
        gtkimmulticontext.h     \
        gtkinputdialog.h        \
@@ -122,7 +163,6 @@ gtk_public_h_sources = @STRIP_BEGIN@ \
        gtkoldeditable.h        \
        gtkobject.h             \
        gtkoptionmenu.h         \
-       gtkpacker.h             \
        gtkpaned.h              \
        gtkpixmap.h             \
        gtkplug.h               \
@@ -193,6 +233,7 @@ gtk_private_h_sources = @STRIP_BEGIN@ \
        gtktextchildprivate.h   \
        gtktextsegment.h        \
        gtktexttypes.h          \
+       gtktextutil.h           \
        gtktextiterprivate.h    \
        gtktextmarkprivate.h    \
        gtktexttagprivate.h     \
@@ -204,11 +245,11 @@ gtk_private_h_sources = @STRIP_BEGIN@ \
 # GTK+ C sources to build the library from
 gtk_c_sources = @STRIP_BEGIN@   \
        gtkaccelgroup.c         \
+       gtkaccelmap.c           \
        gtkaccellabel.c         \
        gtkaccessible.c         \
        gtkadjustment.c         \
        gtkalignment.c          \
-       gtkarg.c                \
        gtkarrow.c              \
        gtkaspectframe.c        \
        gtkbin.c                \
@@ -218,8 +259,8 @@ gtk_c_sources = @STRIP_BEGIN@   \
        gtkbutton.c             \
        gtkcalendar.c           \
        gtkcellrenderer.c       \
+       gtkcelleditable.c       \
        gtkcellrenderertext.c   \
-       gtkcellrenderertextpixbuf.c     \
        gtkcellrenderertoggle.c \
        gtkcellrendererpixbuf.c \
        gtkcheckbutton.c        \
@@ -254,12 +295,12 @@ gtk_c_sources = @STRIP_BEGIN@   \
        gtkhscrollbar.c         \
        gtkhseparator.c         \
        gtkhsv.c                \
+       gtkhsv.h                \
        gtkiconfactory.c        \
        gtkimage.c              \
        gtkimagemenuitem.c      \
        gtkimcontext.c          \
        gtkimcontextsimple.c    \
-       gtkimcontextsimple.h    \
        gtkimmodule.c           \
        gtkimmulticontext.c     \
        gtkinputdialog.c        \
@@ -267,12 +308,16 @@ gtk_c_sources = @STRIP_BEGIN@   \
        gtkinvisible.c          \
        gtkitem.c               \
        gtkitemfactory.c        \
+       gtkkeyhash.c            \
+       gtkkeyhash.h            \
        gtklabel.c              \
        gtklayout.c             \
        gtklist.c               \
        gtklistitem.c           \
        gtkliststore.c          \
        gtkmain.c               \
+       gtkmarshalers.c         \
+       gtkmarshal.c            \
        gtkmenu.c               \
        gtkmenubar.c            \
        gtkmenuitem.c           \
@@ -283,7 +328,6 @@ gtk_c_sources = @STRIP_BEGIN@   \
        gtkobject.c             \
        gtkoldeditable.c        \
        gtkoptionmenu.c         \
-       gtkpacker.c             \
        gtkpaned.c              \
        gtkpixmap.c             \
        gtkpreview.c            \
@@ -323,6 +367,7 @@ gtk_c_sources = @STRIP_BEGIN@   \
        gtktexttag.c            \
        gtktexttagtable.c       \
        gtktexttypes.c          \
+       gtktextutil.c           \
        gtktextview.c           \
        gtkthemes.c             \
        gtktipsquery.c          \
@@ -340,6 +385,7 @@ gtk_c_sources = @STRIP_BEGIN@   \
        gtktreestore.c          \
        gtktreeview.c           \
        gtktreeviewcolumn.c     \
+       gtktypebuiltins.c       \
        gtktypeutils.c          \
        gtkvbbox.c              \
        gtkvbox.c               \
@@ -357,12 +403,10 @@ gtk_c_sources = @STRIP_BEGIN@   \
        xembed.h                \
 @STRIP_END@
 
-if USE_X11
 gtk_plug_c_sources = @STRIP_BEGIN@   \
        gtkplug.c               \
        gtksocket.c             \
 @STRIP_END@
-endif
 
 # we use our own built_sources variable rules to avoid automake's
 # BUILT_SOURCES oddities
@@ -379,10 +423,10 @@ gtk_built_public_sources = @STRIP_BEGIN@ \
 gtk_built_sources = @STRIP_BEGIN@ \
        stamp-gtk.defs          \
        stamp-gtktypebuiltins.h \
-       stamp-gtkmarshal.h      \
-       gtktypebuiltins_vars.c  \
-       gtktypebuiltins_ids.c   \
-       gtktypebuiltins_evals.c \
+       stamp-gtkmarshalers.h   \
+       gtktypebuiltins.c       \
+       gtkmarshalers.c         \
+       gtkmarshalers.h         \
        gtkmarshal.c            \
        gtk.defs                \
        ${gtk_built_public_sources} \
@@ -391,129 +435,162 @@ gtk_built_sources = @STRIP_BEGIN@ \
 # that don't serve as direct make target sources, i.e. they don't have
 # their own .lo rules and don't get publically installed
 gtk_extra_sources = @STRIP_BEGIN@ \
-       gtkcompat.h.in          \
-       maketypes.awk           \
-       makeenums.h             \
-       gtkargcollector.c       \
+       gtkversion.h.in         \
        gtk-boxed.defs          \
+       gtkmarshalers.list      \
        gtkmarshal.list         \
 @STRIP_END@
 
-
 #
 # setup GTK+ sources and their dependancies
 #
-gtk_target_headers = $(gtk_public_h_sources) $(gtk_built_public_sources) gtkcompat.h
-gtk_target_sources = $(gtk_c_sources) $(gtk_plug_c_sources)
-MAINTAINERCLEANFILES += $(gtk_built_sources)
-EXTRA_HEADERS +=
-EXTRA_DIST += $(gtk_private_h_sources) $(gtk_extra_sources)
+MAINTAINERCLEANFILES = $(gtk_built_sources)
+EXTRA_HEADERS =
+EXTRA_DIST = $(gtk_private_h_sources) $(gtk_extra_sources)
 EXTRA_DIST += $(gtk_built_sources)
 
 #
 # rules to generate built sources
 #
 # setup autogeneration dependancies
-gen_sources = xgen-gdef xgen-gtbh xgen-gtbvc xgen-gtbic xgen-gtbec xgen-gmh xgen-gmc
-CLEANFILES += $(gen_sources)
-Makefile: oldest-source-stamp  # oh boy, does automake SUCK!
-oldest-source-stamp: $(gtk_built_sources)
-$(OBJECTS): oldest-source-stamp  ${gtk_built_public_sources} # this is our oldest file, used for implicit auto-generation deps
-# initial creation of the real stamp-* files
-gtk.defs gtkmarshal.h gtktypebuiltins.h:          # never add deps here
-       test -f "$(srcdir)/$@" || touch $(srcdir)/$@
-# normal autogeneration rules
+gen_sources = xgen-gdef xgen-gtbh xgen-gtic xgen-gmh xgen-gmc xgen-gmlh xgen-gmlc
+CLEANFILES = $(gen_sources)
+
+## automake 1.5 supports this without $(OBJECTS): $(gtk_built_sources) hack
+#BUILT_SOURCES = $(gtk_built_sources)
+
+$(libgtk_x11_1_3_la_OBJECTS) $(libgtk_linux_fb_1_3_la_OBJECTS) $(libgtk_win32_1_3_la_OBJECTS): ${gtk_built_public_sources}
+
 # all autogenerated files need to be generated in the srcdir,
 # so old versions get remade and are not confused with newer
 # versions in the build dir. thus a development setup requires
 # srcdir to be writable, passing --disable-rebuilds to
 # ../configure will supress all autogeneration rules.
-$(srcdir)/stamp-gtk.defs: @REBUILD@ gtk.defs gtk-boxed.defs $(gtk_public_h_sources)
-       cd $(srcdir) \
-       && glib-mkenums --comments ";; @comment@" \
-                       --fprod "; enumerations from \"@filename@\"\n " \
-                       --vhead "(define-@type@ @EnumName@" \
-                       --vprod "   (@valuenick@ @VALUENAME@)" \
-                       --vtail ")" \
-                       $(gtk_public_h_sources) > xgen-gdef \
-       && cat gtk-boxed.defs >> xgen-gdef \
-       && (cmp -s xgen-gdef gtk.defs || cp xgen-gdef gtk.defs) \
-       && rm -f xgen-gdef \
-       && echo timestamp > $(@F)
-$(srcdir)/stamp-gtkmarshal.h: @REBUILD@ gtkmarshal.list gtkmarshal.h
-       cd $(srcdir) \
-       && glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --header >> xgen-gmh \
-       && (cmp -s xgen-gmh gtkmarshal.h || cp xgen-gmh gtkmarshal.h) \
-       && rm -f xgen-gmh xgen-gmh~ \
+$(srcdir)/gtk.defs: @REBUILD@ gtk.defs gtk-boxed.defs $(gtk_public_h_sources)  \
+       case @GLIB_MKENUMS@ in                                                  \
+          .*) glib_mkenums=`pwd`/@GLIB_MKENUMS@ ;;                             \
+          *) glib_mkenums=@GLIB_MKENUMS@ ;;                                    \
+       esac;                                                                   \
+       cd $(srcdir)                                                            \
+       && $$glib_mkenums --comments ";; @comment@"                             \
+                       --fprod "; enumerations from \"@filename@\"\n "         \
+                       --vhead "(define-@type@ @EnumName@"                     \
+                       --vprod "   (@valuenick@ @VALUENAME@)"                  \
+                       --vtail ")"                                             \
+                       $(gtk_public_h_sources) > xgen-gdef                     \
+       && cat gtk-boxed.defs >> xgen-gdef                                      \
+       && gtk.defs || cp xgen-gdef gtk.defs                                    \
+       && rm -f xgen-gdef
+
+all-local: @REBUILD@ gtk.defs
+
+$(srcdir)/gtkmarshalers.h: stamp-gtkmarshalers.h
+       @true
+stamp-gtkmarshalers.h: @REBUILD@ gtkmarshalers.list
+       case @GLIB_GENMARSHAL@ in                                                               \
+          .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;;                                       \
+          *) glib_genmarshal=@GLIB_GENMARSHAL@ ;;                                              \
+       esac;                                                                                   \
+       cd $(srcdir)                                                                            \
+       && $$glib_genmarshal --prefix=_gtk_marshal gtkmarshalers.list --header >> xgen-gmlh     \
+       && (cmp -s xgen-gmlh gtkmarshalers.h || cp xgen-gmlh gtkmarshalers.h)                   \
+       && rm -f xgen-gmlh                                                                      \
+       && echo timestamp > $(@F)       
+$(srcdir)/gtkmarshalers.c: @REBUILD@ gtkmarshalers.list
+       case @GLIB_GENMARSHAL@ in                                                               \
+          .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;;                                       \
+          *) glib_genmarshal=@GLIB_GENMARSHAL@ ;;                                              \
+       esac;                                                                                   \
+       cd $(srcdir)                                                                            \
+       && $$glib_genmarshal --prefix=_gtk_marshal gtkmarshalers.list --body >> xgen-gmlc       \
+       && cp xgen-gmlc gtkmarshalers.c                                                         \
+       && rm -f xgen-gmlc
+
+$(srcdir)/gtkmarshal.h: stamp-gtkmarshal.h
+       @true
+stamp-gtkmarshal.h: @REBUILD@ gtkmarshal.list
+       case @GLIB_GENMARSHAL@ in                                                               \
+          .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;;                                       \
+          *) glib_genmarshal=@GLIB_GENMARSHAL@ ;;                                              \
+       esac;                                                                                   \
+       cd $(srcdir)                                                                            \
+       && echo "#ifndef GTK_DISABLE_DEPRECATED" > xgen-gmh                                     \
+        && $$glib_genmarshal --prefix=gtk_marshal gtkmarshal.list --header >> xgen-gmh         \
+       && echo "#endif /* GTK_DISABLE_DEPRECATED */" >> xgen-gmh                               \
+       && (cmp -s xgen-gmh gtkmarshal.h || cp xgen-gmh gtkmarshal.h)                           \
+       && rm -f xgen-gmh                                                                       \
        && echo timestamp > $(@F)
-$(srcdir)/gtkmarshal.c: @REBUILD@ $(srcdir)/stamp-gtkmarshal.h
-       cd $(srcdir) \
-       && glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --body >> xgen-gmc \
-       && cp xgen-gmc gtkmarshal.c \
-       && rm -f xgen-gmc xgen-gmc~
-$(srcdir)/stamp-gtktypebuiltins.h: @REBUILD@ maketypes.awk stamp-gtk.defs gtktypebuiltins.h
-       cd $(srcdir) \
-       && LC_ALL=C $(AWK) -f maketypes.awk gtk.defs macros > xgen-gtbh \
-       && (cmp -s xgen-gtbh gtktypebuiltins.h || cp xgen-gtbh gtktypebuiltins.h) \
+$(srcdir)/gtkmarshal.c: @REBUILD@ gtkmarshal.list
+       case @GLIB_GENMARSHAL@ in                                                               \
+          .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;;                                       \
+          *) glib_genmarshal=@GLIB_GENMARSHAL@ ;;                                              \
+       esac;                                                                                   \
+       cd $(srcdir)                                                                            \
+       && $$glib_genmarshal --prefix=gtk_marshal gtkmarshal.list --body >> xgen-gmc            \
+       && cp xgen-gmc gtkmarshal.c                                                             \
+       && rm -f xgen-gmc 
+
+$(srcdir)/gtktypebuiltins.h: stamp-gtktypebuiltins.h
+       @true
+stamp-gtktypebuiltins.h: @REBUILD@ $(gtk_public_h_sources) Makefile
+       ( cd $(srcdir) && glib-mkenums \
+                       --fhead "#ifndef __GTK_TYPE_BUILTINS_H__\n#define __GTK_TYPE_BUILTINS_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
+                       --fprod "/* enumerations from \"@filename@\" */\n" \
+                       --vhead "GType @enum_name@_get_type (void);\n#define GTK_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
+                       --ftail "G_END_DECLS\n\n#endif /* __GTK_TYPE_BUILTINS_H__ */" \
+               $(gtk_public_h_sources) ) >> xgen-gtbh \
+       && (cmp -s xgen-gtbh $(srcdir)/gtktypebuiltins.h || cp xgen-gtbh $(srcdir)/gtktypebuiltins.h ) \
        && rm -f xgen-gtbh \
        && echo timestamp > $(@F)
-$(srcdir)/gtktypebuiltins_vars.c: @REBUILD@ maketypes.awk stamp-gtk.defs
-       cd $(srcdir) \
-       && LC_ALL=C $(AWK) -f maketypes.awk gtk.defs variables > xgen-gtbvc \
-       && cp xgen-gtbvc $(@F) \
-       && rm -f xgen-gtbvc
-$(srcdir)/gtktypebuiltins_ids.c: @REBUILD@ maketypes.awk stamp-gtk.defs
-       cd $(srcdir) \
-       && LC_ALL=C $(AWK) -f maketypes.awk gtk.defs entries > xgen-gtbic \
-       && cp xgen-gtbic $(@F) \
-       && rm -f xgen-gtbic
-$(srcdir)/gtktypebuiltins_evals.c: @REBUILD@ $(gtk_public_h_sources)
-       cd $(srcdir) \
-       && glib-mkenums \
+$(srcdir)/gtktypebuiltins.c: @REBUILD@ $(gtk_public_h_sources) Makefile
+       ( cd $(srcdir) && glib-mkenums \
+                       --fhead "#define GTK_ENABLE_BROKEN\n#include \"gtk.h\"\n#include \"gtkprivate.h\"" \
                        --fprod "\n/* enumerations from \"@filename@\" */" \
-                       --vhead "static const GtkEnumValue _@enum_name@_values[] = {" \
-                       --vprod "  { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
-                       --vtail "  { 0, NULL, NULL }\n};" \
-                       $(gtk_public_h_sources) > xgen-gtbec \
-       && cp xgen-gtbec $(@F) \
-       && rm -f xgen-gtbec
-
+                       --vhead "GType\n@enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G@Type@Value values[] = {" \
+                       --vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
+                       --vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values);\n  }\n  return etype;\n}\n" \
+               $(gtk_public_h_sources) ) > xgen-gtbc \
+       && cp xgen-gtbc $(srcdir)/gtktypebuiltins.c  \
+       && rm -f xgen-gtbc
 
 # target platform:
-lib_ltlibraries = @gtktargetlib@
-# now define the real one to workaround automake's mishandling
-lib_LTLIBRARIES = $(lib_ltlibraries)
-if USE_X11
-libgtk_x11_includedir = $(includedir)/gtk-2.0/gtk
-libgtk_x11_include_HEADERS = $(gtk_target_headers)
-libgtk_x11_1_3_la_SOURCES = $(gtk_target_sources)
-endif
-if USE_NANOX
-libgtk_nanox_includedir = $(includedir)/gtk-2.0/gtk
-libgtk_nanox_include_HEADERS = $(gtk_target_headers)
-libgtk_nanox_1_3_la_SOURCES = $(gtk_target_sources)
-endif
-if USE_LINUX_FB
-libgtk_linux_fb_includedir = $(includedir)/gtk-2.0/gtk
-libgtk_linux_fb_include_HEADERS = $(gtk_target_headers)
-libgtk_linux_fb_1_3_la_SOURCES = $(gtk_target_sources)
-endif
-EXTRA_LTLIBRARIES = libgtk-x11-1.3.la libgtk-nanox-1.3.la libgtk-linux-fb-1.3.la
+lib_LTLIBRARIES = $(gtktargetlib)
 
+gtkincludedir = $(includedir)/gtk-2.0/gtk
+gtkinclude_HEADERS = $(gtk_public_h_sources) $(gtk_built_public_sources) gtkversion.h
 
-# We create a dummy theme for the default GTK+ theme
-install-data-local:
+libgtk_x11_1_3_la_SOURCES = $(gtk_c_sources) $(gtk_plug_c_sources)
+libgtk_linux_fb_1_3_la_SOURCES = $(gtk_c_sources)
+libgtk_win32_1_3_la_SOURCES = $(gtk_c_sources)
+
+libgtk_win32_1_3_la_LIBADD = $(gtk_win32res_lo)
+libgtk_win32_1_3_la_DEPENDENCIES = $(gtk_def)
+
+if USE_WIN32
+libgtk_target_ldflags = $(gtk_win32_symbols) -lwsock32
+endif
+EXTRA_LTLIBRARIES = libgtk-x11-1.3.la libgtk-linux-fb-1.3.la libgtk-win32-1.3.la
+
+# Install a RC file for the default GTK+ theme, and key themes
+install-data-local:  install-ms-lib install-libtool-import-lib
        $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0
-       echo "# Empty gtkrc for default theme" > $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
+       $(INSTALL) $(srcdir)/gtkrc.default $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
+       $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key
+       $(INSTALL) $(srcdir)/gtkrc.key.default $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key/gtkrc
+       $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key
+       $(INSTALL) $(srcdir)/gtkrc.key.emacs $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key/gtkrc
+
+uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib
        rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
 
-DEPS = @gtktargetlib@ $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la $(top_builddir)/gdk/@gdktargetlib@
+DEPS = $(gtktargetlib) $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la $(top_builddir)/gdk/$(gdktargetlib)
+
 TEST_DEPS = $(DEPS) gtk.immodules
 
 LDADDS = @STRIP_BEGIN@ \
-       @gtktargetlib@                                  \
+       $(gtktargetlib)                                 \
        $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la \
-       $(top_builddir)/gdk/@gdktargetlib@              \
+       $(top_builddir)/gdk/$(gdktargetlib)             \
 @STRIP_END@
 
 #
@@ -544,6 +621,9 @@ EXTRA_DIST += @STRIP_BEGIN@         \
        gtk.def                 \
        gtk-win32.rc            \
        gtk-win32.rc.in         \
+       gtkrc.default           \
+       gtkrc.key.default       \
+       gtkrc.key.emacs         \
        makefile.mingw          \
        makefile.mingw.in       \
        makefile.msc            \