]> Pileus Git - ~andy/gtk/blob - README.win32
Look for DLLs also in the bin subdirectory, where libtool 1.5 installs
[~andy/gtk] / README.win32
1 The Win32 port of GTK+ is a work in progress, and not as stable or
2 correct as the Unix/X11 version. For more information about the Win32
3 port, and prebuilt runtime and developer packages see
4 http://www.gimp.org/win32/ .
5
6 There is a gtk-1-3-win32-production branch of GTK+ that was branched
7 off from before the addition of the no-flicker and other recent
8 functionality. That is what should be used by "production" code until
9 this CVS HEAD (2.0) version is useable. (But note, the Win32 backend
10 has never been claimed to be "production quality", although it works
11 surprisingly well for the GIMP.)
12
13 Building GTK+ on Win32
14 ======================
15
16 There are two ways to build GTK+ for win32:
17
18 1) Use the autoconf-generated configure script, and the resulting
19 Makefiles (which use libtool and gcc to do the compilation). I use
20 this myself, but it might be hell to setup correctly. 
21
22 Personally I run configure with:
23 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
24
25 It might well be that in order for this to work, you will have to get
26 a bleeding-edge version of libtool for Win32, run libtoolize yourself,
27 and then run autoconf to generate the configure script.
28
29 2) Use the Microsoft compiler, cl and Make, nmake. Say nmake -f
30 makefile.msc in gdk and gtk.
31
32 Alternative 1 also generates Microsoft import libraries (.lib), if you
33 have lib.exe available. It might also work for cross-compilation from
34 Unix.
35
36 Note that I use method 1 myself. Hans Breuer has been taking care of
37 the MSVC makefiles. At times, we disagree a bit about various issues,
38 and for instance the makefile.msc files will not produce identically
39 named DLLs and import libraries as the "autoconfiscated" makefiles and
40 libtool do. If this bothers you, you will have to fix the makefiles.
41
42 Using GTK+ on Win32
43 ===================
44
45 To use GTK+ on Win32, you also need either one of the above mentioned
46 compilers. Other compilers might work, but don't count on it. Look for
47 prebuilt developer packages (DLLs, import libraries, headers) on the
48 above website.
49
50 Multi-threaded use of GTK+ on Win32
51 ===================================
52
53 Multi-threaded GTK+ programs might work in special simple cases, but
54 not in general. Sorry. If you have all GTK+ and GDK calls in the same
55 thread, it might work. Otherwise, probably not at all. Possible ways
56 to fix this are being investigated.
57
58 Wintab
59 ======
60
61 The tablet support uses the Wintab API. The Wintab development kit can
62 be downloaded from http://www.pointing.com. Pass the --with-wintab
63 flag to configure if you use that. If you use nmake and you don't care
64 for Wintab, undefine HAVE_WINTAB in config.h.win32 and remove
65 references to the wntab32x library from the makefile before building.
66
67 Libintl
68 =======
69
70 Before building GTK+ you must also have GNU gettext. Get prebuilt
71 binaries of gettext-runtime (0.12.1 or newer) from your nearest GNU
72 ftp mirror. If you use gcc, you will also have to edit the libintl.h
73 file from gettext a tiny bit: Change the
74
75 # if __GNUC__ >= 2 && !defined __APPLE_CC__ && (defined __STDC__ || defined __cplusplus)
76
77 line to
78
79 # if __GNUC__ >= 2 && !defined __APPLE_CC__ && !defined __MINGW32__ && (defined __STDC__ || defined __cplusplus)
80
81 around line 102.
82
83 If you use libtool, you will also have to copy intl.lib to libintl.a
84 so that libtool will find them. Alternatively, use pexports and
85 dlltool to generate a gcc import library.
86
87 ActiveIMM
88 =========
89
90 If you want to build a GTK+ that supports ActiveIMM (the Input Method
91 Manager for non-EastAsia locales that can be used on Win9x/NT4), you
92 need the dimm.h header file. That is somewhat difficult to find, but
93 http://msdn.microsoft.com/downloads/samples/internet/wizard/ seems to
94 be a good place to look nowadays. If you use "autoconfiscated" build,
95 pass the --with-ie55 flag to configure specifyin the location of the
96 ie55_lib directory created by downloading the IE5.5 headers and libs
97 from the above URL.
98
99 --Tor Lillqvist <tml@iki.fi>