SWIG CVS

<p>
<img src="images/cvs.png" alt="CVS">

<p>
Development versions of SWIG are available through the CVS server located at SourceForge.

<h3> Disclaimer </h3>

The CVS release represents work in progress and is not guaranteed to compile on your machine or be functional in any
manner. 

<h3> Required Tools </h3>

To compile SWIG from its CVS repository, you will need the following tools:

<ul>
<li> Autoconf 2.58 or higher
<li> Automake 1.7.2 or higher
<li> A working C++ compiler.
<li> yacc or bison (to compile the SWIG parser).  
</ul>

<p>
It is important to note that the CVS repository does not include the C++ code 
generated by yacc nor the files produced by Autoconf or Automake (these
are however included in a normal release). Thus, you will have
to install these tools on your machine for everything to work.

<h3>To check out the latest version </h3>
There are
<a href="http://sourceforge.net/cvs/?group_id=1645">generic CVS instructions</a>
available on the SourceForge site, but the steps below should be all you need.
The instructions below are for those who have read only access for cvs, developers should
consult the generic CVS instructions above.

<ol>
<li><p> Set the location of CVSROOT

<pre>
 % setenv CVSROOT :pserver:anonymous@cvs.sourceforge.net:/cvsroot/swig </pre>
<p>
(Alternatively, you can use the -d option to CVS)

<li><p> Log into the cvs server by issuing the following command:

<pre>
% cvs login
CVS password: &lt;press enter here&gt;
</pre>

<li><p>The latest development version of SWIG can be retrieved using

<pre>
% cvs checkout SWIG
</pre>

<li><p>To build the system, follow these steps

<pre>
% cd SWIG
% ./autogen.sh
% ./configure --prefix=/some/directory
% make
% make install
</pre>

<li><p>To check the build, run the tests:

<pre>
% make -k check </pre>
This could take up to an hour or longer. If you are interested in a particular language,
just check the examples and test-suite for that language. For example, the Python tests:
<pre>
% make check-python-examples
% make check-python-test-suite
</pre>

</ol>

<b>Note:</b> The CVS repository is read-only so the system will not 
accept code modifications unless you are a developer.

<h3> Build Issues </h3>
Here are some guidelines should you be experiencing problems building SWIG from CVS.

<ol>

<li>Check that you have a complete update from the SWIG CVS repository. 
A fresh checkout from CVS often solves build problems.
</li>

<li>
Make sure you have run <tt>./autogen.sh</tt> and <tt>./configure</tt>.
Both these steps will be necessary if you have a fresh CVS checkout or if the build files in the repository have changed since a previous update.
</li>

<li>
Check that the appropriate versions of your autotools (Autoconf and Automake) are installed properly. 
The autotools are in a state of flux and there are backward compatibility issues which are solved in different ways on different operating systems.
</li>

<li>
Check that all the autotool bootstrap programs which are executed when running <tt>./autogen.sh</tt> are up to date and match your installed autotool versions.
For example <tt>aclocal --version</tt> should report a matching version of Automake or Autoconf, something like "aclocal (GNU automake) 1.7.6".
</li>
</ol>

If you are still having problems, send an email to <a href="mail.html">swig-dev</a> mailing list.

<h3>Developer Access</h3>

We are always looking for people to help out with various projects. 

<ul>
<li><p> Send email to to the <a href="mail.html">swig-dev</a> mailing list.
if you are interested in doing developer work and gaining write access to the CVS repository.

<li><p> The <a href="mail.html">swig-dev</a> mailing list is the developer mailing list
and should be used to discuss coding issues, bugs, patches, and so forth.  
Subscription information and archives of recent activity can be found on the <a href="mail.html">mailing lists</a> page.
</ul>





