]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/gtk/install.txt
Minor tweak
[wxWidgets.git] / docs / gtk / install.txt
index ce6b01c77a8c1ea627770f2a1ca28f259091b502..487ce0bdabf220f5df54e73409e692eb65e1c61d 100644 (file)
@@ -1,10 +1,20 @@
+wxWindows 2.5 for GTK installation
+----------------------------------
 
-  !!! When sending bug reports tell us what version of wxWindows you are
-      using (including the beta) and what compiler on what system. One
-      example: wxGTK 2.3.0, egcs 1.1.1, Redhat 6.2 !!!
+IMPORTANT NOTE:
 
-* The most simple case
------------------------
+  If you experience problems installing, please re-read these
+  instructions and other related files (todo.txt, bugs.txt and
+  osname.txt for your platform if it exists) carefully before
+  mailing wxwin-users or the author. Preferably, try to fix the
+  problem first and then send a patch to the author.
+
+  When sending bug reports tell us what version of wxWindows 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
+
+* The simplest case
+-------------------
 
 If you compile wxWindows on Linux for the first time and don't like to read
 install instructions just do (in the base dir):
@@ -31,6 +41,30 @@ If you want to remove wxWindows on Unix you can do this:
 > 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.
+
 * The expert case
 -----------------
 
@@ -39,7 +73,7 @@ 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
 of wxWindows - you may also want to create different versions of wxWindows
 and test them concurrently. Most typically, this would be a version configured
-with --enable-debug_flag and one without. Note, that only one build can
+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.
 
@@ -60,12 +94,12 @@ cd ..
 
 md buildgtkd
 cd buildgtkd
-../configure --with-gtk --enable-debug_flag
+../configure --with-gtk --enable-debug
 make
 cd ..
 
-* The most simple errors
-------------------------
+* 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.
@@ -85,43 +119,44 @@ Solaris make. Other versions might work or not (any which don't have VPATH
 support definitely won't).
 
 You get errors during compilation: The reason is that you probably have a
-broken compiler, which includes a lot of old gcc versions. In particular, if
-you use gcc 2.8 you have to disable optimisation as the compiler will give up
-with an internal compiler error.
+broken compiler.  GCC 2.8 and earlier versions and egcs are likely to cause
+problems due to incomplete support for C++ and optimisation bugs.  Best to use
+GCC 2.95 or later.
 
 You get immediate segfault when starting any sample or application: This is
 either due to having compiled the library with different flags or options than
 your program - typically you might have the __WXDEBUG__ option set for the
-library but not for your program - or due to using a broken compiler (and its
-optimisation) such as gcc 2.8.
+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 most simple program
--------------------------
+* The simplest program
+----------------------
 
-Now create your super-application myfoo.app and compile anywhere with
+Now create your super-application myfoo.cpp and compile anywhere with
 
-gcc myfoo.cpp `wx-config --libs --cflags` -o myfoo
+g++ myfoo.cpp `wx-config --libs --cxxflags` -o myfoo
 
 * General
------------------------
+---------
 
-The Unix variants of wxWindows use GNU configure. If you have problems with your
-make use GNU make instead.
+The Unix variants of wxWindows 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
+  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...
+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
------------------------
+---------------
 
 wxWindows/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,
@@ -135,18 +170,13 @@ We also mirror GTK+ at my ftp site. You'll find information about downloading
 at my homepage.
 
 * Additional libraries
------------------------
-
-wxWindows/Gtk requires a thread library and X libraries known to work with threads.
-This is the case on all commercial Unix-Variants and all Linux-Versions that are
-based on glibc 2 except RedHat 5.0 which is broken in many aspects. As of writing
-this, these Linux distributions have correct glibc 2 support:
+----------------------
 
- - RedHat 5.1
- - Debian 2.0
- - Stampede
- - DLD 6.0
- - SuSE 6.0
+wxWindows/Gtk requires a thread library and X libraries known to work with
+threads.  This is the case on all commercial Unix-Variants and all
+Linux-Versions that are based on glibc 2 except RedHat 5.0 which is broken in
+many aspects. As of writing this, virtually all Linux distributions have
+correct glibc 2 support.
 
 You can disable thread support by running
 
@@ -157,11 +187,8 @@ make install
 ldconfig
 exit
 
-NB: DO NOT COMPILE WXGTK WITH GCC 2.7 AND THREADS, SINCE ALL PROGRAMS WILL CRASH UPON
-START-UP! Just always use egcs and be happy.
-
 * Building wxGTK on OS/2
---------------------------
+------------------------
 
 Please send comments and question about the OS/2 installation
 to Andrea Venturoli <a.ventu@flashnet.it> and patches to
@@ -199,7 +226,7 @@ generate "lex.yy.c", you need to manually change the generated
 makefile.
 
 * Building wxGTK on SGI
---------------------------
+-----------------------
 
 Using the SGI native compilers, it is recommended that you
 also set CFLAGS and CXXFLAGS before running configure. These
@@ -217,7 +244,7 @@ untested).
 The SGI native compiler support has only been tested on Irix 6.5.
 
 * Create your configuration
