README.win32 3.15 KB
Newer Older
Tor Lillqvist's avatar
Tor Lillqvist committed
1 2 3 4 5 6 7 8 9 10 11
The Win32 backend in GTK+ is not as stable or correct as the X11
one. 

For prebuilt runtime and developer packages see
http://www.gimp.org/win32/downloads.html .

There is also a gtk-1-3-win32-production branch of GTK+ that was
branched off from before the addition of the no-flicker and other
functionality that was new in GTK+ 2.0.0. The vesion number used for
that branch is 1.3.0. It corresponds most closely to GTK 1.2.7 on
Unix. For new code, you shouldn't be using that.
Tor Lillqvist's avatar
Tor Lillqvist committed
12

13 14 15
Building GTK+ on Win32
======================

Tor Lillqvist's avatar
Tor Lillqvist committed
16
There are two ways to build GTK+ for win32.
17

Tor Lillqvist's avatar
Tor Lillqvist committed
18 19
1) Use the autoconf-generated configure script, and the resulting
Makefiles (which use libtool and gcc to do the compilation). I use
Tor Lillqvist's avatar
Tor Lillqvist committed
20
this myself, but it can be hard to setup correctly.
Tor Lillqvist's avatar
Tor Lillqvist committed
21

22 23 24 25 26 27 28 29 30 31 32 33
Note that I first always edit the ltmain.sh file like this:
sed -e 's/need_relink=yes/need_relink=no # no way --tml/' <ltmain.sh >ltmain.temp && mv ltmain.temp ltmain.sh

Personally I run configure with something like:
CC='gcc -mtune=pentium3 -mthreads' CPPFLAGS='-I/opt/gnuwin32/include -I/opt/gnu/include -I/opt/misc/include' CFLAGS=-g LIBS=-lintl LDFLAGS='-L/opt/gnuwin32/lib -L/opt/gnu/lib -L/opt/misc/lib' ./configure --prefix=c:/devel/target/HEAD --with-gdktarget=win32 --enable-maintainer-mode --enable-debug=yes --enable-explicit-deps=no --with-included-loaders=png,bmp,gif,ico,jpeg,tiff,xpm

Then you should just be able to run "make", like on Unix.

An issue is with the gdk-pixbuf.loaders file. It's probably best to do
a "make install" in the gdk-pixbuf directory, and let that set up a
mostly correct gdk-pixbuf.loaders in the target directory. Then copy
that back to the source directory. It's needed in gtk/stock-icons
Tor Lillqvist's avatar
Tor Lillqvist committed
34 35
where make runs gdk-pixbuf-csource.

36
Etc, you get the idea.
Tor Lillqvist's avatar
Tor Lillqvist committed
37

Tor Lillqvist's avatar
Tor Lillqvist committed
38
2) Use the Microsoft compiler, cl and Make, nmake. Say nmake -f
Tor Lillqvist's avatar
Tor Lillqvist committed
39 40
makefile.msc in gdk and gtk. Be prepared to manually edit various
makefile.msc files, and the makefile snippets in build/win32.
Tor Lillqvist's avatar
Tor Lillqvist committed
41 42

Alternative 1 also generates Microsoft import libraries (.lib), if you
Tor Lillqvist's avatar
Tor Lillqvist committed
43
have lib.exe available. It might also work for cross-compilation from
Tor Lillqvist's avatar
Tor Lillqvist committed
44 45
Unix.

Tor Lillqvist's avatar
Tor Lillqvist committed
46 47
Note that I use method 1 myself. Hans Breuer has been taking care of
the MSVC makefiles. At times, we disagree a bit about various issues,
48 49 50
and for instance the makefile.msc files will not produce identically
named DLLs and import libraries as the "autoconfiscated" makefiles and
libtool do. If this bothers you, you will have to fix the makefiles.
Tor Lillqvist's avatar
Tor Lillqvist committed
51

52 53 54
Using GTK+ on Win32
===================

Tor Lillqvist's avatar
Tor Lillqvist committed
55
To use GTK+ on Win32, you also need either one of the above mentioned
Tor Lillqvist's avatar
Tor Lillqvist committed
56 57
compilers. Other compilers might work, but don't count on it. Look for
prebuilt developer packages (DLLs, import libraries, headers) on the
Tor Lillqvist's avatar
Tor Lillqvist committed
58
above website.
Tor Lillqvist's avatar
Tor Lillqvist committed
59

60 61 62
Multi-threaded use of GTK+ on Win32
===================================

Tor Lillqvist's avatar
Tor Lillqvist committed
63 64 65 66
Multi-threaded GTK+ programs might work on Windows 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.
67 68 69 70

Wintab
======

71 72 73
The tablet support uses the Wintab API. Unfortunately it seems that
only Wacom tablet software comes with the required wintab32.dll
nowadays.
74

Tor Lillqvist's avatar
Tor Lillqvist committed
75
--Tor Lillqvist <tml@iki.fi>