]> Pileus Git - ~andy/gtk/blobdiff - gtk/makefile.msc.in
new file to build it all ... added to EXTRA_DIST
[~andy/gtk] / gtk / makefile.msc.in
index fea06f760077efaf154cd66a8a320f6d809f1c54..6fc0368b9edc3bacd715f0f3b003d9646affd864 100644 (file)
@@ -4,8 +4,8 @@
 ## There is no install target, you have to decide where and 
 ## how to install for yourself.
 
-TOP = ../..
-!INCLUDE $(TOP)/build/win32/make.msc
+TOP = ..\..
+!INCLUDE $(TOP)/glib/build/win32/make.msc
 
 ################################################################
 
@@ -13,9 +13,11 @@ TOP = ../..
 GTK_VER = @GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@
 GDK_PIXBUF_VER = @GDK_PIXBUF_MAJOR@.@GDK_PIXBUF_MINOR@
 
+
 GDK_LIBS = ../gdk/gdk-win32-$(GTK_VER).lib
 GTK_LIBS = gtk-win32-$(GTK_VER).lib
 GDK_PIXBUF_LIBS = ../gdk-pixbuf/gdk_pixbuf-$(GDK_PIXBUF_VER).lib
+GTK_BINARY_VERSION = @GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@.@LT_CURRENT@
 
 # Perl and awk are needed to generate some source files.
 # These generated source files are distribuyted with the Win32 GTk+ source
@@ -23,39 +25,41 @@ GDK_PIXBUF_LIBS = ../gdk-pixbuf/gdk_pixbuf-$(GDK_PIXBUF_VER).lib
 PERL = perl
 AWK = gawk
 
-INCLUDES = -I . -I .. -I ../gdk -I ../gdk-pixbuf
-DEPCFLAGS = $(PANGO_CFLAGS) $(GLIB_CFLAGS) $(LIBICONV_CFLAGS) $(INTL_CFLAGS)
-LDFLAGS = /link /machine:ix86 $(LINKDEBUG)
+INCLUDES = -FImsvc_recommended_pragmas.h -I . -I .. -I ../gdk -I ../gdk-pixbuf
+DEPCFLAGS = $(PANGO_CFLAGS) $(GLIB_CFLAGS) $(LIBICONV_CFLAGS) \
+               $(INTL_CFLAGS) $(ATK_CFLAGS)
+LDFLAGS = $(ATK_LIBS) /link /machine:ix86 $(LINKDEBUG)
 # Some files use near as an identifier
 # Don't define GTK_COMPILATION here, because it's for gtk-x.x.dll only
-DEFINES = -DGTK_DISABLE_COMPAT_H -DG_LOG_DOMAIN=\"Gtk\" -Dnear=xxnear -DGTK_VERSION=\"$(GTK_VER)\"
+DEFINES = $(G_DEBUGGING) -DGTK_DISABLE_COMPAT_H -DG_LOG_DOMAIN=\"Gtk\" -Dnear=xxnear \
+       -DPANGO_ENABLE_BACKEND \
+       -DGTK_VERSION=\"$(GTK_VER)\" -DGTK_BINARY_VERSION=\"$(GTK_BINARY_VERSION)\" \
+       -DGTK_HOST=\"win32\"
 
 TOUCH = copy makefile.msc+nul
 
-GTK_VER=1.3
+gtk-stocks-icons :
+       cd stock-icons
+       nmake -nologo -f makefile.msc
+       cd ..
 
 all :                                          \
        ..\config.h                             \
        generated                               \
-       gtk-win32-$(GTK_VER).dll                \
-       testcalendar.exe                        \
-       testdnd.exe                             \
-       testgtk.exe                             \
-       testinput.exe                           \
-       testrgb.exe                             \
-       testselection.exe                       \
-       testtext.exe                            \
-       testtextbuffer.exe                      \
-       simple.exe
+       gtk-stocks-icons                        \
+       libgtk-win32-$(GTK_VER)-0.dll           \
+       gtk-query-immodules-$(GTK_VER).exe \
+#      gtk-win32-$(GTK_VER)s.lib \
+#      gtk-x11-$(GTK_VER).dll
 
 gtk_OBJECTS =                                  \
        fnmatch.obj                             \
-#      gdk-pixbuf-loader.obj                   \
        gtkaccelgroup.obj                       \
        gtkaccellabel.obj                       \
+       gtkaccelmap.obj \
+       gtkaccessible.obj \
        gtkadjustment.obj                       \
        gtkalignment.obj                        \
