3 I used SWIG (http://www.swig.org) to create the source code for the
 
   4 extension module.  This enabled me to only have to deal with a small
 
   5 amount of code and only have to bother with the exceptional issues.
 
   6 SWIG takes care of the rest and generates all the repetative code for
 
   7 me.  You don't need SWIG to build the extension module as all the
 
   8 generated C++ code is included under the src directory.
 
  10 I added a few minor features to SWIG to control some of the code
 
  11 generation.  If you want to play around with this you will need to get
 
  12 a recent version of SWIG from their CVS or from a daily build.  See
 
  13 http://www.swig.org/ for details.
 
  15 wxPython is organized as a Python package.  This means that the
 
  16 directory containing the results of the build process should be a
 
  17 subdirectory of a directory on the PYTHONPATH.  (And preferably should
 
  18 be named wxPython.)  You can control where the build process will dump
 
  19 wxPython by setting the TARGETDIR variable for the build utility, (see
 
  24 1. Build and install wxWindows as described in its BuildCVS.txt or
 
  27 1a. Building wxWindows on Unix/Linux/Etc.
 
  29    For *nix systems I run configure with these flags:
 
  40                 --disable-std_iostreams
 
  43    You can use whatever flags you want, but these work for me.  If you
 
  44    want debug libraries, then you should add the "--enable-debug
 
  45    --enable-mem_tracing" flags.  I reccommend creating an empty build
 
  46    directory, and then running make and configure from there.  This
 
  47    makes it easy to experiment with different configure options
 
  48    without losing old builds.
 
  50    Be sure to run "make install" to install the wxWindows headers and
 
  51    shared library.  You can check where the wxPython build will expect
 
  52    to find them by running "wx-config --cflags" and "wx-config --libs"
 
  55 1b. Building wxWindows on Win32.
 
  57    For Win32 systems I use Visual C++ 6.0, but 5.0 should work.  The
 
  58    wxPython build utility currently does not support any other win32
 
  59    compilers.  Be sure to copy include/wx/msw/setup0.h to
 
  60    include/wx/msw/setup.h and edit it for the options you want.  At a
 
  61    minimum you should set the following:
 
  64            wxUSE_GLOBAL_MEMORY_OPERATORS    0
 
  70            wxUSE_DIALUP_MANAGER             0
 
  72            wxUSE_DOC_VIEW_ARCHITECTURE      0
 
  73            wxUSE_MDI_ARCHITECTURE           0
 
  75            wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 0
 
  78    There are probably other flags that can be disabled to remove
 
  79    things not being used in wxPython, but I havn't investigated all
 
  80    the potential configurations yet.
 
  82    I find it easiest to build wxWindows using the makefiles, that way
 
  83    I don't have to worry about what the IDE might be doing behind the
 
  84    scenes that might screw things up.  Simply go to the src/msw
 
  87    nmake -f makefile.vc CRTFLAG=/MD EXTRAFLAGS=-D__NO_VC_CRTDBG__ dll pch
 
  89    If you want to make a release build, add FINAL=1 to the nmake
 
  90    command, as well as to build.local for wxPython, (see below.)
 
  93 2. For the win32 platform you should be sure to set an environment
 
  94    variable named WXWIN to be the path to the top of the wxWindows
 
  98 3. If you are working from a copy of the code retrieved from CVS, then
 
  99    you will find wxPython in $WXWIN/wxPython.  If you are working from
 
 100    the tar.gz or .zip files then you will probably want to unpack
 
 101    wxPython in the $WXWIN directory and rename the new directory to
 
 102    wxPython (or use a symlink.)  If you want to keep it in a separate
 
 103    directory then you can change where the build.py tool expects to
 
 104    find it by creating a file named build.local (see step 7 for more
 
 105    examples about build.local,) containing something like this:
 
 107    WXPSRCDIR = "~/MyStuff/wxPython-2.1.15/src"
 
 109    If your wxPython sources are not under $WXWIN then you'll need to
 
 110    adjust the remainder of these instructions accordingly.
 
 113 4. At this point you may want to make an alias, symlink, script,
 
 114    batch file, or whatever on the PATH that invokes
 
 115    $WXWIN/wxPython/distrib/build.py to help simplify matters somewhat.
 
 116    For example, on my win32 system I have a file named build.bat in a
 
 117    directory on the PATH that contains:
 
 119    python %WXWIN%/wxPython/distrib/build.py %1 %2 %3 %4 %5 %6
 
 122 5. Change into the $(WXWIN)/wxPython/src directory.
 
 125 6. If you don't use SWIG, or don't have a new enough version
 
 126    installed, you may have to update the timestamps of the files it
 
 127    generates so the make utility won't think they are out of date and
 
 128    try to run SWIG to update them.  The standard touch utility can do
 
 131       touch gtk/*.cpp gtk/*.py
 
 133       touch msw\*.cpp msw\*.py
 
 136 7. Type "build -b" to build wxPython and "build -i" to install it.
 
 138    The build.py script actually generates a Makefile based on what it
 
 139    finds on your system and information found in the build.cfg file.
 
 140    If you have troubles building or you want it built or installed in
 
 141    a different way, take a look at the doc-string in build.py.  You may
 
 142    be able to override configuration options in a file named
 
 143    build.local.  For example, you can set a new TARGETDIR (the
 
 144    installation directory) just by creating a file named build.local
 
 145    in your wxPython source directory and assign a value to it, like
 
 148    TARGETDIR = "/usr/local/lib/python1.5/site-packages/wxPython"
 
 150    The build.local file is executed as Python code so you can do very
 
 151    creative things there if you need to.
 
 154 8. To build and install the add-on modules, change to the appropriate
 
 155    directory under $WXWIN/wxPython/contrib and run the build utility
 
 159 9. Change to the $WXWIN/wxPython/demo directory.
 
 162 10. Try executing the demo program.  For example:
 
 166     To run it without requiring a console on win32, you can use the
 
 167     pythonw.exe version of Python either from the command line or from