Merged silc_1_0_branch to trunk.
[crypto.git] / README.DIST
1 How to create SILC distributions
2 ================================
3
4 This document describes how to prepare SILC distributions in SILC source
5 tree and how to package distributions for releasing.  This also defines
6 the procedure what one should do when distribution is created for
7 releasing.
8
9 The distdir/ directory contains all distributions that can be created
10 from the source tree.  The distdir/default cannot be packaged, it must
11 be used only for development.
12
13
14 Preparing distribution
15 ======================
16
17 To prepare a specific distribution with specific version for packaging,
18 give command:
19
20         autodist <name> <version>
21
22 Where the <name> is the distribution name.  It is one of the distributions 
23 that was defined in distdir/ directory.  The <version> is the version of 
24 the distribution that will be prepared.  The version format is 
25 major.minor.build, for example 0.9.10.  Example:
26
27         autodist client 0.9.15
28
29 This prepares 'client' distribution of version 0.9.15.  The package will 
30 have the version 0.9.15 automatically.
31
32
33 Configuring and compiling the distribution
34 ==========================================
35
36 When you prepare the distribution for releasing you should configure the 
37 distribution without any specific configuration options, hence just give 
38 the command:
39
40         ./configure
41
42 To compile the distribution, give command:
43
44         make
45
46 If you want you can clear the environment first with make clean command, 
47 but this is not necessary.
48
49
50 Packaging the distribution
51 ==========================
52
53 After the distribution is prepared, configured and compiled it can be 
54 packaged with the following commands:
55
56         make -C doc dist-hook
57         makedist --bzip2
58
59 The 'makedist --bzip2' creates the default 'tar.gz' and 'tar.bz2' 
60 distribution.
61
62 NOTE:  Before giving this command, make sure that you do not have any of 
63 the tests in the SILC source tree compiled.  If they are the binaries
64 will be included in the distribution which is not allowed.  The tests are 
65 always located in the tests/ directory, for example lib/silccore/tests/.
66 The tests are not compiled by default, but if you compiled them by 
67 yourself make sure you make clean them before creating the distribution.
68
69 NOTE:  Same thing must be assured for silcer/ and tutorial/ sub
70 directories.  Make sure they are not compiled and does not include any
71 extra files.  If you haven't compiled them after the CVS checkout, they do
72 not include any extra files.
73
74 NOTE for 'toolkit' distribution:  Before giving make dist the following
75 must be done:
76
77         go to util/robodoc/
78         give ./configure;make to compile robodoc
79         go to doc/
80         give make toolkit-ref-html
81
82 This then creates the Toolkit reference manual.  After this the toolkit 
83 distribution can be packaged.
84
85
86 Before releasing the distribution
87 =================================
88
89 Before releasing the distribution the created distribution must be tagged 
90 in the CVS so that it can be checkout at a later time, if needed.  The tag 
91 format is as follows:
92
93         silc_<name>_<version>
94
95 Where <name> is the distribution name and <version> is the version of the 
96 distribution in following format: major_minor_build, for example 0_9_10.  
97 Example:
98
99         silc_client_0_9_15
100
101 To tag the distribution go to the root of the SILC CVS source tree and 
102 give, for example, command:
103
104         cvs tag silc_client_0_9_15