]> Pileus Git - ~andy/gtk/blob - README.win32
Updates.
[~andy/gtk] / README.win32
1 The Win32 backend in GTK+ is not as stable or correct as the X11
2 one. 
3
4 For prebuilt runtime and developer packages see
5 http://www.gimp.org/win32/downloads.html .
6
7 There is also a gtk-1-3-win32-production branch of GTK+ that was
8 branched off from before the addition of the no-flicker and other
9 functionality that was new in GTK+ 2.0.0. The vesion number used for
10 that branch is 1.3.0. It corresponds most closely to GTK 1.2.7 on
11 Unix. For new code, you shouldn't be using that.
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 can be hard 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
24
25 Then, in theory, you can just say "make", like on Unix. In reality,
26 there are a few hickups that require manual intervention, and it's
27 best to run make separately in each subdirectory. At least for me,
28 when libtool creates an .exe file, it puts the real .exe in the .libs
29 directory, and leaves a wrapper .exe in the work directory. For some
30 reason that wrapper doesn't work for me, it doesn't do anything. So, I
31 always do a "cp .libs/*.exe ." after running a make that has produced
32 some exes.
33
34 Another issue is with the gdk-pixbuf.loaders file. It's probably best
35 to do a "make install" in the gdk-pixbuf directory, and let that set
36 up a mostly correct gdk-pixbuf.loaders in the target directory. Then
37 copy that back to the source directory. It's needed in gtk/stock-icons
38 where make runs gdk-pixbuf-csource.
39
40 Etc, you get the idea. It can be a bit of a pain.
41
42 2) Use the Microsoft compiler, cl and Make, nmake. Say nmake -f
43 makefile.msc in gdk and gtk. Be prepared to manually edit various
44 makefile.msc files, and the makefile snippets in build/win32.
45
46 Alternative 1 also generates Microsoft import libraries (.lib), if you
47 have lib.exe available. It might also work for cross-compilation from
48 Unix.
49
50 Note that I use method 1 myself. Hans Breuer has been taking care of
51 the MSVC makefiles. At times, we disagree a bit about various issues,
52 and for instance the makefile.msc files will not produce identically
53 named DLLs and import libraries as the "autoconfiscated" makefiles and
54 libtool do. If this bothers you, you will have to fix the makefiles.
55
56 Using GTK+ on Win32
57 ===================
58
59 To use GTK+ on Win32, you also need either one of the above mentioned
60 compilers. Other compilers might work, but don't count on it. Look for
61 prebuilt developer packages (DLLs, import libraries, headers) on the
62 above website.
63
64 Multi-threaded use of GTK+ on Win32
65 ===================================
66
67 Multi-threaded GTK+ programs might work on Windows in special simple
68 cases, but not in general. Sorry. If you have all GTK+ and GDK calls
69 in the same thread, it might work. Otherwise, probably not at
70 all. Possible ways to fix this are being investigated.
71
72 Wintab
73 ======
74
75 The tablet support uses the Wintab API. The Wintab development kit can
76 be downloaded from http://www.pointing.com. Pass the --with-wintab
77 flag to configure if you use that. If you use nmake and you don't care
78 for Wintab, undefine HAVE_WINTAB in config.h.win32 and remove
79 references to the wntab32x library from the makefile before building.
80
81 ActiveIMM
82 =========
83
84 If you want to build a GTK+ that supports ActiveIMM (the Input Method
85 Manager for non-EastAsia locales that can be used on Win9x/NT4), you
86 need the dimm.h header file. That is somewhat difficult to find, but
87 http://msdn.microsoft.com/downloads/samples/internet/wizard/ seems to
88 be a good place to look nowadays. If you use "autoconfiscated" build,
89 pass the --with-ie55 flag to configure specifyin the location of the
90 ie55_lib directory created by downloading the IE5.5 headers and libs
91 from the above URL.
92
93 --Tor Lillqvist <tml@iki.fi>