## 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 -DGTK_VERSION=\"@GTK_VERSION@\" TOUCH = copy makefile.msc+nul GTK_VER=1.3 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_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 \ 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 \ 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 \ gtkimmodule.obj \ gtkimmulticontext.obj \ gtkinputdialog.obj \ gtkinvisible.obj \ gtkitem.obj \ gtkitemfactory.obj \ gtklabel.obj \ gtklayout.obj \ gtklist.obj \ gtklistitem.obj \ gtkmain.obj \ gtkmenu.obj \ gtkmenubar.obj \ gtkmenufactory.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 \ 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 \ gtktreemodel.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 gtk_public_h_sources = \ 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 \ gtkclipboard.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 \ 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 \ gtkmenufactory.h \ gtkmenuitem.h \ gtkmenushell.h \ gtkmessagedialog.h \ gtkmisc.h \ gtkmodelsimple.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 \ 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 \ gtktreemodelsort.h \ gtktreeselection.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 # 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 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) $(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 # 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-genmarshal --prefix=gtk_marshal gtkmarshal.list --header >gtkmarshal.h gtkmarshal.c : gtkmarshal.list 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\" $< # # 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,@GTK[_]VERSION@,@GTK_VERSION@,' \ -e 's,@GDK_PIXBUF[_]MAJOR@,@GDK_PIXBUF_MAJOR@,' \ -e 's,@GDK_PIXBUF[_]MINOR@,@GDK_PIXBUF_MINOR@,' $@