-       gtkarg.obj                              \
        gtkarrow.obj                            \
        gtkaspectframe.obj                      \
        gtkbin.obj                              \
@@ -64,31 +68,35 @@ gtk_OBJECTS =                                       \
        gtkbox.obj                              \
        gtkbutton.obj                           \
        gtkcalendar.obj                         \
+       gtkcelleditable.obj                     \
+       gtkcelllayout.obj                       \
        gtkcellrenderer.obj                     \
        gtkcellrenderertext.obj                 \
-       gtkcellrenderertextpixbuf.obj           \
        gtkcellrenderertoggle.obj               \
        gtkcellrendererpixbuf.obj               \
        gtkcheckbutton.obj                      \
        gtkcheckmenuitem.obj                    \
        gtkclipboard.obj                        \
        gtkclist.obj                            \
+       gtkcolorbutton.obj                              \
        gtkcolorsel.obj                         \
        gtkcolorseldialog.obj                   \
        gtkcombo.obj                            \
        gtkcontainer.obj                        \
        gtkctree.obj                            \
        gtkcurve.obj                            \
-       gtkdata.obj                             \
        gtkdialog.obj                           \
        gtkdnd.obj                              \
        gtkdrawingarea.obj                      \
        gtkeditable.obj                         \
        gtkentry.obj                            \
+       gtkentrycompletion.obj          \
        gtkeventbox.obj                         \
+       gtkexpander.obj                 \
        gtkfilesel.obj                          \
        gtkfixed.obj                            \
        gtkfontsel.obj                          \
+       gtkfontbutton.obj                               \
        gtkframe.obj                            \
        gtkgamma.obj                            \
        gtkgc.obj                               \
@@ -102,6 +110,8 @@ gtk_OBJECTS =                                       \
        gtkhseparator.obj                       \
        gtkhsv.obj                              \
        gtkiconfactory.obj                      \
+       gtkicontheme.obj                        \
+       gtkiconthemeparser.obj                  \
        gtkimage.obj                            \
        gtkimagemenuitem.obj    \
        gtkimcontext.obj                        \
@@ -112,14 +122,17 @@ gtk_OBJECTS =                                     \
        gtkinvisible.obj                        \
        gtkitem.obj                             \
        gtkitemfactory.obj                      \
+       gtkkeyhash.obj  \
        gtklabel.obj                            \
        gtklayout.obj                           \
        gtklist.obj                             \
        gtklistitem.obj                         \
+       gtkliststore.obj                                \
        gtkmain.obj                             \
+       gtkmarshalers.obj               \
+       gtkmarshal.obj          \
        gtkmenu.obj                             \
        gtkmenubar.obj                          \
-       gtkmenufactory.obj                      \
        gtkmenuitem.obj                         \
        gtkmenushell.obj                        \
        gtkmessagedialog.obj                    \
@@ -128,14 +141,14 @@ gtk_OBJECTS =                                     \
        gtkobject.obj                           \
        gtkoldeditable.obj                      \
        gtkoptionmenu.obj                       \
-       gtkpacker.obj                           \
        gtkpaned.obj                            \
        gtkpixmap.obj                           \
-       gtkplug.obj                             \
+#      gtkplug.obj                             \
        gtkpreview.obj                          \
        gtkprogress.obj                         \
        gtkprogressbar.obj                      \
        gtkradiobutton.obj                      \
+       gtkradiotoolbutton.obj                  \
        gtkradiomenuitem.obj                    \
        gtkrange.obj                            \
        gtkrbtree.obj   \
@@ -147,8 +160,11 @@ gtk_OBJECTS =                                      \
        gtkselection.obj                        \
        gtkseparator.obj                        \
        gtkseparatormenuitem.obj \
+       gtkseparatortoolitem.obj \
+       gtksettings.obj \
        gtksignal.obj                           \
-       gtksocket.obj                           \
+       gtksizegroup.obj \
+#      gtksocket.obj                           \
        gtkspinbutton.obj                       \
        gtkstyle.obj                            \
        gtkstatusbar.obj                        \
@@ -167,24 +183,30 @@ gtk_OBJECTS =                                     \
        gtktexttag.obj                          \
        gtktexttagtable.obj                     \
        gtktexttypes.obj                        \
+       gtktextutil.obj \
        gtktextview.obj                         \
        gtkthemes.obj                           \
        gtktipsquery.obj                        \
        gtktogglebutton.obj                     \
