+<html>
+<style TYPE="text/css"><!-- A:link {text-decoration: none}A:visited{text-decoration:none}A:active{text-decoration:none}--></style>
+<body bgcolor="#ffffff">
+<p><br>
+<a href="index.html"><img src="silc2.jpg" border=0></a>
+<table width="70%" border="0" cellspacing="0" cellpadding="1"
+align=center>
+<tr>
+<td>
+<font face="Arial,Helvetica,Sans-serif">
+<p>
+<font size=4>
+<h1>Anonymous CVS Access</h1>
+<p>
+Anonymous CVS access is now available to SILC CVS repository. The
+repository includes everything related to SILC project; source codes,
+documentation and even these web pages. The CVS access is of course public
+but it is intended for developers. After you have checked out the SILC
+source tree you should read README.CVS file from the source tree or rest
+of this web page.
+
+<p>
+Also note that this is the closest to real time development you can get
+thus you cannot expect that the source tree would work or even compile.
+While it is our intention that the trunk would always at least compile
+there might be situations when it will not.
+
+<p><br>
+<h1>Browsing the Source Tree</h1>
+<p>
+If you want to browse the source tree using web browser before checking
+out the tree with CVS use following link:
+<p>
+<a href="http://silcnet.org/cvs/source/">Web Access to CVS repository
+</a>
+<p>
+Note that this is not real-time access to the CVS repository. It is
+updated once a day. If you want real-time access then checkout the CVS
+repository.
+
+<p><br>
+<h1>Howto Checkout The Source Tree</h1>
+<p>
+The repository can be checked out by using anonymous pserver with CVS.
+<p>
+For those who are using sh/ksh/bash the check out is done as follows:
+<p>
+<dd><b>
+export CVSROOT=:pserver:silc@silc.pspt.fi:/storage/silc/CVS
+</b>
+<dd><b>cvs login</b>
+<dd><b>cvs co silc</b>
+
+<p>
+For those who are using csh/tcsh the check out is done as follows:
+<p>
+<dd><b>
+setenv CVSROOT :pserver:silc@silc.pspt.fi:/storage/silc/CVS
+</b>
+<dd><b>cvs login</b>
+<dd><b>cvs co silc</b>
+
+<p>
+If you don't want to set $CVSROOT environment variable you can set the
+path to the cvs as command line options:
+<p>
+<dd><b>
+cvs -d:pserver:silc@silc.pspt.fi:/storage/silc/CVS login
+</b>
+<dd><b>
+cvs -d:pserver:silc@silc.pspt.fi:/storage/silc/CVS co silc
+</b>
+
+<p>
+What ever method you decide to use, after you have done cvs login you will
+be prompted for password:
+<p>
+<dd><b>CVS password: </b>silc
+<p>
+Type the password "silc" and press Enter.
+
+<p>
+The actual SILC source tree is checked out using the cvs co silc command,
+described above. This command will fetch the source tree and save it into
+directory named silc. SILC CVS repository currently does not have any
+branches thus this will check out the trunk. The size of the trunk is
+currently about 11 MB but will grow in the future.
+
+<p><br>
+<h1>What SILC Source Tree Includes</h1>
+<p>
+SILC Source tree includes a lot more stuff that appears in public
+distribution. The source tree includes, for example, internal scripts,
+configuration files, SILC webpages etc. These never appear on a public
+distribution.
+<p>
+Following directories currently exist in SILC source tree.
+<p>
+<font size=3>
+<pre>
+ doc/
+
+ Includes all the SILC documentation. Some of the documentation
+ are generated when distribution is generated. The automatically
+ generated files must never be commited to CVS.
+
+ includes/
+
+ Includes SILC include files.
+
+ lib/
+
+ Includes SILC libraries. There maybe libraries on the CVS that
+ does not appear on public distribution.
+
+ public_html/
+
+ Includes the official SILC web pages and everything that relates
+ to them. This directory never appears on public distribution.
+
+ silc/
+
+ Includes SILC client. There can be some extra files that will
+ never appear in public distribution, such as, configuration files.
+
+ silcd/
+
+ Includes SILC server. There can be some extra files that will
+ never appear in public distribution, such as, configuration files.
+</pre>
+
+<font size=4>
+
+<p><br>
+<h1>Howto Compile SILC Source Tree</h1>
+<p>
+After checkout from CVS the SILC source tree must be prepared for
+configuration and compilation. To compile the source three, give,
+<p>
+<font size=3>
+<pre>
+ ./prepare
+ ./configure --enable-debug
+ make
+</pre>
+<font size=4>
+
+The ./prepare script is included in to the source tree and it never
+appears in public distribution. The script prepares the source tree
+by creating configuration scripts and Makefiles. The prepare must be
+run every time you make some changes to configuration scripts (however,
+making changes to Makefile.am's does not require running ./prepare).
+
+<p>
+As a developer you should read the ./configure script's help by
+giving ./configure --help and study all of its different options. Also,
+you should configure the script with --enable-debug option as it
+compiles SILC with -g (debugging) option and it enables the
+SILC_LOG_DEBUG* scripts. Warning is due here: The debugging produced
+by both cilent and server is very heavy, thus it is common to test
+the programs as follows:
+<p>
+<font size=3>
+<pre>
+ ./silc -f configfile 2>log
+ ./silcd -f configfile 2>log
+</pre>
+<font size=4>
+
+<p><br>
+<h1>Howto Clean SILC Source Tree</h1>
+<p>
+To entirely clear the source tree to the state after it was checked out
+from CVS, give,
+<font size=3>
+<pre>
+ ./prepare-clean
+</pre>
+<font size=4>
+
+This calls `make distclean' plus removes automatically generated files
+by hand. It also removes *.log files. However, it will not remove
+any other files you might have created.
+
+<p><br>
+<h1>Makefiles and configuration files</h1>
+<p>
+Developers should never directly write a Makefile. All Makefiles are
+always automatically generated by ./prepare and later by ./configure
+scripts. Instead, developers must write Makefile.am files. There
+are plenty of examples what they should look like. If you change
+Makefile.am during development you don't have to run ./prepare, just
+run normal make.
+<p>
+Configuration files are the files that ./prepare automatically generates
+and what will be included into public distribution. ./prepare creates
+for example the ./configure script that is not commited to the CVS.
+`configure.in' is the file that developers must edit to change ./configure
+script. After changing one must run ./prepare.
+<p><br>
+</td>
+</tr>
+</table>
+</body>
+</html>