--- /dev/null
+This document describes how to compile the SILC source tree after checkout
+from the CVS. This README.CVS file will appear only in the checkout
+source tree and not in any public distribution.
+
+Howto Checkout Source Tree
+==========================
+
+Be sure to set the CVSROOT environment variable first or use -d option
+of CVS. I suggest setting CVSROOT environment variable.
+
+ export CVSROOT=:pserver:anoncvs@silc.pspt.fi:/silc
+
+
+Checkout of SILC source tree, and to bemore specific, SILC trunk, give,
+
+ cvs co silc
+
+or
+
+ cvs -d :pserver:anoncvs@silc.pspt.fi:/silc co silc
+
+
+CVS will ask password. The password for anonymous (read access) CVS is
+
+ CVS password: silccvs
+
+
+CVS currently does not have branches, thus this checkouts the trunk.
+
+
+What SILC Source Tree Includes
+==============================
+
+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.
+
+Following directories currently exist in SILC source tree.
+
+ 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.
+
+
+Howto Compile SILC Source Tree
+==============================
+
+After checkout from CVS the SILC source tree must be prepared for
+configuration and compilation. To compile the source three, give,
+
+ ./prepare
+ ./configure --enable-debug
+ make
+
+
+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.
+
+As a developer you should read the ./configure scripts 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:
+
+ ./silc -f <config file> 2>silc.log
+ ./silcd -f <config file> 2>silcd.log
+
+
+Howto Clean SILC Source Tree
+============================
+
+To entirely clear the source tree to the state after it was checkedout
+from CVS, give,
+
+ ./prepare-clean
+
+
+This calls `make distclean' plus removes automatically generated files
+by hand. It also removes *.log files.
+
+
+Makefiles and configuration files
+=================================
+
+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.
+
+Configuration files 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 and
+must not be commited. `configure.in' is the file that developers must
+edit to change ./configure script. After changing one must run
+./prepare.
+
+
+Creating Distribution
+=====================
+
+The version of the distribution is currently always set in the configure.in
+file. The actual distribution is created by simply giving,
+
+ make dist
+
+
+Information About CVS Repository
+================================
+
+SILC CVS repository resides in silc.pspt.fi (193.166.51.47) in a 2 Gb
+SCSI harddrive. The repository is backuped every morning at 06:00 EEST.
+The entire repository is backuped and the backup is distributed to at
+least two independent machines and the backup is recorded into tapes,
+as well. There are always week's of backups in hand in case they are
+needed. Every week the "lastweek's" backups are removed and "this weeks"
+backups are saved.
+
+$Id$