SILC Runtime Toolkit 1.2 Beta 1
[runtime.git] / doc / runtime.in / building.html
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3                       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 <html  xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5 <head>
6 <meta http-equiv="Content-Style-Type" content="text/css" />
7 <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
8 <link rel="stylesheet" href="./runtime.css" type="text/css" />
9 <title>SILC Runtime Toolkit</title>
10 </head>
11 <body>
12
13 <div id="logo">
14 <table border="0" cellspacing="0" cellpadding="6" width="100%">
15  <tr valign="top">
16   <td>Copyright &copy; 2001 - 2008 SILC Project<br />
17     <a href="http://silcnet.org">SILC Project Website</a></td>
18   <td align="right">
19    <a href="index.html">SILC Runtime Toolkit Manual</a><br />
20    <a href="masterindex.html">Index</a></small></td>
21   </td>
22  </tr>
23 </table>
24 </div>
25
26 <div id="contentwrapper">
27 <div id="navigation">
28 </div> <!-- navigation -->
29 <div id="content">
30
31 <big><b>Building the Toolkit</b></big>
32
33 <br />&nbsp;<br />
34 SILC Runtime Toolkit works on various platforms, such as on several Unix 
35 systems and on Windows.  Building of the Toolkit on some platform may 
36 differ from the other.  This document describes how to build the Toolkit 
37 from the sources, to create linkable libraries and binaries, on all 
38 platforms the Toolkit support.
39
40 <br />&nbsp;<br />
41 The building instructions for all platforms are also included in the Toolkit
42 package.  Please refer to the INSTALL file for general building instructions
43 for Unix systems, README.WIN32 for building on Windows systems, and
44 README.MACOSX for building on Mac OS X.
45
46 <br />&nbsp;<br />
47 <li><a href="#unix">Building on Unix & Linux</a><br />
48 <li><a href="#windows">Building on Windows</a><br />
49 <li><a href="#macosx">Building on Mac OS X</a>
50 <li><a href="#symbian">Building on Symbian OS</a>
51
52 <br />&nbsp;<br />&nbsp;<br />
53 <b><a name="unix"></a>Building on Unix & Linux</b>
54
55 <br />&nbsp;<br />
56 On Unix systems both statically and dynamically linkable libraries are 
57 built by default.
58
59 <br />&nbsp;<br />
60 To build Toolkit on Unix systems, give commands:
61
62 <br />&nbsp;<br />
63 <tt>
64 ./configure<br />
65 make
66 </tt>
67
68 <br />&nbsp;<br />
69 On some systems you may need to give "gmake" command instead of "make".  The
70 ./configure can take several options as arguments.  To see them all give
71 command:
72
73 <br />&nbsp;<br />
74 <tt>./configure --help</tt>
75
76 <br />&nbsp;<br />
77 The most important configuration options you may consider to use are:
78
79 <br />&nbsp;<br />
80 <tt>--enable-debug</tt>
81
82 <br />&nbsp;<br />
83 If you would like to enable the debugging for the compiled binaries
84 you can give this option to the `configure'.  It is recommended to use
85 this option when you are doing development with Toolkit.  It is helpful
86 to enable run-time debugging.
87
88 <br />&nbsp;<br />
89 <tt>--with-iconv[=DIR]</tt>
90
91 <br />&nbsp;<br />
92 If your system doesn't provide iconv() function in its native libraries
93 (usually libc) or if this function is broken (e.g. older Solaris systems),
94 you may want to use libiconv instead.  The DIR is the upper path in your
95 system which contains lib/ and include/ for libiconv (e.g. /usr/local).
96
97 <br />&nbsp;<br />
98 <tt>--without-pthreads</tt>
99
100 <br />&nbsp;<br />
101 If you do not want to compile the programs with POSIX multi-threads support
102 you can give --without-pthreads option.  This will disable the SILC Thread
103 API and SILC Mutex API.  Furthermore if SILC Thread API is used when this
104 option is used, the routines work, but do not work in threads (are run
105 in the calling process and can block the process).
106
107 <br />&nbsp;<br />
108 <tt>--disable-asm</tt>
109
110 <br />&nbsp;<br />
111 If you have trouble compiling the assembler optimized code in the
112 package or does not want to use them, you can give the --disable-asm
113 option to the `configure' script.  This will assure that assembler
114 optimized code is not compiled in.
115
116 <br />&nbsp;<br />
117 <tt>--enable-ipv6</tt>
118
119 <br />&nbsp;<br />
120 The `configure' will attempt to check for IPv6 support in your system.
121 However, if it fails, but you still want to compile in the IPv6 support
122 you can give --enable-ipv6 option to force the IPv6 support.
123
124 <br />&nbsp;<br />
125 <tt>--disable-cpu-optimizations</tt>
126
127 <br />&nbsp;<br />
128 By default the configure script will attempt to detect the type of your 
129 CPU and enable any features specific to your CPU that could optimize the 
130 performance of the Toolkit.  If you are creating binary package that 
131 should work on any CPU (and not only your CPU) you should diable these 
132 optimizations.  If you compile it for yourself only, keeping the 
133 optimizations enabled is recommended.
134
135 <br />&nbsp;<br />
136 After compilation you can install the Toolkit into your system by giving
137 the command:
138
139 <br />&nbsp;<br />
140 <tt>make install</tt>
141
142
143 <br />&nbsp;<br />&nbsp;<br />
144 <b><a name="windows"></a>Building on Windows</b>
145
146 <br />&nbsp;<br />
147 The Toolkit can be compiled several different ways on Windows.  However,
148 this document describes the method to build the Toolkit to produce native
149 Win32 binaries.  The Toolkit package can also be compiled on Cygwin and
150 MinGW.  For these systems please refer to the README.WIN32 file in the
151 Toolkit package.
152
153 <br />&nbsp;<br />
154 The Toolkit package includes ready MSVC++ Workspace files, that will
155 automatically compile the Toolkit.  The MSVC++ workspace and project files
156 resides in the win32/ subdirectory of the Toolkit package.  The `srt.dsw'
157 file is the workspace file that automatically supports compiling the Toolkit
158 and to generate the SILC Runtime DLL (libsrt.dll).  You may also compile 
159 debug version by selecteing the Debug compilation method.
160
161 <br />&nbsp;<br />&nbsp;<br />
162 <b><a name="macosx"></a>Building on Mac OS X</b>
163
164 <br />&nbsp;<br />
165 Building the Toolkit on Mac OS X is almost identical on compiling on Unix
166 system.  The reason for this is that the Mac OS X is Unix based operating
167 system.  To build the Toolkit on Mac OS X, give the following commands:
168
169 <br />&nbsp;<br />
170 <tt>
171 setenv CFLAGS -no-cpp-precomp<br />
172 ./configure powerpc<br />
173 make
174 </tt>
175
176 <br />&nbsp;<br />
177 The ./configure can take several options as arguments.  To see them all give
178 command:
179
180 <br />&nbsp;<br />
181 <tt>./configure --help</tt>
182
183 <br />&nbsp;<br />
184 To compile, give:
185
186 <br />&nbsp;<br />
187 <tt>
188 make
189 </tt>
190
191 <br />&nbsp;<br />
192 After compilation you can install the Toolkit into your system by giving
193 the command:
194
195 <br />&nbsp;<br />
196 <tt>make install</tt>
197
198 <br />&nbsp;<br />&nbsp;<br />
199 <b><a name="symbian"></a>Building on Symbian OS</b>
200
201 <br />&nbsp;<br />
202 The build environment for Symbian OS requires Carbide.c++ and MS Windows.
203
204 <br />&nbsp;<br />
205 Download the freely available Carbide.c++ from Nokia at
206 <a href="http://forum.nokia.com">http://forum.nokia.com</a>.  The exact
207 hyperlink location changes often, so it is not referenced here.  It is
208 usually under "Tools and SDKs" link.
209
210 <br />&nbsp;<br />
211 After installation a web browser is opened automatically by the
212 Carbide.c++ installer.  Follow its instructions by installing the Perl,
213 CTags and the SDK.  Perl and the SDK are required, but CTags is
214 optional and if necessary can be omitted.
215
216 <br />&nbsp;<br />
217 The Toolkit is generic C and C++ code and should work with any
218 SDK.  If you don't have SDK already installed, install the latest
219 version you can find.  The links to SDKs are found in the Carbide.c++
220 instructions after installation.  If you already have SDK in your
221 system, you should use that.
222
223 <br />&nbsp;<br />
224 After installation import the Toolkit project to Carbide.c++ from the
225 symbian/ subdirectory in the Toolkit package.
226
227 <br />&nbsp;<br />
228 Please read the README.SYMBIAN from the SILC Runtime Toolkit package for 
229 complete building instructions.
230
231 </div> <!-- content -->
232
233 </div> <!-- contentwrapper -->
234 <div id="footer">
235 <table border="0" cellspacing="0" cellpadding="6" width="100%">
236  <tr valign="top">
237   <td>Copyright &copy; 2001 - 2008 SILC Project<br />
238     <a href="http://silcnet.org">SILC Project Website</a></td>
239   <td align="right">
240    <a href="index.html">SILC Runtime Toolkit Manual</a><br />
241    <a href="masterindex.html">Index</a></small></td>
242   </td>
243  </tr>
244 </table>
245 </div>
246
247 </body>
248 </html>
249