updates
[runtime.git] / public_html / cvs.php
1 <b>Anonymous CVS access</b>
2 <font size="2">
3 <br><br>
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 is of course public
7 but it is intended for developers.  After you have checked out the SILC
8 source tree you should read README.CVS file from the source tree or rest
9 of this web page.
10 <br><br>
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.
15
16 <br><br><br>
17
18 <b>Browsing the Source Tree</b>
19 <br><br>
20 If you want to browse the source tree using web browser before checking
21 out the tree with CVS use following link:
22 <br><br>
23 <a href="http://cvs.silcnet.org/">Web Access to CVS repository
24 </a>
25 <br><br>
26 Note that this is not real-time access to the CVS repository. It is
27 updated once a day. If you want real-time access then checkout the CVS
28 repository.
29
30 <br><br><br>
31
32 <b>Howto Checkout The Source Tree</b>
33 <br><br>
34 The repository can be checked out by using anonymous pserver with CVS.
35 <br><br>
36 For those who are using sh/ksh/bash the check out is done as follows:
37 <br><br>
38 <font size="3">
39 <tt>
40 export CVSROOT=:pserver:cvs@cvs.silcnet.org:/cvs/silc
41 <br><br>
42 cvs login<br>
43 cvs co silc<br>
44 </tt>
45 </font>
46
47 <br><br>
48 For those who are using csh/tcsh the check out is done as follows:
49 <br><br>
50 <font size="3">
51 <tt>
52 setenv CVSROOT :pserver:cvs@cvs.silcnet.org:/cvs/silc
53 <br><br>
54 cvs login<br>
55 cvs co silc<br>
56 </tt>
57 </font>
58 <br><br>
59 If you don't want to set $CVSROOT environment variable you can set the
60 path to the cvs as command line options:
61 <br><br>
62 <font size="3">
63 <tt>
64 cvs -d:pserver:cvs@cvs.silcnet.org:/cvs/silc login<br>
65 cvs -d:pserver:cvs@cvs.silcnet.org:/cvs/silc co silc
66 </tt>
67 </font>
68 <br><br>
69 What ever method you decide to use, after you have done cvs login you will
70 be prompted for password:
71 <br><br>
72 <b>CVS password: </b>silc
73 <br><br>
74 Type the password "silc" and press Enter.
75 <br><br>
76 The actual SILC source tree is checked out using the cvs co silc command,
77 described above. This command will fetch the source tree and save it into
78 directory named silc. SILC CVS repository currently does not have any
79 branches thus this will check out the trunk. The size of the trunk is
80 currently about 13 MB but will grow in the future.
81
82 <br><br><br>
83
84 <b>What SILC Source Tree Includes</b>
85 <br><br>
86 SILC Source tree includes a lot more stuff that appears in public
87 distribution.  The source tree includes, for example, internal scripts,
88 configuration files, SILC webpages etc.  These never appear on a public
89 distribution.
90 <br><br>
91 Following directories currently exist in SILC source tree.
92 <br><br>
93 <font size="3">
94 <tt>
95 doc/
96 <br><br>
97 Includes all the SILC documentation.  Some of the documentation
98 are generated when distribution is generated.  The automatically
99 generated files must never be commited to CVS.
100 <br><br>
101 includes/
102 <br><br>
103 Includes SILC include files.
104 <br><br>
105 lib/
106 <br><br>
107 Includes SILC libraries.  There maybe libraries on the CVS that
108 does not appear on public distribution.
109 <br><br>
110 public_html/
111 <br><br>
112 Includes the official SILC web pages and everything that relates
113 to them.  This directory never appears on public distribution.
114 <br><br>
115 silc/
116 <br><br>
117 Includes SILC client.  There can be some extra files that will
118 never appear in public distribution, such as, configuration files.
119 <br><br>
120 silcd/
121 <br><br>
122 Includes SILC server.  There can be some extra files that will
123 never appear in public distribution, such as, configuration files.
124 </tt>
125 </font>
126
127 <br><br><br>
128
129 <b>Howto Compile SILC Source Tree</b>
130 <br><br>
131 After checkout from CVS the SILC source tree must be prepared for 
132 configuration and compilation.  To compile the source tree, give,
133 <br><br>
134 <font size="3">
135 <tt>
136 ./prepare<br>
137 ./configure --enable-debug<br>
138 make
139 </tt>
140 </font>
141 <br><br>
142
143 The ./prepare script is included in to the source tree and it never
144 appears in public distribution.  The script prepares the source tree
145 by creating configuration scripts and Makefiles.  The prepare must be
146 run every time you make some changes to configuration scripts (however,
147 making changes to Makefile.am's does not require running ./prepare).
148 <br><br>
149 As a developer you should read the ./configure script's help by
150 giving ./configure --help and study all of its different options.  Also,
151 you should configure the script with --enable-debug option as it
152 compiles SILC with -g (debugging) option and it enables the 
153 SILC_LOG_DEBUG* scripts.  Warning is due here:  The debugging produced
154 by both cilent and server is very heavy, thus it is common to test
155 the programs as follows:
156 <br><br>
157 <font size="3">
158 <tt>
159 ./silc -d -f configfile 2&gt;log<br>
160 ./silcd -d -f configfile 2&gt;log
161 </tt>
162 </font>
163
164 <br><br><br>
165
166 <b>Howto Clean SILC Source Tree</b>
167 <br><br>
168 To entirely clear the source tree to the state after it was checked out
169 from CVS, give,
170 <br><br>
171 <font size="3">
172 <tt>
173 ./prepare-clean
174 </tt>
175 </font><br><br>
176
177 This calls `make distclean' plus removes automatically generated files
178 by hand.  It also removes *.log files. However, it will not remove
179 any other files you might have created.
180
181 <br><br><br>
182
183 <b>Makefiles and configuration files</b>
184 <br><br>
185 Developers should never directly write a Makefile.  All Makefiles are
186 always automatically generated by ./prepare and later by ./configure
187 scripts.  Instead, developers must write Makefile.am files.  There
188 are plenty of examples what they should look like.  If you change
189 Makefile.am during development you don't have to run ./prepare, just
190 run normal make.
191 <br><br>
192 Configuration files are the files that ./prepare automatically generates
193 and what will be included into public distribution.  ./prepare creates
194 for example the ./configure script that is not commited to the CVS.
195 `configure.in' is the file that developers must edit to change ./configure
196 script.  After changing one must run  ./prepare.
197 </font>
198 <br><br>