+## Makefile for building the gtk DLL with Microsoft C
+## Use: nmake -f makefile.msc
+
+## There is no install target, you have to decide where and
+## how to install for yourself.
+
+TOP = ../..
+!INCLUDE $(TOP)/build/win32/make.msc
+
+################################################################
+
+# Possibly override versions from build/win32/module.defs
+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
+
+# Perl and awk are needed to generate some source files.
+# These generated source files are distribuyted with the Win32 GTk+ source
+# distributions, so don't worry if you don't have perl and awk.
+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)
+# Some files use near as an identifier
+DEFINES = -DGTK_DISABLE_COMPAT_H -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" -Dnear=xxnear
+
+TOUCH = copy makefile.msc+nul
+
+GTK_VER=1.3
+
+all : \
+ ..\config.h \
+ gtkcompat.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_OBJECTS = \
+ fnmatch.obj \
+ gdk-pixbuf-loader.obj \
+ gtkaccelgroup.obj \
+ gtkaccellabel.obj \
+ gtkadjustment.obj \
+ gtkalignment.obj \
+ gtkarg.obj \
+ gtkarrow.obj \
+ gtkaspectframe.obj \
+ gtkbin.obj \
+ gtkbindings.obj \
+ gtkbbox.obj \
+ gtkbox.obj \
+ gtkbutton.obj \
+ gtkcalendar.obj \
+ gtkcheckbutton.obj \
+ gtkcheckmenuitem.obj \
+ gtkclipboard.obj \
+ gtkclist.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 \
+ gtkeventbox.obj \
+ gtkfilesel.obj \
+ gtkfixed.obj \
+ gtkfontsel.obj \
+ gtkframe.obj \
+ gtkgamma.obj \
+ gtkgc.obj \
+ gtkhandlebox.obj \
+ gtkhbbox.obj \
+ gtkhbox.obj \
+ gtkhpaned.obj \
+ gtkhruler.obj \
+ gtkhscale.obj \
+ gtkhscrollbar.obj \
+ gtkhseparator.obj \
+ gtkhsv.obj \
+ gtkiconfactory.obj \
+ gtkimage.obj \
+ gtkimcontext.obj \
+ gtkimcontextsimple.obj \
+ gtkimmulticontext.obj \
+ gtkinputdialog.obj \
+ gtkinvisible.obj \
+ gtkitem.obj \
+ gtkitemfactory.obj \
+ gtklabel.obj \
+ gtklayout.obj \
+ gtklist.obj \
+ gtklistitem.obj \
+ gtkmain.obj \
+ gtkmarshal.obj \
+ gtkmenu.obj \
+ gtkmenubar.obj \
+ gtkmenufactory.obj \
+ gtkmenuitem.obj \
+ gtkmenushell.obj \
+ gtkmessagedialog.obj \
+ gtkmisc.obj \
+ gtknotebook.obj \
+ gtkobject.obj \
+ gtkoptionmenu.obj \
+ gtkpacker.obj \
+ gtkpaned.obj \
+ gtkpixmap.obj \
+ gtkplug.obj \
+ gtkpreview.obj \
+ gtkprogress.obj \
+ gtkprogressbar.obj \
+ gtkradiobutton.obj \
+ gtkradiomenuitem.obj \
+ gtkrange.obj \
+ gtkrc.obj \
+ gtkruler.obj \
+ gtkscale.obj \
+ gtkscrollbar.obj \
+ gtkscrolledwindow.obj \
+ gtkselection.obj \
+ gtkseparator.obj \
+ gtksignal.obj \
+ gtksocket.obj \
+ gtkspinbutton.obj \
+ gtkstyle.obj \
+ gtkstatusbar.obj \
+ gtkstock.obj \
+ gtktable.obj \
+ gtktearoffmenuitem.obj \
+ gtktext.obj \
+ gtktextbtree.obj \
+ gtktextbuffer.obj \
+ gtktextchild.obj \
+ gtktextdisplay.obj \
+ gtktextiter.obj \
+ gtktextlayout.obj \
+ gtktextmark.obj \
+ gtktextsegment.obj \
+ gtktexttag.obj \
+ gtktexttagtable.obj \
+ gtktexttypes.obj \
+ gtktextview.obj \
+ gtkthemes.obj \
+ gtktipsquery.obj \
+ gtktogglebutton.obj \
+ gtktoolbar.obj \
+ gtktooltips.obj \
+ gtktree.obj \
+ gtktreeitem.obj \
+ gtktypeutils.obj \
+ gtkvbbox.obj \
+ gtkvbox.obj \
+ gtkviewport.obj \
+ gtkvpaned.obj \
+ gtkvruler.obj \
+ gtkvscale.obj \
+ gtkvscrollbar.obj \
+ gtkvseparator.obj \
+ gtkwidget.obj \
+ gtkwindow.obj
+
+# Source headers which are non-autogenerated headers
+source_headers = \
+ gtk.h \
+ gtkaccelgroup.h \
+ gtkaccellabel.h \
+ gtkadjustment.h \
+ gtkalignment.h \
+ gtkarg.h \
+ gtkarrow.h \
+ gtkaspectframe.h \
+ gtkbin.h \
+ gtkbindings.h \
+ gtkbbox.h \
+ gtkbox.h \
+ gtkbutton.h \
+ gtkcalendar.h \
+ gtkcheckbutton.h \
+ gtkcheckmenuitem.h \
+ gtkclist.h \
+ gtkcolorsel.h \
+ gtkcolorseldialog.h \
+ gtkcombo.h \
+ gtkcompat.h \
+ gtkcontainer.h \
+ gtkctree.h \
+ gtkcurve.h \
+ gtkdata.h \
+ gtkdebug.h \
+ gtkdialog.h \
+ gtkdnd.h \
+ gtkdrawingarea.h \
+ gtkeditable.h \
+ gtkentry.h \
+ gtkenums.h \
+ gtkeventbox.h \
+ gtkfilesel.h \
+ gtkfixed.h \
+ gtkfontsel.h \
+ gtkframe.h \
+ gtkgamma.h \
+ gtkgc.h \
+ gtkhandlebox.h \
+ gtkhbbox.h \
+ gtkhbox.h \
+ gtkhpaned.h \
+ gtkhruler.h \
+ gtkhscale.h \
+ gtkhscrollbar.h \
+ gtkhseparator.h \
+ gtkhsv.h \
+ gtkimage.h \
+ gtkimcontext.h \
+ gtkimmulticontext.h \
+ gtkinputdialog.h \
+ gtkinvisible.h \
+ gtkitem.h \
+ gtkitemfactory.h \
+ gtklabel.h \
+ gtklayout.h \
+ gtklist.h \
+ gtklistitem.h \
+ gtkmain.h \
+ gtkmenu.h \
+ gtkmenubar.h \
+ gtkmenufactory.h \
+ gtkmenuitem.h \
+ gtkmenushell.h \
+ gtkmisc.h \
+ gtknotebook.h \
+ gtkobject.h \
+ gtkoptionmenu.h \
+ gtkpacker.h \
+ gtkpaned.h \
+ gdk-pixbuf-loader.h \
+ gtkpixmap.h \
+ gtkplug.h \
+ gtkpreview.h \
+ gtkprivate.h \
+ gtkprogress.h \
+ gtkprogressbar.h \
+ gtkradiobutton.h \
+ gtkradiomenuitem.h \
+ gtkrange.h \
+ gtkrc.h \
+ gtkruler.h \
+ gtkscale.h \
+ gtkscrollbar.h \
+ gtkscrolledwindow.h \
+ gtkselection.h \
+ gtkseparator.h \
+ gtksignal.h \
+ gtksocket.h \
+ gtkspinbutton.h \
+ gtkstyle.h \
+ gtkstatusbar.h \
+ gtktable.h \
+ gtktearoffmenuitem.h \
+ gtktextbuffer.h \
+ gtktextiter.h \
+ gtktextmark.h \
+ gtktexttag.h \
+ gtktexttagtable.h \
+ gtktextview.h \
+ gtktext.h \
+ gtkthemes.h \
+ gtktipsquery.h \
+ gtktogglebutton.h \
+ gtktoolbar.h \
+ gtktooltips.h \
+ gtktree.h \
+ gtktreeitem.h \
+ gtktypeutils.h \
+ gtkvbbox.h \
+ gtkvbox.h \
+ gtkviewport.h \
+ gtkvpaned.h \
+ gtkvruler.h \
+ gtkvscale.h \
+ gtkvscrollbar.h \
+ gtkvseparator.h \
+ gtkwidget.h \
+ gtkwindow.h
+
+# More headers to use when autogenerating.
+gdk_headers = \
+ ..\gdk\gdkcc.h \
+ ..\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
+
+..\config.h : ..\config.h.win32
+ copy ..\config.h.win32 ..\config.h
+
+gtkcompat.h : gtkcompat.h.win32
+ copy gtkcompat.h.win32 gtkcompat.h
+
+GENERATED = gtk.defs gtktypebuiltins.h gtktypebuiltins_vars.c gtktypebuiltins_ids.c gtktypebuiltins_evals.c gtkmarshal.h gtkmarshal.c
+
+#
+# Generated source files:
+#
+generated : $(GENERATED)
+ $(TOUCH) generated
+
+gtk.defs : makeenums.pl gtk-boxed.defs $(source_headers) $(gdk_headers)
+ $(PERL) makeenums.pl defs $(source_headers) $(gdk_headers) >gd.tmp
+ copy gd.tmp+gtk-boxed.defs gtk.defs
+ @erase gd.tmp
+
+# 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 $(source_headers) $(gdk_headers) >gtktypebuiltins_evals.c
+
+gtkmarshal.h gtkmarshal.c : gtkmarshal.list genmarshal.pl
+ $(PERL) genmarshal.pl gtkmarshal.list s-gmh s-gmc
+ del gtkmarshal.c
+ rename s-gmc gtkmarshal.c
+ del gtkmarshal.h
+ rename s-gmh gtkmarshal.h
+
+#
+# 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\" $<
+
+#
+# Test programs:
+#
+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)
+
+testinput.obj : testinput.c
+ $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testinput\" testinput.c
+
+testrgb.exe : gtk-win32-$(GTK_VER).dll testrgb.obj
+ $(CC) $(CFLAGS) testrgb.obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
+
+testrgb.obj : testrgb.c
+ $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testrgb\" testrgb.c
+
+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
+
+makefile.msc: makefile.msc.in
+ sed -e s,@GTK[_]MAJOR_VERSION@,@GTK_MAJOR_VERSION@, \
+ -e s,@GTK[_]MINOR_VERSION@,@GTK_MINOR_VERSION@, \
+ -e 's,@GDK_PIXBUF[_]MAJOR@,@GDK_PIXBUF_MAJOR@,' \
+ -e 's,@GDK_PIXBUF[_]MINOR@,@GDK_PIXBUF_MINOR@,' <makefile.msc.in >$@