INSTALL 6.73 KB
Newer Older
Owen Taylor's avatar
Owen Taylor committed
1
2
3
Prerequisites
=============

Owen Taylor's avatar
Owen Taylor committed
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
GTK+ requires the following packages:

 - The GLIB library, available at the same location as GTK+

 - The Pango library, available from:

      http://www.pango.org/download.shtml

   Pango also requires the FriBidi library, available from:

      http://imagic.weizmann.ac.il/~dov/freesw/FriBidi/

 - The TIFF, PNG, and JPEG image loading libraries. You most
   likely have these installed on your system already. If not
   these libraries are available from:

    http://www.libtiff.org/
    ftp://swrinde.nde.swri.edu/pub/png/src/
    ftp://ftp.uu.net/graphics/jpeg/

   If these libraries are not available, the corresponding 
   image loaders will simply not be built. However, this
   may cause applications using GTK+ not to function properly.
Owen Taylor's avatar
Owen Taylor committed
27

28
29
30
Simple install procedure
========================

Owen Taylor's avatar
Owen Taylor committed
31
32
  % gzip -cd gtk+-1.3.2.tar.gz | tar xvf - # unpack the sources
  % cd gtk+-1.3.2			   # change to the toplevel directory
33
34
  % ./configure				   # run the `configure' script
  % make				   # build GTK
35
  [ Become root if necessary ]
36
  % make install			   # install GTK
37
38
39
40
41
42
43

The Nitty-Gritty
================

The 'configure' script can be given a number of options to enable
and disable various features. For a complete list, type:

44
45
  ./configure --help

46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
A few of the more important ones:

*  --prefix=PREFIX         install architecture-independent files in PREFIX
                           [ Defaults to /usr/local ]

*  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                           [ Defaults to the value given to --prefix ]

*  --with-xinput=[no/gxi/xfree] support XInput [default=no]

The --with-xinput flag specifies whether to compile with support
for the XInput extension (mainly used for graphics tablets), and
which form of support to use:

  no    : no support 
  gxi   : Use generic XInput support
  xfree : Use special features in the Wacom drivers in XFree86 3.3.1
          and later.

For more information, follow the link from http://www.gtk.org

67
68
69
70
71
72
73
*  --disable-nls           do not use Native Language Support

If this flag is not specified, GTK+ will try to find
and use the gettext() set of functions to provide translations
of the strings in the standard dialogs into the
user's native language.

74
75
76
*  --enable-xim            support XIM [default=yes]

Specifying --disable-xim will disable support for entering
77
78
internationalized text using X Input Methods. This will give some
slight savings in speed and memory use and might be necessary
79
80
with older versions of X.

81
*  --with-locale=LOCALE    locale name you want to use
82
83

The --with-locale options is used to determine if your operating
84
85
system has support for the locale you will be using. If not, X's
built in locale support will be used.
86

87
88
Because of bugs in autoconf, it is necessary to specify this
option even if your LANG environment variable is correctly set.
89
90

This option does not determine which locale GTK will use at
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
runtime. That will be determined from the usual environment
variables.  If you will be using multiple locales with GTK,
specify the one for which your operating system has the worst
support for the --with-locale option.


Options can be given to the compiler and linker by setting
environment variables before running configure. A few of the more
important ones:

 CC       : The C compiler to use
 CPPFLAGS : Flags for the C preprocesser such as -I and -D
 CFLAGS   : C compiler flags

The most important use of this is to set the
optimization/debugging flags. For instance, to compile with no
debugging information at all, run configure as:

 CFLAGS=-O2 ./configure           # Bourne compatible shells (sh/bash/zsh)

or,

 setenv CFLAGS -O2 ; ./configure  # csh and variants

115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
Native-Language Support and gettext()
=====================================

To provide native-language support (NLS) GTK+ uses the
gettext() set of functions. These functions are found
in the C library on many systems, such as the Solaris
C library and the GNU C Library, version 2.

If your C library does not provide the necessary functionality,
you may wish to install the GNU gettext package. You'll
need version 0.10.35 or better. Version 0.10.35 is
available from ftp://alpha.gnu.org/pub/gnu

Generally, GTK+ will properly detect what is installed
on your system and enable or disable NLS as appropriate.
However, in rare cases, it may be necessary to disable
NLS manually to get GTK+ to compile. You can do this
by specifying the --disable-nls flag when configuring
GTK+.
134

135
136
Using an uninstalled copy of GLIB [ Unsupported ]
=================================================
Owen Taylor's avatar
Owen Taylor committed
137
138
139
140
141

You can compile GTK+ against a copy of GLIB that you have not
yet installed. To do this, give the --with-glib=DIR options
to ./configure. For instance:

Owen Taylor's avatar
Owen Taylor committed
142
 ./configure --with-glib=../glib-1.3.2
Owen Taylor's avatar
Owen Taylor committed
143
144
145
146

This, however, will not work if you built GLIB with different
source and build directories.

147
148
149
150
151
It is recommended that you install GLIB before compiling
GTK+. The --with-glib option is not regularly tested
and may not function correctly. In addition, 
inter-library dependencies won't be generated when
using --with-glib=.
Owen Taylor's avatar
Owen Taylor committed
152

153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
Installation directories
========================

The location of the installed files is determined by the --prefix
and --exec-prefix options given to configure. There are also more
detailed flags to control individual directories. However, the
use of these flags is not tested.

One particular detail to note, is that the architecture-dependent
include file glibconfig.h is installed in:

  $exec_pref/lib/glib/include/

if you have a version in $prefix/include, this is out of date
and should be deleted.

A shell script gtk-config is created during the configure
process, and installed in the bin/ directory
($exec_prefix/bin). This is used to determine the location of GTK
when building applications.  If you move GTK after installation,
it will be necessary to edit this file.

For complete details, see the file docs/gtk-config.txt
176
177


Owen Taylor's avatar
Owen Taylor committed
178
Notes for using XIM support for Japanese input
179
==============================================
180

181
* There is a bug in older versions of kinput2 that will cause GTK+
182
183
to hang when destroying a text entry. The latest versions of
kinput is available from:
184
185

  ftp://ftp.sra.co.jp/pub/x11/kinput2
Owen Taylor's avatar
Owen Taylor committed
186
187

* The locale information file for the ja_JP EUC locale
188
189
190
191
192
distributed with some recent versions of X11 specifies to use the
C library multibyte functions. Unless your C library has support
for Japanese locales, this is incorrect, and will cause problems
for GTK's internationalization.

193
(In particular, this occurs with GNU libc 2.0 in which
194
195
196
the multibyte functions always translate to and from UTF-8; but
the problem may occur for other C libraries, and other operating
systems as well.)
Owen Taylor's avatar
Owen Taylor committed
197
198
199
200
201
202
203
204
205
206
207
208

To fix this, change the line:

use_stdc_env		True

to 

use_stdc_env		False

in the file /usr/X11R6/lib/X11/locale/ja_JP/XLC_LOCALE.