gtk2/gtk/makefile.mingw.in
Tor Lillqvist 06b4ef6517 Updates.
2001-10-29  Tor Lillqvist  <tml@iki.fi>

	* README.win32: Updates.

	* gtk-zip.sh.in: New file, used to build distribution package for
	Windows.

	* gdk/gdkglobals.c: Mark gdk_threads_mutex for DLL export when
	applicable with GDKVAR.

	* gtk/gtk.def: Update.

	* gtk/gtkfilesel.c: Include <winsock.h> (if available) for
	gethostname().

	* gtk/gtkmain.c
	* gtk/gtkrc.c: (Win32) Save actual DLL name for later use in DLL
	entry function. Avoid hardcoded paths GTK_LIBDIR, GTK_SYSCONFDIR,
	GTK_DATA_PREFIX and GTK_LOCALEDIR, instead add functions that call
	g_win32_get_package_installation_subdirectory() with the actual
	DLL name saved above. Redefine above directory name macros to call
	these functions. Remove some ifdefs.

	* gtk/maketypes.awk: Output GTKTYPEBUILTINS_VAR (that marks
	variable for export on Win32) also to the _vars file.

	Changes for autoconfiscated build on Win32, and addition of Win32
	backend to the related files:

	* configure.in: Like in GLib, set LT_CURRENT_MINUS_AGE for use
	when forming DLL name in some files. Set MS_LIB_AVAILABLE is
	lib.exe is available. Call AC_LIBTOOL_WIN32_DLL. Set
	PLATFORM_WIN32, OS_WIN32 and USE_WIN32 automake conditionals. Add
	win32 target, using pangowin32. Don't use the
	-export-symbols-regex option on Win32, we use .def files to list
	exported symbols. Check <winsock.h> (for gethostname() in
	gtkfilesel.c). Enclose nested AC_CHECK_* macros in brackets to
	prevent premature m4 expansion.

	* acconfig.h: Add HAVE_WINTAB.

	* gdk/Makefile.am: Add libgdk-win32-1.3.la target and associated
	macros and rules. Use -no-undefined on Win32. Use gdk.def file. If
	MS_LIB_AVAILABLE, build MS import library. Install the import
	libraries. If HAVE_WINTAB, link with the Wintab library.

	* gtk/Makefile.am: Add libgtk-win32-1.3.la target and associated
	macros and rules. Use -no-undefined on Win32. Use gtk-win32.def
	file. Install import libraries.
2001-10-29 07:06:37 +00:00

478 lines
11 KiB
Plaintext

