]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/gtk/install.txt
Removed this file since it was only stubs and we now have the common
[wxWidgets.git] / docs / gtk / install.txt
index 5d9ebb9ed6a7dc715ed37b84e6e3b31a75aaefca..49271a473d60fbfcdc91aca033653539d207c48e 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,16 +41,42 @@ 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
 -----------------
 
 If you want to do some more serious cross-platform programming with wxWindows,
 such as for GTK and Motif, you can now build two complete libraries and use
-them concurretly. For this end, you have to create a directory for each build
+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 currently
-be installed, so you'd have to use local version of the library for that purpose.
+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.
+
 For building three versions (one GTK, one Motif and a debug version of the GTK
 source) you'd do this:
 
@@ -58,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.
@@ -83,46 +119,47 @@ 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 optimsation 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, preferebly version 1.2.10 (at least 1.2.3 is required,
+to be a stable version, preferably 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:
@@ -133,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
 
@@ -155,49 +187,46 @@ 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
+to Stefan Neis <Stefan.Neis@t-online.de> and patches to
 the wxWindows mailing list.
 
-You'll need OS/2 Warp (4.00FP#6), X-Free86/2 (3.3.3 or newer),
-GTK+ (1.2.5 or newer), emx (0.9d fix 1), flex (2.5.4), yacc (1.8),
-korn shell (5.2.13), Autoconf (2.13),  GNU file utilities (3.6),
-GNU text utilities (1.3), GNU shell utilites (1.12), m4 (1.4),
-sed (2.05), grep (2.0), Awk (3.0.3), GNU Make (3.76.1).
+In the following list, the version numbers indicate the configuration that
+was actually used by myself, newer version should cause no problems and
+even older ones are expected to work most of the time.
 
-Open an OS/2 prompt and switch to the directory above.
-First set some global environment variables we need:
-
-SET CXXFLAGS=-Zmtd -D__ST_MT_ERRNO__
-SET CFLAGS=-Zmtd -D__ST_MT_ERRNO__
-SET OSTYPE=OS2X
-SET COMSPEC=sh
+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),
+GNU shell utilites (1.12), m4 (1.4), sed (2.05), grep (2.0), Awk (3.0.3),
+GNU Make (3.75).
 
-Notice you can choose whatever you want, if you don't like OS2X.
+Preferably, you should have Posix/2 installed and C(PLUS)_INCLUDE_PATH and
+LIBRARY_PATH set up accordingly, however, wxGTK will even work without it.
+Presence of Posix/2 will be auto-detected.
 
-Now, run autoconf in the main directory and in the samples, demos
-and utils subdirectory. This will generate the OS/2 specific
-versions of the configure scripts. Now run
-    configure --with-gtk
-as described above.
+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=ash
 
-If you have pthreads library installed, but have a gtk version
-which does not yet support threading, you need to explicitly
-diable threading by using the option --disable-threads.
+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. 
 
-Note that configure assumes your flex will generate files named
-"lexyy.c", not "lex.yy.c". If you have a version which does
-generate "lex.yy.c", you need to manually change the generated
-makefile.
+Notice that the delivered configure scripts are fully OS/2 aware, so you
+can simply run
+    ash -c "configure --with-gtk"
+and make and possibly make install as described above.
 
 * Building wxGTK on SGI
---------------------------
+-----------------------
 
 Using the SGI native compilers, it is recommended that you
 also set CFLAGS and CXXFLAGS before running configure. These
@@ -215,7 +244,7 @@ untested).
 The SGI native compiler support has only been tested on Irix 6.5.
 
 * Create your configuration
------------------------------
+---------------------------
 
 Usage:
     ./configure options
@@ -224,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:
 
@@ -238,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
@@ -261,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
@@ -284,8 +317,9 @@ The following options handle the kind of library you want to build.
     --enable-no_deps        Enable compilation without creation of
                             dependency information.
 
-    --enable-permissive     Enable compilation without creation of
-                            giving erros as soon as you compile with
+    --enable-permissive     Enable compilation without checking for strict
+                            ANSI conformance.  Useful to prevent the build
+                            dying with errors as soon as you compile with
                             Solaris' ANSI-defying headers.
 
     --enable-mem_tracing    Add built-in memory tracing.
@@ -305,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
@@ -325,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.
@@ -343,7 +385,7 @@ are
 
     --disable-clipboard     Disables Clipboard.
 
-    --disable-serial        Disables object instance serialiasation.
+    --disable-serial        Disables object instance serialisation.
 
     --disable-streams       Disables the wxStream classes.
 
@@ -361,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)
@@ -377,9 +423,9 @@ make yourself some coffee, as it will take some time. On an old
 warning messages depending in your compiler.
 
 If you want to be more selective, you can change into a specific
-directiry and type "make" there.
+directory and type "make" there.
 
-Then you may install the library and it's header files under
+Then you may install the library and its header files under
 /usr/local/include/wx and /usr/local/lib respectively. You
 have to log in as root (i.e. run "su" and enter the root
 password) and type
@@ -403,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
@@ -414,13 +460,19 @@ 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
 
 This is certain to become the standard way unless we decide
-to sitch to tmake.
+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