+       gtktoggletoolbutton.obj                 \
        gtktoolbar.obj                          \
+       gtktoolbutton.obj                               \
+       gtktoolitem.obj                         \
        gtktooltips.obj                         \
        gtktree.obj                             \
        gtktreedatalist.obj     \
        gtktreednd.obj                          \
        gtktreeitem.obj                         \
        gtktreemodel.obj                        \
-       gtktreemodelsimple.obj                  \
+       gtktreemodelfilter.obj                  \
        gtktreemodelsort.obj                    \
        gtktreeselection.obj                    \
+       gtktreesortable.obj \
        gtktreestore.obj                        \
        gtktreeview.obj                 \
        gtktreeviewcolumn.obj                   \
        gtktypeutils.obj                        \
+       gtktypebuiltins.obj \
        gtkvbbox.obj                            \
        gtkvbox.obj                             \
        gtkviewport.obj                         \
@@ -202,44 +224,49 @@ gtk_public_h_sources =            \
        gtk.h                   \
        gtkaccelgroup.h         \
        gtkaccellabel.h         \
+       gtkaccelmap.h           \
+       gtkaccessible.h \
        gtkadjustment.h         \
        gtkalignment.h          \
-       gtkarg.h                \
        gtkarrow.h              \
        gtkaspectframe.h        \
+       gtkbbox.h               \
        gtkbin.h                \
        gtkbindings.h           \
-       gtkbbox.h               \
        gtkbox.h                \
        gtkbutton.h             \
        gtkcalendar.h           \
+       gtkcelleditable.h       \
+       gtkcelllayout.h         \
+       gtkcellrenderer.h       \
+       gtkcellrendererpixbuf.h \
+       gtkcellrenderertext.h   \
+       gtkcellrenderertoggle.h \
        gtkcheckbutton.h        \
        gtkcheckmenuitem.h      \
+       gtkclipboard.h          \
        gtkclist.h              \
        gtkclipboard.h          \
+       gtkcolorbutton.h        \
        gtkcolorsel.h           \
        gtkcolorseldialog.h     \
        gtkcombo.h              \
-       gtkcompat.h             \
        gtkcontainer.h          \
        gtkctree.h              \
        gtkcurve.h              \
-       gtkcellrenderer.h       \
-       gtkcellrenderertext.h   \
-       gtkcellrenderertextpixbuf.h     \
-       gtkcellrenderertoggle.h \
-       gtkcellrendererpixbuf.h \
-       gtkdata.h               \
        gtkdebug.h              \
        gtkdialog.h             \
        gtkdnd.h                \
        gtkdrawingarea.h        \
        gtkeditable.h           \
        gtkentry.h              \
+       gtkentrycompletion.h    \
        gtkenums.h              \
        gtkeventbox.h           \
+       gtkexpander.h           \
        gtkfilesel.h            \
        gtkfixed.h              \
+       gtkfontbutton.h         \
        gtkfontsel.h            \
        gtkframe.h              \
        gtkgamma.h              \
@@ -254,8 +281,11 @@ gtk_public_h_sources =             \
        gtkhseparator.h         \
        gtkhsv.h                \
        gtkiconfactory.h        \
+       gtkicontheme.h          \
        gtkimage.h              \
+       gtkimagemenuitem.h      \
        gtkimcontext.h          \
+       gtkimcontextsimple.h    \
        gtkimmodule.h           \
        gtkimmulticontext.h     \
        gtkinputdialog.h        \
@@ -268,20 +298,18 @@ gtk_public_h_sources =            \
        gtklistitem.h           \
        gtkliststore.h          \
        gtkmain.h               \
+       gtkmarshal.h    \
        gtkmenu.h               \
        gtkmenubar.h            \
-       gtkmenufactory.h        \
        gtkmenuitem.h           \
        gtkmenushell.h          \
        gtkmessagedialog.h      \
        gtkmisc.h               \
        gtknotebook.h           \
-       gtkoldeditable.h        \
        gtkobject.h             \
+       gtkoldeditable.h        \
        gtkoptionmenu.h         \
-       gtkpacker.h             \
        gtkpaned.h              \
-#      gdk-pixbuf-loader.h     \
        gtkpixmap.h             \
        gtkplug.h               \
        gtkpreview.h            \
@@ -290,6 +318,7 @@ gtk_public_h_sources =              \
        gtkprogressbar.h        \
        gtkradiobutton.h        \
        gtkradiomenuitem.h      \
