updates
[silc.git] / README.CVS
1 This document describes how to compile the SILC source tree after checkout
2 from the CVS.  This README.CVS file will appear only in the checkout
3 source tree and not in any public distribution.
4
5 Howto Checkout Source Tree
6 ==========================
7
8 Be sure to set the CVSROOT environment variable first or use -d option
9 of CVS.  I suggest setting CVSROOT environment variable.
10
11         export CVSROOT=:pserver:silccvs@silc.pspt.fi:/silc
12
13
14 Checkout of SILC source tree, and to bemore specific, SILC trunk, give,
15
16         cvs co silc
17
18 or
19
20         cvs -d :pserver:silccvs@silc.pspt.fi:/silc co silc
21
22
23 CVS will ask password.  The password for anonymous (read access) CVS is
24
25         CVS password: silccvs
26
27
28 CVS currently does not have branches, thus this checkouts the trunk.
29
30
31 What SILC Source Tree Includes
32 ==============================
33
34 SILC Source tree includes a lot more stuff that appears in public
35 distribution.  The source tree includes, for example, internal scripts,
36 configuration files, SILC webpages etc.  These never appear on a public
37 distribution.
38
39 Following directories currently exist in SILC source tree.
40
41   doc/
42
43         Includes all the SILC documentation.  Some of the documentation
44         are generated when distribution is generated.  The automatically
45         generated files must never be commited to CVS.
46
47   includes/
48
49         Includes SILC include files.
50
51   lib/
52
53         Includes SILC libraries.  There maybe libraries on the CVS that
54         does not appear on public distribution.
55
56   public_html/
57
58         Includes the official SILC web pages and everything that relates
59         to them.  This directory never appears on public distribution.
60
61   silc/
62
63         Includes SILC client.  There can be some extra files that will
64         never appear in public distribution, such as, configuration files.
65
66   silcd/
67
68         Includes SILC server.  There can be some extra files that will
69         never appear in public distribution, such as, configuration files.
70
71
72 Howto Compile SILC Source Tree
73 ==============================
74
75 After checkout from CVS the SILC source tree must be prepared for 
76 configuration and compilation.  To compile the source three, give,
77
78         ./prepare
79         ./configure --enable-debug
80         make
81
82
83 The ./prepare script is included in to the source tree and it never
84 appears in public distribution.  The script prepares the source tree
85 by creating configuration scripts and Makefiles.  The prepare must be
86 run every time you make some changes to configuration scripts.
87
88 As a developer you should read the ./configure scripts help by
89 giving ./configure --help and study all of its different options.  Also,
90 you should configure the script with --enable-debug option as it
91 compiles SILC with -g (debugging) option and it enables the 
92 SILC_LOG_DEBUG* scripts.  Warning is due here:  The debugging produced
93 by both cilent and server is very heavy, thus it is common to test
94 the programs as follows:
95
96         ./silc -f <config file> 2>silc.log
97         ./silcd -f <config file> 2>silcd.log
98
99
100 Howto Clean SILC Source Tree
101 ============================
102
103 To entirely clear the source tree to the state after it was checkedout
104 from CVS, give,
105
106         ./prepare-clean
107
108
109 This calls `make distclean' plus removes automatically generated files
110 by hand.  It also removes *.log files.
111
112
113 Makefiles and configuration files
114 =================================
115
116 Developers should never directly write a Makefile.  All Makefiles are
117 always automatically generated by ./prepare and later by ./configure
118 scripts.  Instead, developers must write Makefile.am files.  There
119 are plenty of examples what they should look like.  If you change
120 Makefile.am during development you don't have to run ./prepare, just
121 run normal make.
122
123 Configuration files the files that ./prepare automatically generates
124 and what will be included into public distribution.  ./prepare creates
125 for example the ./configure script that is not commited to the CVS and
126 must not be commited.  `configure.in' is the file that developers must
127 edit to change ./configure script.  After changing one must run 
128 ./prepare.
129
130
131 Creating Distribution
132 =====================
133
134 The version of the distribution is currently always set in the configure.in
135 file.  The actual distribution is created by simply giving,
136
137         make dist
138
139 Note there are other files in the sources that has version information 
140 as well that currently needs to be updated by hand.
141
142
143 $Id$