-wxWidgets 2.5 for GTK installation
-----------------------------------
+wxWidgets for GTK+ installation
+-------------------------------
IMPORTANT NOTE:
When sending bug reports tell us what version of wxWidgets you are
using (including the beta) and what compiler on what system. One
- example: wxGTK 2.4.0, gcc 2.95.4, Redhat 6.2
+ example: wxGTK 2.8.0, gcc 3.4.5, Fedora Core 4
* The simplest case
-------------------
If you compile wxWidgets on Linux for the first time and don't like to read
install instructions just do (in the base dir):
-> ./configure --with-gtk
+> mkdir buildgtk
+> cd buildgtk
+> ../configure --with-gtk
> make
> su <type root password>
> make install
> ldconfig
-> exit
+[if you get "ldconfig: command not found", try using "/sbin/ldconfig"]
-Afterwards you can continue with
-
-> make
-> su <type root password>
-> make install
-> ldconfig
-> exit
+If you don't do the 'make install' part, you can still use the libraries from
+the buildgtk directory, but they may not be available to other users.
If you want to remove wxWidgets on Unix you can do this:
> su <type root password>
> make uninstall
> ldconfig
-> exit
-
-* The GTK+ 2 case
------------------
-
-wxGTK has support for the new version 2.0.X of GTK+ since version 2.4.0.
-This means that wxGTK apps can now make use Unicode as the underlying encoding
-for all text operations. This is a very fundamental change and will need time
-to stabilize, so be careful. Anyways, after installing a recent version of GTK+
-2.0, do this
-
-> ./configure --with-gtk --enable-gtk2 --enable-unicode
-> make
-> su <type root password>
-> make install
-> ldconfig
-> exit
-
-If you are adventurous, you can install the FcConfig 2.0 package
-and the Pango library from CVS (or a very recent snapshot from
-the upcoming 1.2 series) and set do "export GDK_USE_XFT=1" so
-that the display as well as the printing code will use render
-using the same FreeType code even for Far Eastern encodings.
-Expect problems.
+Note that by default, GTK+ 2.X is used. GTK+ 1.2 can be specified
+with --with-gtk=1.
* The expert case
-----------------
If you want to do some more serious cross-platform programming with wxWidgets,
-such as for GTK and Motif, you can now build two complete libraries and use
-them concurrently. For this end, you have to create a directory for each build
+such as for GTK+ and Motif, you can now build two complete libraries and use
+them concurrently. To do this, create a separate directory for each build
of wxWidgets - you may also want to create different versions of wxWidgets
and test them concurrently. Most typically, this would be a version configured
-with --enable-debug and one without. Note, that only one build can
-currently be installed, so you'd have to use local version of the library for
-that purpose.
+with --enable-debug and one without.
-For building three versions (one GTK, one Motif and a debug version of the GTK
+For building three versions (one GTK+, one Motif and a debug version of the GTK
source) you'd do this:
-md buildmotif
+mkdir buildmotif
cd buildmotif
../configure --with-motif
make
cd ..
-md buildgtk
+mkdir buildgtk
cd buildgtk
../configure --with-gtk
make
cd ..
-md buildgtkd
+mkdir buildgtkd
cd buildgtkd
../configure --with-gtk --enable-debug
make
cd ..
+Note that you can install all those libraries concurrently, you just need to
+pass the appropriate flags when using them.
+
* The simplest errors
---------------------
For any configure errors: please look at config.log file which was generated
during configure run, it usually contains some useful information.
-configure reports, that you don't have GTK 1.2 installed although you are
+configure reports, that you don't have GTK+ 1.2/2.0 installed although you are
very sure you have. Well, you have installed it, but you also have another
-version of the GTK installed, which you may need to remove including other
-versions of glib (and its headers). Or maybe you installed it in non default
+version of the GTK+ installed, which you may need to remove including other
+versions of glib (and its headers). Or maybe you installed it in a non-default
location and configure can't find it there, so please check that your PATH
-variable includes the path to the correct gtk-config. Also check that your
-LD_LIBRARY_PATH or equivalent variable contains the path to GTK+ libraries if
-they were installed in a non default location.
+variable includes the path to the correct gtk-config/pkg-config. Also check
+that your LD_LIBRARY_PATH or equivalent variable contains the path to GTK+
+libraries if they were installed in a non-default location.
You get errors from make: please use GNU make instead of the native make
program. Currently wxWidgets can be built only with GNU make, BSD make and
library but not for your program - or due to using a compiler with optimisation
bugs.
-Linker complains about missing PROIO_yy_flex_alloc and similar symbols: you
-probably have an old version of flex, 2.5.4 is recommended.
-
* The simplest program
----------------------
g++ myfoo.cpp `wx-config --libs --cxxflags` -o myfoo
-* General
----------
-
-The Unix variants of wxWidgets use GNU configure. If you have problems with
-your make use GNU make instead.
-
-If you have general problems with installation, read my homepage at
-
- http://wesley.informatik.uni-freiburg.de/~wxxt/
-
-for newest information. If you still don't have any success, please send a bug
-report to one of our mailing lists (see my homepage) INCLUDING A DESCRIPTION OF
-YOUR SYSTEM AND YOUR PROBLEM, SUCH AS YOUR VERSION OF GTK, WXGTK, WHAT
-DISTRIBUTION YOU USE AND WHAT ERROR WAS REPORTED. I know this has no effect,
-but I tried...
-
* GUI libraries
---------------
-wxWidgets/GTK requires the GTK+ library to be installed on your system. It has
-to be a stable version, preferably version 1.2.10 (at least 1.2.3 is required,
-1.2.7 is strongly recommended).
+wxWidgets/GTK+ requires the GTK+ library to be installed on your system. It has
+to be a stable version, preferably GTK+ 2.x.y, where x is an even number.
+GTK+ version 1.2 is highly discouraged, but if you decide to still use it,
+please use version 1.2.10 (at least 1.2.3 is required, 1.2.7 is strongly recommended).
-You can get the newest version of the GTK+ from the GTK homepage at:
+You can get the newest version of the GTK+ from the GTK+ homepage at:
http://www.gtk.org
even older ones are expected to work most of the time.
You'll need OS/2 Warp (4.51) or eCS(1.0), X-Free86/2 (3.3.6 or newer),
-GTK+ (1.2.5 or newer), emx (0.9d fix 4), flex (2.5.4), yacc (1.8) or
-bison (1.25), a Unix like shell (pdksh-5.2.14 or ash), Autoconf (2.57),
-GNU file utilities (3.13), GNU text utilities (1.19),
+GTK+ (1.2.5 or newer), emx (0.9d fix 4), a Unix like shell (pdksh-5.2.14 or
+ash), Autoconf (2.57), GNU file utilities (3.13), GNU text utilities (1.19),
GNU shell utilites (1.12), m4 (1.4), sed (2.05), grep (2.0), Awk (3.0.3),
GNU Make (3.75).
Presence of Posix/2 will be auto-detected.
Open an OS/2 prompt and switch to the directory above.
-Set MAKESHELL (and depending on your installation also INSTALL, for me
-it tends to try to use the system's tcpip\pcomos\install.exe which causes
-problems...) to a Unix like shell, e.g.
+Set MAKESHELL or MAKE_SHELL (which one is needed depends on the version of
+make) to a Unix like shell, e.g.
SET MAKESHELL=ash
-
-Be warned that depending on the precise version of your make, the
-variable that needs to be set might be MAKE_SHELL instead of MAKESHELL.
If you have a really deficient version of GNU make, it might even be
necessary to set SHELL or even COMSPEC to a unix like shell as well.
+Depending on your installation you might want to also set INSTALL, for me
+it tends to try to use the system's tcpip\pcomos\install.exe which causes
+problems, e.g.
+SET INSTALL=<path_to_src_directory>/install-sh -c
Notice that the delivered configure scripts are fully OS/2 aware, so you
can simply run
- ash -c "configure --with-gtk"
+ ash -c "configure --with-gtk=1"
and make and possibly make install as described above.
* Building wxGTK on SGI
The SGI native compiler support has only been tested on Irix 6.5.
+* Building wxGTK on Cygwin
+--------------------------
+
+The normal build instructions should work fine on Cygwin. The one difference
+with Cygwin is that when using the "--enable-shared" configure option (which
+is the default) the API is exported explicitly using __declspec(dllexport)
+rather than all global symbols being available.
+
+This shouldn't make a difference using the library and should be a little
+more efficient. However if an export attribute has been missed somewhere you
+will see linking errors. If this happens then you can work around the
+problem by setting LDFLAGS=-Wl,--export-all-symbols. Please also let us know
+about it on the wx-dev mailing list.
+
* Create your configuration
---------------------------
./configure options
If you want to use system's C and C++ compiler,
-set environment variables CC and CCC as
+set environment variables CC and CXX as
% setenv CC cc
% setenv CXX CC
Normally, you won't have to choose a toolkit, because when
you download wxGTK, it will default to --with-gtk etc. But
-if you use all of our CVS repository you have to choose a
+if you use all of our SVN repository you have to choose a
toolkit. You must do this by running configure with either of:
- --with-gtk Use the GIMP ToolKit (GTK). Default.
-
+ --with-gtk=2 Use the GTK+ 2.0. Default.
+ --with-gtk=1 Use the GTK+ 1.2.
--with-motif Use either Motif or Lesstif
Configure will look for both.
such as Sun with gcc 2.8.X which
would otherwise produce segvs.
+ --enable-unicode Enable Unicode support.
+
--enable-profile Add profiling info to the object
files. Currently broken, I think.
--with-odbc Enables ODBC code. This is disabled
by default because iODBC is under the
L-GPL license which is less liberal than
- wxWidgets license.
+ wxWindows licence.
--without-libpng Disables PNG image format code.
Using this way, a make file for the minimal sample would look
like this
-CC = gcc
+CXX = g++
minimal: minimal.o
- $(CC) -o minimal minimal.o `wx-config --libs`
+ $(CXX) -o minimal minimal.o `wx-config --libs`
-minimal.o: minimal.cpp mondrian.xpm
- $(CC) `wx-config --cxxflags` -c minimal.cpp -o minimal.o
+minimal.o: minimal.cpp
+ $(CXX) `wx-config --cxxflags` -c minimal.cpp -o minimal.o
clean:
rm -f *.o minimal
-This is certain to become the standard way unless we decide
-to stick to tmake.
-
If your application uses only some of wxWidgets libraries, you can
specify required libraries when running wx-config. For example,
`wx-config --libs=html,core` will only output link command to link