+       gtkradiotoolbutton.h    \
        gtkrange.h              \
        gtkrc.h                 \
        gtkruler.h              \
@@ -298,14 +327,20 @@ gtk_public_h_sources =            \
        gtkscrolledwindow.h     \
        gtkselection.h          \
        gtkseparator.h          \
+       gtkseparatormenuitem.h  \
+       gtkseparatortoolitem.h  \
+       gtksettings.h           \
+       gtksignal.h             \
+       gtksizegroup.h  \
        gtksignal.h             \
        gtksocket.h             \
        gtkspinbutton.h         \
-       gtkstyle.h              \
        gtkstatusbar.h          \
        gtkstock.h              \
+       gtkstyle.h              \
        gtktable.h              \
        gtktearoffmenuitem.h    \
+       gtktext.h               \
        gtktextbuffer.h         \
        gtktextchild.h          \
        gtktextdisplay.h        \
@@ -315,15 +350,18 @@ gtk_public_h_sources =            \
        gtktexttag.h            \
        gtktexttagtable.h       \
        gtktextview.h           \
-       gtktext.h               \
        gtktipsquery.h          \
        gtktogglebutton.h       \
+       gtktoggletoolbutton.h   \
        gtktoolbar.h            \
+       gtktoolbutton.h         \
+       gtktoolitem.h           \
        gtktooltips.h           \
        gtktree.h               \
+       gtktreednd.h            \
        gtktreeitem.h           \
        gtktreemodel.h          \
-       gtktreemodelsimple.h    \
+       gtktreemodelfilter.h    \
        gtktreemodelsort.h      \
        gtktreeselection.h      \
        gtktreesortable.h       \
@@ -342,31 +380,17 @@ gtk_public_h_sources =            \
        gtkwidget.h             \
        gtkwindow.h
 
-# More headers to use when autogenerating.
-gdk_headers =                  \
-       ..\gdk\gdkcolor.h       \
-       ..\gdk\gdkcursor.h      \
-       ..\gdk\gdkdnd.h         \
-       ..\gdk\gdkdrawable.h    \
-       ..\gdk\gdkevents.h      \
-       ..\gdk\gdkfont.h        \
-       ..\gdk\gdkgc.h          \
-       ..\gdk\gdkim.h          \
-       ..\gdk\gdkimage.h       \
-       ..\gdk\gdkinput.h       \
-       ..\gdk\gdkpixmap.h      \
-       ..\gdk\gdkproperty.h    \
-       ..\gdk\gdkregion.h      \
-       ..\gdk\gdkrgb.h         \
-       ..\gdk\gdkselection.h   \
-       ..\gdk\gdktypes.h       \
-       ..\gdk\gdkvisual.h      \
-       ..\gdk\gdkwindow.h
+# these aren't use here, but listed for reference
+gtk_extra_sources = \
+       gtkversion.h            \
+       gtk-boxed.defs          \
+       gtkmarshal.list         \
 
 ..\config.h : ..\config.h.win32
        copy ..\config.h.win32 ..\config.h
 
-GENERATED = gtk.defs gtktypebuiltins.h gtktypebuiltins_vars.c gtktypebuiltins_ids.c gtktypebuiltins_evals.c gtkmarshal.h gtkmarshal.c
+# Removed: gtk.defs 
+GENERATED = gtktypebuiltins.h gtktypebuiltins.c gtkmarshal.h gtkmarshal.c gtkmarshalers.h gtkmarshalers.c
 
 #
 # Generated source files:
@@ -374,106 +398,79 @@ GENERATED = gtk.defs gtktypebuiltins.h gtktypebuiltins_vars.c gtktypebuiltins_id
 generated : $(GENERATED)
        $(TOUCH) generated
 
-gtk.defs : makeenums.pl gtk-boxed.defs $(gtk_public_h_sources) $(gdk_headers)
-       $(PERL) makeenums.pl defs $(gtk_public_h_sources) $(gdk_headers) >gd.tmp
-       copy gd.tmp+gtk-boxed.defs gtk.defs
-       @erase gd.tmp
+gtk.defs : $(gtk_public_h_sources) makefile.msc
+       $(PERL) $(GLIB)\gobject\glib-mkenums \
+               --comments ";; @comment@" \
+               --fprod "; enumerations from \"@filename@\"\n " \
+               --vhead "(define-@type@ @EnumName@" \
+               --vprod "   (@valuenick@ @VALUENAME@)" \
+               --vtail ")" \
+               $(gtk_public_h_sources) > xgen-gdef
+       copy xgen-gdef gtk.defs
 
 # generate type identifier header (GTK_TYPE_WIDGET_FLAGS)
