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