------------------------------
+---------------------------
 
 Usage:
     ./configure options
@@ -226,8 +253,8 @@ If you want to use system's C and C++ compiler,
 set environment variables CC and CCC as
 
     % setenv CC cc
-    % setenv CCC CC
-    % ./configure options
+    % setenv CXX CC
+    % ./configure [options]
 
 to see all the options please use:
 
@@ -240,7 +267,7 @@ and Motif) simultaneously.
 
 
 * General options
--------------------
+-----------------
 
 Given below are the commands to change the default behaviour,
 i.e. if it says "--disable-threads" it means that threads
@@ -263,6 +290,10 @@ The following options handle the kind of library you want to build.
     --disable-shared        Do not create shared libraries, but
                             build static libraries instead.
 
+    --enable-monolithic     Build wxWindows as single library instead
+                            of as several smaller libraries (which is
+                            the default since wxWindows 2.5.0).
+
     --disable-optimise      Do not optimise the code. Can
                             sometimes be useful for debugging
                             and is required on some architectures
@@ -308,8 +339,14 @@ The following options handle the kind of library you want to build.
                             must be compiled with the same debug
                             options.
 
+    --enable-debug          Same as --enable-debug_info and
+                            --enable-debug_flag together. Unless you have
+                            some very specific needs, you should use this
+                            option instead of --enable-debug_info/flag ones
+                            separately.
+
 * Feature Options
--------------------
+-----------------
 
 When producing an executable that is linked statically with wxGTK
 you'll be surprised at its immense size. This can sometimes be
@@ -328,6 +365,8 @@ are
 
     --without-libtiff       Disables TIFF image format code.
 
+    --without-expat         Disable XML classes based on Expat parser.
+
     --disable-pnm           Disables PNM image format code.
 
     --disable-gif           Disables GIF image format code.
@@ -364,8 +403,12 @@ Apart from disabling certain features you can very often "strip"
 the program of its debugging information resulting in a significant
 reduction in size.
 
+Please see the output of "./configure --help" for comprehensive list
+of all configurable options.
+
+
 * Compiling
--------------
+-----------
 
 The following must be done in the base directory (e.g. ~/wxGTK
 or ~/wxWin or whatever)
@@ -406,7 +449,7 @@ in the various directories will do the work for you.
 1) The first way uses the installed libraries and header files
 automatically using wx-config
 
-gcc myfoo.cpp `wx-config --cflags --libs` -o myfoo
+g++ myfoo.cpp `wx-config --cxxflags --libs` -o myfoo
 
 Using this way, a make file for the minimal sample would look
 like this
@@ -417,7 +460,7 @@ minimal: minimal.o
        $(CC) -o minimal minimal.o `wx-config --libs`
 
 minimal.o: minimal.cpp mondrian.xpm
-       $(CC) `wx-config --cflags` -c minimal.cpp -o minimal.o
+       $(CC) `wx-config --cxxflags` -c minimal.cpp -o minimal.o
 
 clean:
        rm -f *.o minimal
@@ -425,6 +468,12 @@ clean:
 This is certain to become the standard way unless we decide
 to stick to tmake.
 
+If your application uses only some of wxWindows libraries, you can
+specify required libraries when running wx-config. For example,
+`wx-config --libs=html,core` will only output link command to link
+with libraries required by core GUI classes and wxHTML classes. See
+the manual for more information on the libraries.
+
 2) The other way creates a project within the source code
 directories of wxWindows. For this endeavour, you'll need
 GNU autoconf version 2.14 and add an entry to your Makefile.in