-gtktypebuiltins.h: gtk.defs maketypes.awk
-       $(AWK) -f maketypes.awk gtk.defs macros >gtktypebuiltins.h
-
-# generate type identifier variables (GTK_TYPE_WIDGET_FLAGS)
-gtktypebuiltins_vars.c: gtk.defs maketypes.awk
-       $(AWK) -f maketypes.awk gtk.defs variables >gtktypebuiltins_vars.c
-
-# generate type entries for type-id registration
-gtktypebuiltins_ids.c: gtk.defs maketypes.awk
-       $(AWK) -f maketypes.awk gtk.defs entries >gtktypebuiltins_ids.c
-
-# generate enum value arrays
-gtktypebuiltins_evals.c: makeenums.pl gtk.defs
-       $(PERL) makeenums.pl arrays $(gtk_public_h_sources) $(gdk_headers) >gtktypebuiltins_evals.c
-
+# use 'echo' to work around 'command line too long'
+gtktypebuiltins.h: $(gtk_public_h_sources) makefile.msc
+       echo #ifndef __GTK_TYPE_BUILTINS_H__ > gtktypebuiltins.h
+       echo #define __GTK_TYPE_BUILTINS_H__ >> gtktypebuiltins.h
+       echo #include "glib-object.h" >> gtktypebuiltins.h
+       echo G_BEGIN_DECLS >> gtktypebuiltins.h
+       $(PERL) $(GLIB)\gobject\glib-mkenums \
+               --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) >> gtktypebuiltins.h
+
+gtktypebuiltins.c: $(gtk_public_h_sources) makefile.msc
+       $(PERL) $(GLIB)\gobject\glib-mkenums \
+               --fhead "#define GTK_ENABLE_BROKEN\n#include \"gtk.h\"\n#include \"gtkprivate.h\"" \
+               --fprod "\n/* enumerations from \"@filename@\" */" \
+               --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
+       copy xgen-gtbc gtktypebuiltins.c
+
+# private marshalers
+gtkmarshalers.h : gtkmarshalers.list
+       $(GLIB)\gobject\glib-genmarshal --prefix=_gtk_marshal gtkmarshalers.list --header >>gtkmarshalers.h
+
+gtkmarshalers.c : gtkmarshalers.list
+       $(GLIB)\gobject\glib-genmarshal --prefix=_gtk_marshal gtkmarshalers.list --body >gtkmarshalers.c
+
+# public, deprecated marshalers
 gtkmarshal.h : gtkmarshal.list
-       glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --header >gtkmarshal.h
+       echo #ifndef GTK_DISABLE_DEPRECATED >gtkmarshal.h
+       $(GLIB)\gobject\glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --header >>gtkmarshal.h
+       echo #endif /* GTK_DISABLE_DEPRECATED */ >>gtkmarshal.h
 
 gtkmarshal.c : gtkmarshal.list
-       glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --body >gtkmarshal.c
+       $(GLIB)\gobject\glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --body >gtkmarshal.c
 
-#
-# Linking:
-#
-gtk-win32-$(GTK_VER).dll : $(gtk_OBJECTS) gtk.def
-       $(CC) $(CFLAGS) -LD -Fegtk-win32-$(GTK_VER).dll $(gtk_OBJECTS) $(GDK_LIBS) $(GDK_PIXBUF_LIBS) $(PANGO_LIBS) $(INTL_LIBS) $(GLIB_LIBS) gdi32.lib user32.lib advapi32.lib $(LDFLAGS) /def:gtk.def
-
-# General rule for compiling the objects into the DLL
-.c.obj :
-       $(CC) $(CFLAGS) -GD -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" $<
+gtksignal.obj : gtksignal.c gtkmarshal.c gtkmarshal.h
+       $(CC) $(CFLAGS) -GD -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" gtksignal.c
 
 #
-# Test programs:
+# Linking:
 #
