]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/gtk/install.txt
Use library-specific description in their version resources for MSW DLLs.
[wxWidgets.git] / docs / gtk / install.txt
index 94071f15f8d08a6396030214bcd365caebf64497..71a6600710e8d99188468f8913bc116440215502 100644 (file)
@@ -1,5 +1,5 @@
-wxWidgets 2.5 for GTK+ installation
------------------------------------
+wxWidgets for GTK+ installation
+-------------------------------
 
 IMPORTANT NOTE:
 
@@ -11,7 +11,7 @@ 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.6.0, gcc 2.95.4, Redhat 6.2
+  example: wxGTK 2.8.0, gcc 3.4.5, Fedora Core 4
 
 * The simplest case
 -------------------
@@ -26,55 +26,19 @@ install instructions just do (in the base dir):
 > 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
-will not be available to other users.)
+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
-
-Note that by default, GTK+ 2 is used. GTK+ 1 can be specified
-with --disable-gtk2.
-
-* The Unicode 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. After installing a recent version of GTK+
-2.0, do this
-
-> mkdir buildgtk
-> cd buildgtk
-> ../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
 -----------------
@@ -84,45 +48,46 @@ 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 with 'make install', 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
 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
+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
@@ -140,9 +105,6 @@ your program - typically you might have the __WXDEBUG__ option set for the
 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
 ----------------------
 
@@ -150,28 +112,13 @@ Now create your super-application myfoo.cpp and compile anywhere with
 
 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).
+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:
 
@@ -210,9 +157,8 @@ was actually used by myself, newer version should cause no problems and
 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).
 
@@ -221,19 +167,19 @@ LIBRARY_PATH set up accordingly, however, wxGTK will even work without it.
 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
@@ -254,6 +200,20 @@ untested).
 
 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
 ---------------------------
 
@@ -261,7 +221,7 @@ Usage:
     ./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
@@ -286,11 +246,11 @@ are enabled by default.
 
 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.
 
@@ -313,8 +273,6 @@ The following options handle the kind of library you want to build.
 
     --enable-unicode        Enable Unicode support.
 
-    --enable-gtk2           Compiling using GTK+ 2 (the default).
-
     --enable-profile        Add profiling info to the object
                             files. Currently broken, I think.
 
@@ -372,7 +330,7 @@ are
     --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.
 
@@ -469,20 +427,17 @@ g++ myfoo.cpp `wx-config --cxxflags --libs` -o myfoo
 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