1 How to create SILC distributions
2 ================================
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
10 The 'distributions' file
11 ========================
13 The 'distributions' file descibres all distributions that can be created
14 from the SILC CVS source tree. You should read that file if you want to
15 learn how to create new distributions. The file already defines the main
16 distributions that can be created from the soure tree. These are the
17 'client', 'server' and 'toolkit' distributions.
20 Preparing distribution
21 ======================
23 The SILC CVS source tree must be prepared before it can be configured,
24 compiled and packaged. The ./prepare script is used to prepare
25 distribution for configuration, compilation and packaging. To prepare a
26 specific distribution with specific version, give command:
28 ./prepare <name> <version>
30 Where the <name> is the distribution name. It is one of the distributions
31 that was defined in 'distributions' file. The <version> is the version of
32 the distribution that will be prepared. The version format is
33 major.minor.build, for example 0.9.10. Example:
35 ./prepare client 0.9.15
37 This prepares 'client' distribution of version 0.9.15. The package will
38 have the version 0.9.15 automatically.
40 NOTE for 'toolkit' distribution: The toolkit version is defined in the
41 'prepare' file itself. Edit the SILC_VERSION variable inside the
42 'prepare' script, and then run the prepare without the version argument.
44 NOTE: You may have to run prepare twice to produce valid Makfiles for
45 distribution due to (known but not fixed) bugs in automake.
48 Configuring and compiling the distribution
49 ==========================================
51 When you prepare the distribution for releasing you should configure the
52 distribution without any specific configuration options, hence just give
57 To compile the distribution, give command:
61 If you want you can clear the environment first with make clean command,
62 but this is not necessary.
65 Packaging the distribution
66 ==========================
68 After the distribution is prepared, configured and compiled it can be
69 packaged with the following commands:
75 The first command creates a gzipped distribution and the second creates a
78 NOTE: Before giving this command, make sure that you do not have any of
79 the tests in the SILC source tree compiled. If they are the binaries
80 will be included in the distribution which is not allowed. The tests are
81 always located in the tests/ directory, for example lib/silccore/tests/.
82 The tests are not compiled by default, but if you compiled them by
83 yourself make sure you make clean them before creating the distribution.
85 NOTE: Same thing must be assured for silcer/ and tutorial/ sub
86 directories. Make sure they are not compiled and does not include any
87 extra files. If you haven't compiled them after the CVS checkout, they do
88 not include any extra files.
90 NOTE for 'toolkit' distribution: Before giving make dist the following
94 give ./configure;make to compile robodoc
96 give make toolkit-ref-html
98 This then creates the Toolkit reference manual. After this the toolkit
99 distribution can be packaged.
102 Before releasing the distribution
103 =================================
105 Before releasing the distribution the created distribution must be tagged
106 in the CVS so that it can be checkout at a later time, if needed. The tag
107 format is as follows:
109 silc_<name>_<version>
111 Where <name> is the distribution name and <version> is the version of the
112 distribution in following format: major_minor_build, for example 0_9_10.
117 To tag the distribution go to the root of the SILC CVS source tree and
118 give, for example, command:
120 cvs tag silc_client_0_9_15