####
#### Out of order! Use autoconfiscation.
####
## Makefile for building the GTK DLL with gcc on Win32
## Use: make -f makefile.mingw
## There is no install target, you have to decide where and
## how to install for yourself.
OPTIMIZE = -g
TOP = ../..
include ../build/win32/make.mingw
################################################################
# 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 = -L ../gdk -lgdk-win32-$(GTK_VER)
GTK_LIBS = -L . -lgtk-win32-$(GTK_VER)
GDK_PIXBUF_LIBS = -L ../gdk-pixbuf -lgdk_pixbuf-$(GDK_PIXBUF_VER)
# Perl and awk are needed to generate some source files.
# These generated source files are distributed with the Win32 GTk+ source
# distributions, so don't worry if you don't have perl and awk.
PERL = perl
AWK = awk
INCLUDES = -I . -I .. -I ../gdk -I ../gdk-pixbuf
DEPCFLAGS = $(PANGO_CFLAGS) $(GLIB_CFLAGS) $(LIBICONV_CFLAGS) $(INTL_CFLAGS)
DEFINES = -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" -DGTK_VERSION=\"@GTK_VERSION@\"
GLIB_GENMARSHAL = $(GLIB)/gobject/glib-genmarshal.exe
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.o \
gtkaccelgroup.o \
gtkaccellabel.o \
gtkadjustment.o \
gtkalignment.o \
gtkarg.o \
gtkarrow.o \
gtkaspectframe.o \
gtkbin.o \
gtkbindings.o \
gtkbbox.o \
gtkbox.o \
gtkbutton.o \
gtkcalendar.o \
gtkcellrenderer.o \
gtkcellrenderertext.o \
gtkcellrenderertextpixbuf.o \
gtkcellrenderertoggle.o \
gtkcellrendererpixbuf.o \
gtkcheckbutton.o \
gtkcheckmenuitem.o \
gtkclipboard.o \
gtkclist.o \
gtkcolorsel.o \
gtkcolorseldialog.o \
gtkcombo.o \
gtkcontainer.o \
gtkctree.o \
gtkcurve.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 \
gtkhsv.o \
gtkiconfactory.o \
gtkimage.o \
gtkimagemenuitem.o \
gtkimcontext.o \
gtkimcontextsimple.o \
gtkimmodule.o \
gtkimmulticontext.o \
gtkinputdialog.o \
gtkinvisible.o \
gtkitem.o \
gtkitemfactory.o \
gtklabel.o \
gtklayout.o \
gtklist.o \
gtklistitem.o \
gtkmain.o \
gtkmenu.o \
gtkmenubar.o \
gtkmenufactory.o \
gtkmenuitem.o \
gtkmenushell.o \
gtkmessagedialog.o \
gtkmisc.o \
gtknotebook.o \
gtkobject.o \
gtkoldeditable.o \
gtkoptionmenu.o \
gtkpacker.o \
gtkpaned.o \
gtkpixmap.o \
gtkplug.o \
gtkpreview.o \
gtkprogress.o \
gtkprogressbar.o \
gtkradiobutton.o \
gtkradiomenuitem.o \
gtkrange.o \
gtkrbtree.o \
gtkrc.o \
gtkruler.o \
gtkscale.o \
gtkscrollbar.o \
gtkscrolledwindow.o \
gtkselection.o \
gtkseparator.o \
gtkseparatormenuitem.o \
gtksettings.o \
gtksignal.o \
gtksocket.o \
gtkspinbutton.o \
gtkstyle.o \
gtkstatusbar.o \
gtkstock.o \
gtktable.o \
gtktearoffmenuitem.o \
gtktext.o \
gtktextbtree.o \
gtktextbuffer.o \
gtktextchild.o \
gtktextdisplay.o \
gtktextiter.o \
gtktextlayout.o \
gtktextmark.o \
gtktextsegment.o \
gtktexttag.o \
gtktexttagtable.o \
gtktexttypes.o \
gtktextview.o \
gtkthemes.o \
gtktipsquery.o \
gtktogglebutton.o \
gtktoolbar.o \
gtktooltips.o \
gtktree.o \
gtktreeitem.o \
gtktreedatalist.o \
gtktreednd.o \
gtktreemodel.o \
gtktreemodelsort.o \
gtktreeselection.o \
gtktreestore.o \
gtktreeview.o \
gtktreeviewcolumn.o \
gtktypeutils.o \
gtkvbbox.o \
gtkvbox.o \
gtkviewport.o \
gtkvpaned.o \
gtkvruler.o \
gtkvscale.o \
gtkvscrollbar.o \
gtkvseparator.o \
gtkwidget.o \
gtkwindow.o \
gtkwindow-decorate.o
# 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 \
gtkseparatormenuitem.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 \
gtkimagemenuitem.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 \
gtknotebook.h \
gtkoldeditable.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 \
gtksettings.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 \
gtktreednd.h \
gtktreeitem.h \
gtktreemodel.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
# 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/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
cp $< $@
GENERATED = gtk.defs gtktypebuiltins.h gtktypebuiltins_vars.c gtktypebuiltins_ids.c gtktypebuiltins_evals.c gtkmarshal.h gtkmarshal.c
#
# Generated source files:
#
generated : $(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
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 $(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 : generated $(gtk_OBJECTS) gtk.def
$(GLIB)/build-dll gtk-win32 $(GTK_VER) gtk.def $(gtk_OBJECTS) $(GDK_LIBS) $(GDK_PIXBUF_LIBS) $(PANGO_LIBS) $(GLIB_LIBS) $(LIBICONV_LIBS) $(INTL_LIBS) -luser32
#
# Test programs:
#
testcalendar.exe : testcalendar.o
$(CC) $(CFLAGS) -o $@ testcalendar.o $(GTK_LIBS) $(GDK_LIBS) $(PANGO_LIBS) $(GLIB_LIBS) $(LDFLAGS)
# Must have separate rules for these objects that don't go in the DLL
testcalendar.o : testcalendar.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testcalendar\" testcalendar.c
testdnd.exe : testdnd.o
$(CC) $(CFLAGS) -o $@ testdnd.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
testdnd.o : testdnd.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testdnd\" testdnd.c
testgtk.exe : testgtk.o
$(CC) $(CFLAGS) -o $@ testgtk.o $(GTK_LIBS) $(GDK_LIBS) $(PANGO_LIBS) $(GLIB_LIBS) $(LDFLAGS)
testgtk.o : testgtk.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testgtk\" testgtk.c
testinput.exe : testinput.o
$(CC) $(CFLAGS) -o $@ testinput.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
testinput.o : testinput.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testinput\" testinput.c
testrgb.exe : testrgb.o
$(CC) $(CFLAGS) -o $@ testrgb.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
testrgb.o : testrgb.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testrgb\" testrgb.c
testselection.exe : testselection.o
$(CC) $(CFLAGS) -o $@ testselection.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
testselection.o : testselection.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testselection\" testselection.c
testtext.exe : testtext.o
$(CC) $(CFLAGS) -o $@ testtext.o $(PANGO_LIBS) $(GDK_PIXBUF_LIBS) $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
testtext.o : testtext.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testtext\" testtext.c
testtextbuffer.exe : testtextbuffer.o
$(CC) $(CFLAGS) -o $@ testtextbuffer.o $(GDK_PIXBUF_LIBS) $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
testtextbuffer.o : testtextbuffer.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testtextbuffer\" testtextbuffer.c
simple.exe : simple.o
$(CC) $(CFLAGS) -o $@ simple.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
simple.o : simple.c
$(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"simple\" simple.c
# The rmgen target removes just the generated source files
rmgen:
-rm $(GENERATED)
# Hack to get an updated makefile.mingw automatically after updating
# makefile.mingw.in. Only for developer use.
makefile.mingw: makefile.mingw.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@,' <$< >$@