mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-10 10:50:10 +00:00
15d2050794
2001-11-08 Tor Lillqvist <tml@iki.fi> * README.win32: Add headers. Add section about ActiveIMM. * configure.in: Add --with-ie55 flag to specify the location of the "IE55 libs and headers" package downloadable from Microsoft, which contains, among other things, the Active IMM header dimm.h and UUID library uuid.lib. Use test -f instead of AC_CHECK_FILE. Require GLib 1.3.10. * config.h.win32.in: New version, produced by merging two configure-generated ones (for gcc and MSVC). Hopefully #defines the same flags that the previous, hand-written one, did. * gdk/Makefile.am * gdk/win32/Makefile.am: Handle the uuid library from the IE55 lib. * gdk/win32/gdkevents-win32.c: Conditionalize ActiveIMM stuff. Remove unused GdkIOClosure. * gdk/win32/surrogate-dimm.h: Remove, use real dimm.h instead (if available). * gdk/win32/libie55uuid.la: New file, handwritten libtool wrapper for uuid.lib. (Does it really have to be this hard to use an existing library with libtool? Probably I am missing something.)
98 lines
4.2 KiB
Plaintext
98 lines
4.2 KiB
Plaintext
The Win32 port of GTK+ is a work in progress, and not as stable or
|
|
correct as the Unix/X11 version. For more information about the Win32
|
|
port, see http://www.gimp.org/win32/ .
|
|
|
|
This (CVS HEAD) version of the Win32 backend does *not* necessarily
|
|
even compile properly. There is a gtk-1-3-win32-production branch that
|
|
was branched off from before the addition of the no-flicker and other
|
|
recent functionality. That is what should be used by "production" code
|
|
until the CVS HEAD version is useable. (But note, the Win32 backend
|
|
has never been claimed to be "production quality", although it works
|
|
surprisingly well for the GIMP.)
|
|
|
|
Building GTK+ on Win32
|
|
======================
|
|
|
|
There are two ways to build GTK+ for win32:
|
|
|
|
1) Use the autoconf-generated configure script, and the resulting
|
|
Makefiles (which use libtool and gcc to do the compilation). I use
|
|
this myself, but it might be hell to setup correctly.
|
|
|
|
Personally I run configure with:
|
|
CC='gcc -mpentium -fnative-struct' CPPFLAGS='-I/target/include' CFLAGS=-O2 LDFLAGS='-L/target/lib' ./configure --disable-static --prefix=/target --with-gdktarget=win32 --with-wintab=/src/wtkit126 --with-ie55=/src/workshop/ie55_lib --host=i386-pc-mingw32 --enable-maintainer-mode
|
|
|
|
2) Use the Microsoft compiler, cl and Make, nmake. Say nmake -f
|
|
makefile.msc in gdk and gtk.
|
|
|
|
Alternative 1 also generates Microsoft import libraries (.lib), if you
|
|
have lib.exe available. It should also work for cross-compilation from
|
|
Unix.
|
|
|
|
There are hand-written makefiles for mingw (look for makefile.mingw in
|
|
various directories), but those haven't been kept up-to-date, and
|
|
probably won't work without editing. Sorry. If you make them work
|
|
again, by all means do submit patches.
|
|
|
|
Note that I use mainly gcc myself, and thus the build setup for
|
|
Microsoft's nmake and cl might be a bit rusty. Hans Breuer has been
|
|
taking care of those makefiles. At times, we disagree a bit, and the
|
|
msc makefiles might not produce compatible or identically named DLLs
|
|
and import libraries as the autoconfiscated makefiles and libtool do.
|
|
|
|
Using GTK+ on Win32
|
|
===================
|
|
|
|
To use GTK+ on Win32, you also need either one of the above mentioned
|
|
compilers. Other compilers might work, but don't count on it. The same
|
|
instructions on how to set up a correct version of gcc should also be
|
|
followed if you want to build applications that use GTk+ with gcc. For
|
|
prebuilt developer packages (DLLs, import libraries, headers), see the
|
|
above website.
|
|
|
|
Multi-threaded use of GTK+ on Win32
|
|
===================================
|
|
|
|
Multi-threaded GTK+ programs might work in special simple cases, but
|
|
not in general. Sorry. If you have all GTK+ and GDK calls in the same
|
|
thread, it might work. Otherwise, probably not at all. Possible ways
|
|
to fix this are being investigated.
|
|
|
|
Wintab
|
|
======
|
|
|
|
The tablet support uses the Wintab API. The Wintab development kit can
|
|
be downloaded from http://www.pointing.com. Pass the --with-wintab
|
|
flag to configure if you use that. If you use nmake and you don't care
|
|
for Wintab, undefine HAVE_WINTAB in config.h.win32 and remove
|
|
references to the wntab32x library from the makefile before building.
|
|
|
|
Libintl
|
|
=======
|
|
|
|
GTK wants to be built with the GNU "intl" library for
|
|
internationalisation (i18n). Get the version ported to Win32 (not a
|
|
very big deal) from the web site mentioned above. The "intl" library
|
|
as gets built as a DLL called libintl-1.dll. If you don't want any
|
|
i18n stuff, undefine ENABLE_NLS, HAVE_GETTEXT and HAVE_LIBINTL in the
|
|
config.h.win32 file, and remove references to the intl library from
|
|
the makefiles.
|
|
|
|
Note that while the GNU gettext package is under the GPL, the "intl"
|
|
part of it is under the LGPL (like GTK or GLib), as of
|
|
gettext-0.10.40.
|
|
|
|
ActiveIMM
|
|
=========
|
|
|
|
If you want to build a GTK+ that supports ActiveIMM (the Input Method
|
|
Manager for non-EastAsia locales that can be used on Win9x/NT4), you
|
|
need the dimm.h header file. That is somewhat difficult to find, but
|
|
http://msdn.microsoft.com/downloads/samples/internet/wizard/ seems to
|
|
be a good place to look nowadays. If you use autoconfiscated build,
|
|
pass the --with-ie55 flag to configure specifyin the location of the
|
|
ie55_lib directory created by downloading the IE5.5 headers and libs
|
|
from the above URL.
|
|
|
|
--Tor Lillqvist <tml@iki.fi>
|