Building wxPython 3.0
=====================

This file describes how I build wxWidgets and wxPython while doing
development and testing, and is meant to help other people that want
to do the same thing.  Those readers who have attempted this in
previous releases of the software will probably notice that this file
is *much* smaller than it was before.  Much thanks for this goes to
Kevin Ollivier who wrote the initial version of the new build scripts
and then guilted me into starting to use and maintain them myself.

Building of both wxWidgets and wxPython is now handled by the
wxPython/build-wxpython.py script in the source tree.  It takes care
of all the nasty and confusing details that used to be documented in
this file.  Pretty much all you need to worry about now is having the
build tools and dependent libraries installed on your system and
specifying where to install the results, if other than the standard
location.

If you want to make changes to any of the ``*.i`` files, (SWIG
interface definition files,) then you will need to use a special
patched version of SWIG.  Get the sources for version 1.3.29, and then
apply the patches in wxPython/SWIG and then build SWIG like normal.
See the README.txt in the wxPython/SWIG dir for details about each
patch.  You can also get a pre-patched version of the SWIG sources
plus a Windows binary at::

    http://wxpython.kosoftworks.com/tools/

If you install this build of SWIG to a location that is not on the
PATH (so it doesn't interfere with an existing SWIG install for
example) then you can set a SWIG environment variable to the full path
of this new binary to tell the build script which SWIG to use.


Prerequisites
-------------

In order to build wxWidgets and wxPython you will need to have already
installed any libraries that they depend upon.  For example, on Linux
you will likely need developer packages for gtk2, gconf, gstreamer,
gstreamer-plugins, png, zlib, jpeg, tiff, etc.  Also, don't forget
about Python's development packge. Package names and procedures for
installing them will vary by distribution.  For Debian-based distros
you may also need to install the build tools if they are not already
there, you can install the build-essentials package to do that.  Keep
an eye on the output from the start of the wxWdigets portion of the
build to see what other packages may be needed.


The build script
----------------

To build wxPython, simply run the build script something like this::

    cd wxPython-src-3.0.0.0/wxPython
    python2.6 build-wxpython.py --build_dir=../bld

Be sure to use the same verison of Python to run the script that you
would like to use the wxPython binaries with.  If you would also like
to install wxWidgets and wxPython then simply add the --install flag.

You should also check the --help output of the build-wxpython.py
script to see what other options are available.  The current build
options as of this writing are::

    $ python2.6 build-wxpython.py --help
    Usage: build-wxpython.py [options]
    
    Options:
      --version             show program's version number and exit
      -h, --help            show this help message and exit
      --build_dir=BUILD_DIR
                            Directory to store wx build files. (Not used on
                            Windows)
      --clean               Clean files from build directories.  Default is all
                            build files. Specify 'wx' to clean just the wx build,
                            'py' for just the wxPython build, and 'pyext' for just
                            the built extension modules.
      --debug               Build wxPython with debug symbols
      --extra_make=EXTRA_MAKE
                            Extra args to pass on [n]make's command line.
      --extra_setup=EXTRA_SETUP
                            Extra args to pass on setup.py's command line.
      --force_config        Run configure when building even if the script
                            determines it's not necessary.
      --install             Install the built wxPython into installdir or standard
                            location
      --installdir=INSTALLDIR
                            Directory to install wxWidgets to.
      --mac_framework       Build wxWidgets as a Mac framework.
      --mac_lipo            EXPERIMENTAL: Create a universal binary by merging a
                            PPC and Intel build together.
      --no_config           Turn off configure step on autoconf builds
      --osx_cocoa           Build the OS X Cocoa port on Mac (experimental)
      --prefix=PREFIX       Prefix value to pass to the wx build.
      --reswig              Allow SWIG to regenerate the wrappers
      --unicode             Build wxPython with unicode support (always on for
                            wx3.0)
      --wxpy_installdir=WXPY_INSTALLDIR
                            Directory to install the wxPython binaries.

Have fun.
