| Installation: SWIG 1.1 |
| June 24, 1997 |
| |
| Installation (Unix) |
| ------------------- |
| |
| To compile and use SWIG, you will need the following on your machine: |
| |
| A C++ compiler (ie. g++) |
| An ANSI C compiler (ie. gcc) |
| yacc or bison (only needed to rebuild the SWIG parser). |
| |
| To compile and install SWIG, type the following : |
| |
| ./configure |
| make |
| make install |
| |
| The configuration script will attempt to locate various packages on |
| your machine, including Tcl, Perl5, and Python. 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. See the Examples section below for |
| more details. |
| |
| The 'make runtime' option is an optional step that can be used to |
| build the SWIG runtime libraries. These libraries are only used with |
| larger packages and are not necessary for learning SWIG or trying |
| the examples (please refer to the "Advanced topics" section of the |
| SWIG Users manual for more details). |
| |
| Typing 'make test' will run a rather extensive series of tests |
| and can be run before running 'make install' (if you are paranoid). |
| |
| There are a number of configuration options that you can give to |
| 'configure' : |
| |
| --prefix=/usr/local |
| |
| Set the installation prefix. SWIG installs into |
| /usr/local by default. |
| |
| --exec_prefix=/usr/local |
| |
| Set the prefix used to install platform specific |
| files (binaries and libraries). Use this if the |
| location is different than that given with --prefix. |
| |
| --with-lang={TCL,TCL8,PYTHON,PERL5,PERL4,GUILE} |
| |
| This lets you choose the default SWIG target language. |
| By default, SWIG chooses TCL, but you can select |
| another as shown : |
| |
| ./configure --with-lang=PYTHON |
| |
| --with-doc={ASCII,LATEX,HTML,NODOC} |
| |
| This lets you choose the default SWIG documentation |
| method. By default, SWIG chooses ASCII. |
| |
| To test the SWIG parser after compilation, type 'make test'. |
| |
| Site specific installation |
| -------------------------- |
| |
| While not required for compiling SWIG, the configuration script looks |
| for various packages in order to create a makefile for compiling the |
| examples. This makefile is also installed with the SWIG package. |
| The following configuration options can be used to set the location |
| of various packages. |
| |
| --with-tcl=pathname - Set root directory of Tcl installation. |
| SWIG will use $pathname/include and |
| $pathname/lib. |
| |
| --with-tclincl=pathname - Set exact location of Tcl include files |
| |
| --with-tcllib=pathname - Set exact location of Tcl library files |
| |
| --with-itcl=pathname - Same as above but for [incr Tcl] |
| |
| --with-itclincl=pathname - Location of [incr Tcl] include files |
| |
| --with-itcllib=pathname - Location of [incr Tcl] libraries |
| |
| --with-py=pathname - Set package location of Python. This is usually |
| something like /usr/local. configure will attempt |
| to locate the appropriate include and library files. |
| |
| --with-pyincl=pathname - Set location of Python include files |
| (for example, /usr/local/include) |
| |
| --with-pylib=pathname - Set location of Python library files |
| (for example, /usr/local/lib) |
| |
| --with-perl5=executable - Specify your perl5 executable. SWIG will figure |
| out where files are by running this version of |
| Perl and grabbing its configuration data. |
| |
| |
| Other options : |
| |
| --without-yacc - Try to compile SWIG using a pregenerated YACC |
| file generated by Berkeley YACC (byacc). Only recommended |
| if you get compiler errors when trying to compile parser.y |
| or parser.cxx. |
| |
| |
| How to use a different C++ compiler (IMPORTANT) |
| ------------------------------------------------ |
| Normally, the configure script will probably use g++ as the |
| C++ compiler. If you want to use a different compiler, do |
| the following before running configure. |
| |
| setenv CXX CC # Set CXX to your C++ compiler |
| ./configure |
| make |
| |
| Changing the Makefiles to use a different C++ compiler after |
| configuration is not recommended! If you need to do this, |
| do this : |
| |
| rm config.cache |
| setenv CXX CC |
| ./configure |
| make |
| |
| To change the C compiler (for compiling examples), follow the |
| same procedure above, change the symbol 'CC' instead of 'CXX'. |
| |
| Testing : |
| --------- |
| |
| There are several tests that can be done after compilation : |
| |
| make test - Tests the SWIG parser and performs regression tests |
| make testbuild - Tests SWIG ability to build various modules |
| (see below) |
| |
| make testall - Test both of the above |
| |
| The testing process requires the use of the 'bash' shell and Perl. |
| If you don't have these, don't expect the tests to work. |
| |
| *** Warning : Full testing requires about 20 Mbytes of disk space |
| and creates a collection of regression testing files. After |
| performing the tests, you can do a 'make testclean' to clean up |
| the test directories to their initial distribution state. |
| |
| The SWIG Makefiles |
| ------------------ |
| |
| SWIG creates a Makefile with rules on how to build all kinds of |
| modules for different languages. This makefile is called |
| 'Makefile.template' in the top level directory and is installed with |
| the SWIG library as 'swig_lib/Makefile'. |
| |
| Prior to installation, it is highly recommended that you run a |
| 'make testbuild' to test this Makefile. This test will report |
| which kinds of extensions can be built. It is normal that |
| some tests will fail (depending on your system and installation), |
| but if the tests fail for a language you want to use, you will |
| want to edit the file 'Makefile.template' by hand. In this |
| process, you can repeatedly try 'make testbuild' until you |
| are satisfied. |
| |
| In addition to the 'Makefile.template' SWIG 1.1 attempts to configure |
| more advanced makefiles for each scripting language. These are |
| located in 'swig_lib/tcl/Makefile', 'swig_lib/perl5/Makefile', and |
| 'swig_lib/python/Makefile'. Prior to installation, you may want |
| to examine these Makefiles to make sure they accurately reflect |
| your local setup. |
| |
| If you're happy with the setup, proceed to installation. |
| |
| Installation |
| ------------ |
| |
| Type 'make install' to install SWIG. This will install the following : |
| |
| - The SWIG Library (containing interface files) |
| - swig.h (Headers for building SWIG extensions) |
| - libswig.a (SWIG library for building SWIG extensions) |
| - swig.1 (man page) |
| - swig_lib/Makefile Makefile for building extensions |
| - Runtime libraries (if built earlier). |
| |
| Troubleshooting |
| -------------- |
| |
| See the file TROUBLESHOOTING for solutions to several problems. |
| |
| While I have access to a large number of machines, it's impossible for |
| me to test everything. If you can't get SWIG to build successfully, |
| please send me email at beazley@cs.utah.edu. |
| |
| |
| Installation for Windows 95 and NT |
| ---------------------------------- |
| |
| The Win directory contains makefiles for Microsoft Visual C++ 4.x. |
| See the README file in the Win directory for specific build |
| instructions. |
| |
| Installation for Macintosh |
| -------------------------- |
| |
| The Mac directory contains information about building SWIG on |
| the Macintosh. At this time, the Macintosh version is |
| distributed separately as a binary release. Source is also |
| available, but is non-trivial to build due to dependencies |
| on other packages. |
| |
| |
| |