updated
[silc.git] / README.CVS
1 Anonymous CVS Access
2 ====================
3
4 Anonymous CVS access is now available to SILC CVS repository. The
5 repository includes everything related to SILC project; source codes,
6 documentation and even these web pages. The CVS access and hosting for the
7 public SILC CVS mirror is kindly provided by SourceForge.  The actual CVS
8 repository that is used in the development resides in silc.pspt.fi and is
9 mirrored by SourceForge.
10
11 Also note that this is the closest to real time development you can get
12 thus you cannot expect that the source tree would work or even compile.
13 While it is our intention that the trunk would always at least compile
14 there might be situations when it will not. The CVS repository is mirrored
15 hourly by the SourceForge.
16
17
18 Browsing the Source Tree
19 ========================
20
21 If you want to browse the source tree using web browser before checking
22 out the tree with CVS use following link:
23
24 http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/?cvsroot=silc
25
26
27 Howto Checkout The Source Tree
28 ==============================
29
30 The repository can be checked out by using anonymous pserver with CVS.
31 There are no password restrictions in the SILC anonymous CVS repository.
32
33 For those who are using sh/ksh/bash the check out is done as follows:
34
35 export CVSROOT=:pserver:anonymous@cvs.silc.sourceforge.net:/cvsroot/silc
36 cvs login
37 cvs co silc
38
39 For those who are using csh/tcsh the check out is done as follows:
40
41 setenv CVSROOT :pserver:anonymous@cvs.silc.sourceforge.net:/cvsroot/silc
42 cvs login
43 cvs co silc
44
45 If you don't want to set $CVSROOT environment variable you can set the
46 path to the cvs as command line options:
47
48 cvs -d:pserver:anonymous@cvs.silc.sourceforge.net:/cvsroot/silc login
49 cvs -d:pserver:anonymous@cvs.silc.sourceforge.net:/cvsroot/silc co silc
50
51 What ever method you decide to use, after you have done cvs login you will
52 be prompted for password:
53
54         CVS password:
55
56 There is no password so you can press enter when prompted.
57
58 The actual SILC source tree is checked out using the cvs co silc command,
59 described above. This command will fetch the source tree and save it into
60 directory named silc. SILC CVS repository currently does not have any
61 branches thus this will check out the trunk. The size of the trunk is
62 currently about 1.5 Mb but will grow in the future.
63
64
65 What SILC Source Tree Includes
66 ==============================
67
68 SILC Source tree includes a lot more stuff that appears in public
69 distribution.  The source tree includes, for example, internal scripts,
70 configuration files, SILC webpages etc.  These never appear on a public
71 distribution.
72
73 Following directories currently exist in SILC source tree.
74
75   doc/
76
77         Includes all the SILC documentation.  Some of the documentation
78         are generated when distribution is generated.  The automatically
79         generated files must never be commited to CVS.
80
81   includes/
82
83         Includes SILC include files.
84
85   lib/
86
87         Includes SILC libraries.  There maybe libraries on the CVS that
88         does not appear on public distribution.
89
90   public_html/
91
92         Includes the official SILC web pages and everything that relates
93         to them.  This directory never appears on public distribution.
94
95   silc/
96
97         Includes SILC client.  There can be some extra files that will
98         never appear in public distribution, such as, configuration files.
99
100   silcd/
101
102         Includes SILC server.  There can be some extra files that will
103         never appear in public distribution, such as, configuration files.
104
105
106 Howto Compile SILC Source Tree
107 ==============================
108
109 After checkout from CVS the SILC source tree must be prepared for 
110 configuration and compilation.  To compile the source three, give,
111
112         ./prepare
113         ./configure --enable-debug
114         make
115
116 The ./prepare script is included in to the source tree and it never
117 appears in public distribution.  The script prepares the source tree
118 by creating configuration scripts and Makefiles.  The prepare must be
119 run every time you make some changes to configuration scripts (however,
120 making changes to Makefile.am's does not require running ./prepare).
121
122 As a developer you should read the ./configure script's help by
123 giving ./configure --help and study all of its different options.  Also,
124 you should configure the script with --enable-debug option as it
125 compiles SILC with -g (debugging) option and it enables the 
126 SILC_LOG_DEBUG* scripts.  Warning is due here:  The debugging produced
127 by both cilent and server is very heavy, thus it is common to test
128 the programs as follows:
129
130         ./silc -f configfile 2>log
131         ./silcd -f configfile 2>log
132
133
134 Howto Clean SILC Source Tree
135 ============================
136
137 To entirely clear the source tree to the state after it was checked out
138 from CVS, give,
139
140         ./prepare-clean
141
142 This calls `make distclean' plus removes automatically generated files
143 by hand.  It also removes *.log files. However, it will not remove
144 any other files you might have created.
145
146
147 Makefiles and configuration files
148 =================================
149
150 Developers should never directly write a Makefile.  All Makefiles are
151 always automatically generated by ./prepare and later by ./configure
152 scripts.  Instead, developers must write Makefile.am files.  There
153 are plenty of examples what they should look like.  If you change
154 Makefile.am during development you don't have to run ./prepare, just
155 run normal make.
156
157 Configuration files are the files that ./prepare automatically generates
158 and what will be included into public distribution.  ./prepare creates
159 for example the ./configure script that is not commited to the CVS.
160 `configure.in' is the file that developers must edit to change ./configure
161 script.  After changing one must run  ./prepare.