-*-text-*- BUILDING SWIG BINDINGS FOR SVN Step 1: Build & install the proper version of SWIG (which is currently swig 1.3.16). * Go to http://www.swig.org, download the sourceball, unpack. * In the SWIG-X.X.X directory, run ./configure. If you plan to build the python bindings, and have a system with more than one version of python installed, you may need to pass --with-python=/path/to/correct/python/binary to the configure script. You certainly don't want to use any version of python older than 2.0. * run 'make && make install' * To verify you have the goodz installed, check that these things were created, assuming your $PREFIX was /usr/local/lib: - /usr/local/lib/swig1.3/*.i - /usr/local/lib/libswig*.so - /usr/local/bin/swig In particular, you want to make sure that libswig_py.so was built and installed, since the python bindings are the most-used ones at the moment. Step 2: Build and Install Subversion. See Subversion's own INSTALL file for details. Make sure that Subversion's ./configure script sees your installed SWIG! It tries to detect SWIG near the very end of its output. If Subversion's ./configure finds a SWIG that it's happy with, then it will build a special glue library to link svn to the swig-python bindings: libsvn_swig_py.so (as well as any other languages). SPECIFIC LANGUAGE BINDINGS * Python 1. On Unix systems, run 'make swig-py-ext' from the top of the Subversion source tree. This will invoke SWIG on the *.i files, resulting in a collection of .c source files. It will then compile those .c files into Python libraries. On Windows, ??? 2. On Unix systems, run 'make install-swig-py-ext' (as root, typically) from the top of the Subversion source tree. This will copy your new Python libraries into the appropriate system location. Note: If you don't have access to install to python's site-packages directory, you can have the python modules install to your home directory. You can do this by running 'make install-swig-py-ext DISTUTIL_PARAM=--home=~'. Note: If you want to install to an alterante prefix (usually only if you are building packages), you can supply the prefix here. An example of doing this for building rpms looks like 'make install-swig-py-ext DISTUTIL_PARAM=--prefix=$RPM_BUILD_ROOT/usr'. On Windows, ??? 3. Verify that an 'svn' package has been installed correctly. You can do this by running python via 'python -c "from svn import client"'. 4. Try some demo programs. From the top of your svn working copy, cd tools/examples/, and try running 'svnlook.py'. * Java? * Perl? TROUBLESHOOTING FAQ * "When I 'make swig-py-ext', I see this error: ld: can't locate file for: -lsvn_swig_py-1" This means that step 2 (above) failed. Subversion's ./configure script probably didn't find a suitable SWIG installation, and thus never built/installed libsvn_swig_py.so.