## 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) $(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 = -DG_ENABLE_DEBUG -DGTK_DISABLE_COMPAT_H -DG_LOG_DOMAIN=\"Gtk\" -Dnear=xxnear -DGTK_VERSION=\"$(GTK_VER)\" TOUCH = copy makefile.msc+nul all : \ ..\config.h \ generated \ gtk-win32-$(GTK_VER).dll \ gtk-win32-$(GTK_VER)s.lib gtk_OBJECTS = \ fnmatch.obj \ # gdk-pixbuf-loader.obj \ gtkaccelgroup.obj \ gtkaccellabel.obj \ gtkaccessible.obj \ gtkadjustment.obj \ gtkalignment.obj \ gtkarrow.obj \ gtkaspectframe.obj \ gtkbin.obj \ gtkbindings.obj \ gtkbbox.obj \ gtkbox.obj \ gtkbutton.obj \ gtkcalendar.obj \ gtkcellrenderer.obj \ gtkcellrenderertext.obj \ gtkcellrenderertextpixbuf.obj \ gtkcellrenderertoggle.obj \ gtkcellrendererpixbuf.obj \ gtkcheckbutton.obj \ gtkcheckmenuitem.obj \ gtkclipboard.obj \ gtkclist.obj \ gtkcolorsel.obj \ gtkcolorseldialog.obj \ gtkcombo.obj \ gtkcontainer.obj \ gtkctree.obj \ gtkcurve.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 \ gtkimagemenuitem.obj \ gtkimcontext.obj \ gtkimcontextsimple.obj \ gtkimmodule.obj \ gtkimmulticontext.obj \ gtkinputdialog.obj \ gtkinvisible.obj \ gtkitem.obj \ gtkitemfactory.obj \ gtklabel.obj \ gtklayout.obj \ gtklist.obj \ gtklistitem.obj \ gtkliststore.obj \ gtkmain.obj \ gtkmenu.obj \ gtkmenubar.obj \ gtkmenuitem.obj \ gtkmenushell.obj \ gtkmessagedialog.obj \ gtkmisc.obj \ gtknotebook.obj \ gtkobject.obj \ gtkoldeditable.obj \ gtkoptionmenu.obj \ # gtkpacker.obj \ gtkpaned.obj \ gtkpixmap.obj \ gtkplug.obj \ gtkpreview.obj \ gtkprogress.obj \ gtkprogressbar.obj \ gtkradiobutton.obj \ gtkradiomenuitem.obj \ gtkrange.obj \ gtkrbtree.obj \ gtkrc.obj \ gtkruler.obj \ gtkscale.obj \ gtkscrollbar.obj \ gtkscrolledwindow.obj \ gtkselection.obj \ gtkseparator.obj \ gtkseparatormenuitem.obj \ gtksettings.obj \ gtksignal.obj \ gtksizegroup.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 \ gtktreedatalist.obj \ gtktreednd.obj \ gtktreeitem.obj \ gtktreemodel.obj \ # gtktreemodelsimple.obj \ gtktreemodelsort.obj \ gtktreeselection.obj \ gtktreesortable.obj \ gtktreestore.obj \ gtktreeview.obj \ gtktreeviewcolumn.obj \ gtktypeutils.obj \ gtkvbbox.obj \ gtkvbox.obj \ gtkviewport.obj \ gtkvpaned.obj \ gtkvruler.obj \ gtkvscale.obj \ gtkvscrollbar.obj \ gtkvseparator.obj \ gtkwidget.obj \ gtkwindow.obj \ gtkwindow-decorate.obj # Source headers which are non-autogenerated headers gtk_public_h_sources = \ gtk.h \ gtkaccelgroup.h \ gtkaccellabel.h \ gtkaccessible.h \ gtkadjustment.h \ gtkalignment.h \ gtkarrow.h \ gtkaspectframe.h \ gtkbin.h \ gtkbindings.h \ gtkbbox.h \ gtkbox.h \ gtkbutton.h \ gtkcalendar.h \ gtkcheckbutton.h \ gtkcheckmenuitem.h \ gtkclist.h \ gtkclipboard.h \ gtkcolorsel.h \ gtkcolorseldialog.h \ gtkcombo.h \ gtkcontainer.h \ gtkctree.h \ gtkcurve.h \ gtkcellrenderer.h \ gtkcellrenderertext.h \ gtkcellrenderertextpixbuf.h \ gtkcellrenderertoggle.h \ gtkcellrendererpixbuf.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 \ gtkiconfactory.h \ gtkimage.h \ gtkimcontext.h \ gtkimmodule.h \ gtkimmulticontext.h \ gtkinputdialog.h \ gtkinvisible.h \ gtkitem.h \ gtkitemfactory.h \ gtklabel.h \ gtklayout.h \ gtklist.h \ gtklistitem.h \ gtkliststore.h \ gtkmain.h \ gtkmenu.h \ gtkmenubar.h \ gtkmenuitem.h \ gtkmenushell.h \ gtkmessagedialog.h \ gtkmisc.h \ gtknotebook.h \ gtkoldeditable.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 \ gtksizegroup.h \ gtksignal.h \ gtksocket.h \ gtkspinbutton.h \ gtkstyle.h \ gtkstatusbar.h \ gtkstock.h \ gtktable.h \ gtktearoffmenuitem.h \ gtktextbuffer.h \ gtktextchild.h \ gtktextdisplay.h \ gtktextiter.h \ gtktextlayout.h \ gtktextmark.h \ gtktexttag.h \ gtktexttagtable.h \ gtktextview.h \ gtktext.h \ gtktipsquery.h \ gtktogglebutton.h \ gtktoolbar.h \ gtktooltips.h \ gtktree.h \ gtktreeitem.h \ gtktreemodel.h \ # gtktreemodelsimple.h \ gtktreemodelsort.h \ gtktreeselection.h \ gtktreesortable.h \ gtktreestore.h \ gtktreeview.h \ gtktreeviewcolumn.h \ gtktypeutils.h \ gtkvbbox.h \ gtkvbox.h \ gtkviewport.h \ gtkvpaned.h \ gtkvruler.h \ gtkvscale.h \ gtkvscrollbar.h \ gtkvseparator.h \ gtkwidget.h \ gtkwindow.h # these aren't use here, but listed for reference gtk_extra_sources = \ gtkcompat.h \ maketypes.awk \ makeenums.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 # # Generated source files: # generated : $(GENERATED) $(TOUCH) generated gtk.defs : makeenums.pl gtk-boxed.defs $(gtk_public_h_sources) makefile.msc $(PERL) makeenums.pl defs $(gtk_public_h_sources) >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 $(gtk_public_h_sources) $(gdk_headers) >gtktypebuiltins_evals.c gtkmarshal.h : gtkmarshal.list $(GLIB)\gobject\glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --header >gtkmarshal.h gtkmarshal.c : gtkmarshal.list $(GLIB)\gobject\glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --body >gtkmarshal.c gtksignal.obj : gtksignal.c gtkmarshal.c gtkmarshal.h $(CC) $(CFLAGS) -GD -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" gtksignal.c # # Linking: # gtk-win32-$(GTK_VER).dll : $(gtk_OBJECTS) gtk.def $(CC) $(CFLAGS) -LD -Fm -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 gtk-win32-$(GTK_VER)s.lib : $(gtk_OBJECTS) lib /out:gtk-win32-$(GTK_VER)s.lib $(gtk_OBJECTS) # 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 $(EXAMPLE).exe : $(EXAMPLE).obj $(CC) $(CFLAGS) $(EXAMPLE).obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS) makefile.msc: makefile.msc.in sed -e s,@GTK[_]MAJOR_VERSION@,@GTK_MAJOR_VERSION@, \ -e s,@GTK[_]MINOR_VERSION@,@GTK_MINOR_VERSION@, \ -e 's,@GTK[_]VERSION@,@GTK_VERSION@,' \ -e 's,@GDK_PIXBUF[_]MAJOR@,@GDK_PIXBUF_MAJOR@,' \ -e 's,@GDK_PIXBUF[_]MINOR@,@GDK_PIXBUF_MINOR@,' $@