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.
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.
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.