| SWIG (Simplified Wrapper and Interface Generator) |
| |
| Version: 1.3.6 (July 9, 2001) |
| |
| $Header$ |
| |
| Tagline: SWIG is a compiler that integrates C and C++ with |
| languages including Perl, Python, Tcl, Guile, Mzscheme, |
| Java and Ruby. |
| |
| SWIG reads annotated C/C++ header files and creates wrapper code (glue |
| code) in order to make the corresponding C/C++ libraries available to |
| the listed languages, or to extend C/C++ programs with a scripting |
| language. |
| |
| This distribution represents the new stable release of SWIG, aiming to |
| replace versions 1.1p5 and 1.1-883. The guilty parties working on this |
| are: |
| |
| Dave Beazley (beazley@cs.uchicago.edu) (SWIG core) |
| Loic Dachary (loic@ceic.com) (Perl5) |
| William Fulton (wfulton1@motorola.com) (Java) |
| Thien-Thi Nguyen (ttn@glug.org) (Testing/Misc) |
| Masaki Fukushima (fukusima@goto.info.waseda.ac.jp) (Ruby) |
| Matthias Kรถppe (mkoeppe@mail.math.uni-magdeburg.de) (Guile/MzScheme) |
| |
| Past contributors (see the CHANGES file for a complete list): |
| |
| Clark McGrew, Dustin Mitchell, Ian Cooke, Catalin Dumitrescu, Baran |
| Kovuk, Gary Holt, David Fletcher, Oleg Tolmatcev, Harco de Hilster. |
| |
| Up-to-date SWIG related information can be found at |
| |
| http://www.swig.org |
| |
| What's New? |
| =========== |
| Here are the most notable changes (so far): |
| |
| - SWIG now has a full C preprocessor. |
| |
| - Code generation for the Tcl and Python modules has been |
| substantially improved both in terms of size and runtime |
| efficiency (Perl5 is coming along too). |
| |
| - The Guile module is stable. It represents C pointers as smobs and |
| supports the Guile module system and exceptions. |
| |
| - Java, Ruby, and MzScheme modules added. |
| |
| - Testing framework part of the distribution ("make check" support). |
| |
| - A lot of minor bug fixes and cleanup. |
| |
| - SWIG requires an ANSI C compiler. |
| |
| Here are a few missing features: |
| |
| - The SWIG1.1 documentation system is gone and hasn't been |
| replaced yet. This is on the long-term to-do list. |
| |
| - The Tcl7.x and Perl4 modules are deprecated and no longer |
| included. |
| |
| - A wide variety of old SWIG command-line options and |
| obscure features are gone. |
| |
| - Objective C support doesn't work right now. No ETA as to |
| when it will return. |
| |
| Although we are making every attempt preserve backwards compatibility |
| with interfaces written for SWIG1.1, SWIG1.3 incorporates a number of |
| very substantial modifications to things such as type handling, |
| typemaps, and wrapper code generation. Therefore, if you are making |
| extensive use of advanced SWIG features, interfaces written for |
| SWIG1.1 may not work. We apologize for the inconvenience, but these |
| changes are needed in order to remove a variety of annoying "features" |
| of SWIG1.1. |
| |
| In addition, SWIG1.3 makes no attempt to be compatible with SWIG1.1 at |
| the C++ API level so language modules written for SWIG1.1 will most |
| definitely not work with this release. |
| |
| The files NEW and CHANGES describe in some detail all of the important |
| changes that have been made to the system. Experienced users would be |
| advised to read this. |
| |
| Installation |
| ============ |
| To build and install SWIG, simply type the following: |
| |
| % ./configure |
| % make |
| % make check # this step is optional (see note below) |
| % make install |
| |
| In addition, if you need to build the runtime libraries, type |
| the following before doing the 'make install' step above. |
| |
| % make runtime |
| |
| If you don't know what the runtime libraries are, don't worry |
| about this step. |
| |
| The file INSTALL details more about using configure. Also try |
| |
| % ./configure --help. |
| |
| The configure script will attempt to locate various packages on your |
| machine, including Tcl, Perl5, Python and other target languages that SWIG |
| uses. Don't panic if you get 'not found' messages--SWIG does not need these |
| packages to compile or run. The configure script is actually looking for |
| these packages so that you can try out the SWIG examples contained |
| in the 'Examples' directory without having to hack Makefiles. |
| |
| Notes: |
| |
| (1) If you checked the code out via CVS, you will have to run ./autogen.sh |
| before typing 'configure'. In addition, a full build of SWIG requires |
| the use of bison. |
| |
| (2) If you are using Windows, the easiest way to install and build |
| SWIG is to use the Cygwin package (http://sourceware.cygnus.com/cygwin/). |
| Note: Even if you build SWIG using Cygwin, the easier way to |
| actually use SWIG on Windows is to build your extensions using Visual C++. |
| The SWIG1.1p5 distribution also contains a number of examples configured |
| to work with Visual C++ (most of which should also work with SWIG1.3). |
| |
| (3) 'make check' is a new feature that requires at least one of the target |
| languages to be installed and which performs compile/link level testing |
| of the examples. If it fails, it may mean that you have an uninstalled |
| language module or that the file 'Examples/Makefile' has been |
| incorrectly configured. It may also fail due to compiler issues |
| such as broken C++ compiler. Even if 'make check' fails, there is a |
| pretty good chance SWIG still works correctly---you will just have |
| to mess around with one of the examples and some makefiles first. |
| |
| Examples |
| ======== |
| The Examples directory contains a variety of examples of using SWIG |
| and it has some browsable documentation. Simply point your browser to |
| the file "Example/index.html". |
| |
| Documentation |
| ============= |
| No user documentation is currently included in this release. However, |
| most of the documentation for SWIG1.1 still applies. This can be |
| obtained on http://www.swig.org. |
| |
| There is some technical documentation available in the Doc subdirectory. |
| |
| Participate! |
| ============ |
| |
| Please report any errors and submit patches (if possible)! We only |
| have access to a limited variety of hardware (Linux, Solaris, and |
| Windows). All contributions help. |
| |
| Contributions of new language modules will also be accepted. |
| |
| -- The SWIG Maintainers |