+## Makefile for building the GTK DLL with egcs on cygwin
+## Use: make -f makefile.cygwin install
+
+# Change this to wherever you want to install the DLL. This directory
+# should be in your PATH.
+BIN = /bin
+
+# This is the location of pthreads for Win32,
+# see http://sourceware.cygnus.com/pthreads-win32/
+PTHREADS = ../../pthreads-snap-1999-04-07
+PTHREAD_LIB = -L $(PTHREADS) -lpthread
+PTHREAD_INC = -I $(PTHREADS)
+
+OPTIMIZE = -g -O
+
+################################################################
+
+# Nothing much configurable below
+
+CC = gcc -mno-cygwin -mpentium
+
+# 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 = awk
+
+INSTALL = install
+
+GLIB_VER=1.3
+GTK_VER=1.3
+
+GDKSYSDEP = ../gdk/win32
+GLIB = ../../glib
+
+CFLAGS = $(OPTIMIZE) -I. -I.. -I$(GDKSYSDEP) -I$(GLIB) -I$(GLIB)/gmodule -DGTK_DISABLE_COMPAT_H
+
+all : \
+ ../config.h \
+ gtkcompat.h \
+ generated \
+ gtk-$(GTK_VER).dll\
+ testdnd.exe \
+ testgtk.exe \
+ testinput.exe \
+ testrgb.exe \
+ testselection.exe \
+ simple.exe
+
+install : all
+ $(INSTALL) gtk-$(GTK_VER).dll $(BIN)
+
+gtk_OBJECTS = \
+ fnmatch.o \
+ gtkaccelgroup.o \
+ gtkaccellabel.o \
+ gtkadjustment.o \
+ gtkalignment.o \
+ gtkarg.o \
+ gtkarrow.o \
+ gtkaspectframe.o\
+ gtkbbox.o \
+ gtkbin.o \
+ gtkbindings.o \
+ gtkbox.o \
+ gtkbutton.o \
+ gtkcalendar.o \
+ gtkcheckbutton.o\
+ gtkcheckmenuitem.o\
+ gtkclist.o \
+ gtkcolorsel.o \
+ gtkcombo.o \
+ gtkcontainer.o \
+ gtkctree.o \
+ gtkcurve.o \
+ gtkdata.o \
+ gtkdialog.o \
+ gtkdnd.o \
+ gtkdrawingarea.o\
+ gtkeditable.o \
+ gtkentry.o \
+ gtkeventbox.o \
+ gtkfilesel.o \
+ gtkfixed.o \
+ gtkfontsel.o \
+ gtkframe.o \
+ gtkgamma.o \
+ gtkgc.o \
+ gtkhandlebox.o \
+ gtkhbbox.o \
+ gtkhbox.o \
+ gtkhpaned.o \
+ gtkhruler.o \
+ gtkhscale.o \
+ gtkhscrollbar.o \
+ gtkhseparator.o \
+ gtkimage.o \
+ gtkinputdialog.o\
+ gtkinvisible.o \
+ gtkitem.o \
+ gtkitemfactory.o\
+ gtklabel.o \
+ gtklayout.o \
+ gtklist.o \
+ gtklistitem.o \
+ gtkmain.o \
+ gtkmarshal.o \
+ gtkmenu.o \
+ gtkmenubar.o \
+ gtkmenufactory.o\
+ gtkmenuitem.o \
+ gtkmenushell.o \
+ gtkmisc.o \
+ gtknotebook.o \
+ gtkobject.o \
+ gtkoptionmenu.o \
+ gtkpacker.o \
+ gtkpaned.o \
+ gtkpixmap.o \
+ gtkplug.o \
+ gtkpreview.o \
+ gtkprogress.o \
+ gtkprogressbar.o\
+ gtkradiobutton.o\
+ gtkradiomenuitem.o\
+ gtkrange.o \
+ gtkrc.o \
+ gtkruler.o \
+ gtkscale.o \
+ gtkscrollbar.o \
+ gtkscrolledwindow.o\
+ gtkselection.o \
+ gtkseparator.o \
+ gtksignal.o \
+ gtksocket.o \
+ gtkspinbutton.o \
+ gtkstatusbar.o \
+ gtkstyle.o \
+ gtktable.o \
+ gtktearoffmenuitem.o\
+ gtktext.o \
+ gtkthemes.o \
+ gtktipsquery.o \
+ gtktogglebutton.o\
+ gtktoolbar.o \
+ gtktooltips.o \
+ gtktree.o \
+ gtktreeitem.o \
+ gtktypeutils.o \
+ gtkvbbox.o \
+ gtkvbox.o \
+ gtkviewport.o \
+ gtkvpaned.o \
+ gtkvruler.o \
+ gtkvscale.o \
+ gtkvscrollbar.o \
+ gtkvseparator.o \
+ gtkwidget.o \
+ gtkwindow.o
+
+# 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 \
+ 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 \
+ gtkimage.h \
+ gtkinputdialog.h \
+ gtkintl.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 \
+ 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 \
+ 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/gdktypes.h \
+ ../gdk/gdkrgb.h
+
+../config.h : ../config.h.win32
+ cp ../config.h.win32 ../config.h
+
+gtkcompat.h : gtkcompat.h.win32
+ cp gtkcompat.h.win32 gtkcompat.h
+
+#
+# Generated source files:
+#
+generated : gtk.defs gtktypebuiltins.h gtktypebuiltins_vars.c gtktypebuiltins_ids.c gtktypebuiltins_evals.c gtkmarshal.h gtkmarshal.c
+
+gtk.defs : makeenums.pl gtk-boxed.defs $(source_headers) $(gdk_headers)
+ $(PERL) makeenums.pl defs $(source_headers) $(gdk_headers) >gd.tmp
+ cat gd.tmp gtk-boxed.defs >gtk.defs
+ rm 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
+ -rm gtkmarshal.c
+ mv s-gmc gtkmarshal.c
+ -rm gtkmarshal.h
+ mv s-gmh gtkmarshal.h
+
+#
+# Linking:
+#
+gtk-$(GTK_VER).dll : generated $(gtk_OBJECTS) gtk.def
+ $(GLIB)/build-dll gtk $(GTK_VER) gtk.def $(gtk_OBJECTS) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) -lgdi32 -luser32
+
+# General rule for compiling the objects into the DLL
+.c.o :
+ $(CC) $(CFLAGS) -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" $<
+
+#
+# Test programs:
+#
+testdnd.exe : testdnd.o
+ $(CC) $(CFLAGS) -o $@ testdnd.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
+
+# Must have separate rules for these objects that don't go in the DLL
+testdnd.o : testdnd.c
+ $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testdnd\" testdnd.c
+
+testgtk.exe : testgtk.o
+ $(CC) $(CFLAGS) -o $@ testgtk.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
+
+testgtk.o : testgtk.c
+ $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testgtk\" testgtk.c
+
+testinput.exe : testinput.o
+ $(CC) $(CFLAGS) -o $@ testinput.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
+
+testinput.o : testinput.c
+ $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testinput\" testinput.c
+
+testrgb.exe : testrgb.o
+ $(CC) $(CFLAGS) -o $@ testrgb.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
+
+testrgb.o : testrgb.c
+ $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testrgb\" testrgb.c
+
+testselection.exe : testselection.o
+ $(CC) $(CFLAGS) -o $@ testselection.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
+
+testselection.o : testselection.c
+ $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testselection\" testselection.c
+
+testthreads.exe : testthreads.o
+ $(CC) $(CFLAGS) -o $@ testthreads.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) -lgthread-$(GLIB_VER) $(PTHREAD_LIB) $(LDFLAGS)
+
+testthreads.o : testthreads.c
+ $(CC) $(CFLAGS) -I$(PTHREAD_INC) -c -DG_LOG_DOMAIN=\"testthreads\" -DUSE_PTHREADS=1 testthreads.c
+
+simple.exe : simple.o
+ $(CC) $(CFLAGS) -o $@ simple.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
+
+simple.o : simple.c
+ $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"simple\" simple.c
+
+# The clean target doesn't remove the generated sources
+clean:
+ -rm *.exe *.o *.dll *.a *.exp *.base