-testcalendar.exe : gtk-win32-$(GTK_VER).dll testcalendar.obj
-       $(CC) $(CFLAGS) testcalendar.obj $(GTK_LIBS) $(GDK_LIBS) $(PANGO_LIBS) $(GLIB_LIBS) $(LDFLAGS)
-
-# Must have separate rules for these objects that don't go in the DLL
-testcalendar.obj : testcalendar.c
-       $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testcalendar\" testcalendar.c
-
-testdnd.exe : gtk-win32-$(GTK_VER).dll testdnd.obj
-       $(CC) $(CFLAGS) testdnd.obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
-
-testdnd.obj : testdnd.c
-       $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testdnd\" testdnd.c
-
-testgtk.exe : gtk-win32-$(GTK_VER).dll testgtk.obj
-       $(CC) $(CFLAGS) testgtk.obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(PANGO_LIBS) $(LDFLAGS)
-
-testgtk.obj : testgtk.c
-       $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testgtk\" testgtk.c
-
-testinput.exe : gtk-win32-$(GTK_VER).dll testinput.obj
-       $(CC) $(CFLAGS) testinput.obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
+libgtk-win32-$(GTK_VER)-0.dll : $(gtk_OBJECTS) gtk.def
+       $(CC) $(CFLAGS) -LD -Fm -Fe$@ $(gtk_OBJECTS) \
+       $(GDK_LIBS) $(GDK_PIXBUF_LIBS) $(PANGO_LIBS) $(INTL_LIBS) $(GLIB_LIBS) \
+       gdi32.lib user32.lib advapi32.lib wsock32.lib \
+       $(LDFLAGS) /implib:gtk-win32-$(GTK_VER).lib /def:gtk.def
 
-testinput.obj : testinput.c
-       $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testinput\" testinput.c
+gtk-win32-$(GTK_VER)s.lib : $(gtk_OBJECTS)
+       lib /out:gtk-win32-$(GTK_VER)s.lib $(gtk_OBJECTS)
 
-testrgb.exe : gtk-win32-$(GTK_VER).dll testrgb.obj
-       $(CC) $(CFLAGS) testrgb.obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
+gtk-query-immodules-$(GTK_VER).exe : queryimmodules.obj
+       $(CC) $(CFLAGS) -Fe$@ queryimmodules.obj $(GTK_LIBS) $(GLIB_LIBS) $(PANGO_LIBS) $(LDFLAGS)
 
-testrgb.obj : testrgb.c
-       $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testrgb\" testrgb.c
+gtk-x11-$(GTK_VER).dll : $(gtk_OBJECTS) gtk.def
+       $(CC) $(CFLAGS) -LD -Fm -Fegtk-x11-$(GTK_VER).dll $(gtk_OBJECTS) ../gdk/gdk-x11-$(GTK_VER).lib $(GDK_PIXBUF_LIBS) $(PANGO_LIBS) $(INTL_LIBS) $(GLIB_LIBS) gdi32.lib user32.lib advapi32.lib $(LDFLAGS) /def:gtk.def
 
-testselection.exe : gtk-win32-$(GTK_VER).dll testselection.obj
-       $(CC) $(CFLAGS) testselection.obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
-
-testselection.obj : testselection.c
-       $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testselection\" testselection.c
-
-testtext.exe : gtk-win32-$(GTK_VER).dll testtext.obj
-       $(CC) $(CFLAGS) testtext.obj $(PANGO_LIBS) $(GDK_PIXBUF_LIBS) $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
-
-testtext.obj : testtext.c
-       $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testtext\" testtext.c
-
-testtextbuffer.exe : gtk-win32-$(GTK_VER).dll testtextbuffer.obj
-       $(CC) $(CFLAGS) testtextbuffer.obj $(GDK_PIXBUF_LIBS) $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
-
-testtextbuffer.obj : testtextbuffer.c
-       $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testtextbuffer\" testtextbuffer.c
-
-testthreads.exe : gtk-win32-$(GTK_VER).dll testthreads.obj
-       $(CC) $(CFLAGS) testthreads.obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(PTHREAD_LIBS) $(LDFLAGS)
-
-testthreads.obj : testthreads.c
-       $(CC) $(CFLAGS) $(PTHREAD_CFLAGS) -c -DG_LOG_DOMAIN=\"testthreads\" -DUSE_PTHREADS=1 testthreads.c
-
-simple.exe : gtk-win32-$(GTK_VER).dll simple.obj
-       $(CC) $(CFLAGS) simple.obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
-
-simple.obj : simple.c
-       $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"simple\" simple.c
+# General rule for compiling the objects into the DLL
+.c.obj :
+       $(CC) $(CFLAGS) -GD -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" $<
 
 $(EXAMPLE).obj : ..\examples\$(EXAMPLE)\$(EXAMPLE).c
        $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"$(EXAMPLE)\" ..\examples\$(EXAMPLE)\$(EXAMPLE).c