SILC Runtime Toolkit 1.2 Beta 1
[runtime.git] / lib / doc / building.html
index 52ba44b75e0bbe6307aeffe97aae7f52d692a33f..88c83b46f66b421ad0298d9704a46409928cbf10 100644 (file)
@@ -1,11 +1,11 @@
 <big><b>Building the Toolkit</b></big>
 
 <br />&nbsp;<br />
-SILC Toolkit works on various platforms, such as on several Unix systems and 
-on Windows.  Building of the Toolkit on some platform may differ from the
-other.  This document describes how to build the Toolkit from the sources,
-to create linkable libraries and binaries, on all platforms the Toolkit
-support.
+SILC Runtime Toolkit works on various platforms, such as on several Unix 
+systems and on Windows.  Building of the Toolkit on some platform may 
+differ from the other.  This document describes how to build the Toolkit 
+from the sources, to create linkable libraries and binaries, on all 
+platforms the Toolkit support.
 
 <br />&nbsp;<br />
 The building instructions for all platforms are also included in the Toolkit
@@ -17,18 +17,14 @@ README.MACOSX for building on Mac OS X.
 <li><a href="#unix">Building on Unix & Linux</a><br />
 <li><a href="#windows">Building on Windows</a><br />
 <li><a href="#macosx">Building on Mac OS X</a>
+<li><a href="#symbian">Building on Symbian OS</a>
 
 <br />&nbsp;<br />&nbsp;<br />
 <b><a name="unix"></a>Building on Unix & Linux</b>
 
 <br />&nbsp;<br />
-Building the Toolkit on Unix will produce binaries of all libraries, and
-SILC Client and SILC Server.  The Toolkit package includes also Client and
-Server as an example applications, and they are compiled automatically.
-The libraries are compiled to provide staticly linkable libraries.  Two
-libraries are produced: libsilc.a and libsilcclient.a.  The libsilc.a includes
-everything else except the Client library.  The libsilcclient.a includes
-only the Client library.
+On Unix systems both statically and dynamically linkable libraries are 
+built by default.
 
 <br />&nbsp;<br />
 To build Toolkit on Unix systems, give commands:
@@ -60,25 +56,23 @@ this option when you are doing development with Toolkit.  It is helpful
 to enable run-time debugging.
 
 <br />&nbsp;<br />
-<tt>--with-gmp=PATH</tt>
+<tt>--with-iconv[=DIR]</tt>
 
 <br />&nbsp;<br />
-If you wish to use GMP library for arbitrary precision arithmetic
-library instead of using the MPI library included in the package, you can
-give the --with-gmp=PATH option to the `configure'.  The PATH is the path
-to the GMP library in your system.
+If your system doesn't provide iconv() function in its native libraries
+(usually libc) or if this function is broken (e.g. older Solaris systems),
+you may want to use libiconv instead.  The DIR is the upper path in your
+system which contains lib/ and include/ for libiconv (e.g. /usr/local).
 
 <br />&nbsp;<br />
-<tt>--without-irssi</tt><br />
-<tt>--without-silcd</tt>
+<tt>--without-pthreads</tt>
 
 <br />&nbsp;<br />
-By default the SILC Toolkit will also build the Irssi SILC client and
-the SILC Server which use the SILC Toolkit as well.  If you do not
-wish to compile these applications you can give --without-irssi to
-not compile Irssi SILC client (irssi/ directory) and/or --without-silcd
-to not compile SILC Server (silcd/ directory).  Other applications
-the Toolkit does not build automatically.
+If you do not want to compile the programs with POSIX multi-threads support
+you can give --without-pthreads option.  This will disable the SILC Thread
+API and SILC Mutex API.  Furthermore if SILC Thread API is used when this
+option is used, the routines work, but do not work in threads (are run
+in the calling process and can block the process).
 
 <br />&nbsp;<br />
 <tt>--disable-asm</tt>
@@ -89,16 +83,6 @@ package or does not want to use them, you can give the --disable-asm
 option to the `configure' script.  This will assure that assembler
 optimized code is not compiled in.
 
-<br />&nbsp;<br />
-<tt>--disable-threads</tt>
-
-<br />&nbsp;<br />
-If you do not want to compile the programs with multi threads support
-you can give --disable-threads option.  This will disable the SILC Thread
-API and SILC Mutex API.  Furthermore if SILC Thread API is used when this
-option is used, the routines work, but do not work in threads (are run
-in the calling process and can block the process).
-
 <br />&nbsp;<br />
 <tt>--enable-ipv6</tt>
 
@@ -107,6 +91,17 @@ The `configure' will attempt to check for IPv6 support in your system.
 However, if it fails, but you still want to compile in the IPv6 support
 you can give --enable-ipv6 option to force the IPv6 support.
 
+<br />&nbsp;<br />
+<tt>--disable-cpu-optimizations</tt>
+
+<br />&nbsp;<br />
+By default the configure script will attempt to detect the type of your 
+CPU and enable any features specific to your CPU that could optimize the 
+performance of the Toolkit.  If you are creating binary package that 
+should work on any CPU (and not only your CPU) you should diable these 
+optimizations.  If you compile it for yourself only, keeping the 
+optimizations enabled is recommended.
+
 <br />&nbsp;<br />
 After compilation you can install the Toolkit into your system by giving
 the command:
@@ -126,27 +121,12 @@ MinGW.  For these systems please refer to the README.WIN32 file in the
 Toolkit package.
 
 <br />&nbsp;<br />
-The Toolkit package includes ready MSVC++ Workspace files, that will 
+The Toolkit package includes ready MSVC++ Workspace files, that will
 automatically compile the Toolkit.  The MSVC++ workspace and project files
-resides in the win32/ subdirectory of the Toolkit package.  The `silc.dsw'
+resides in the win32/ subdirectory of the Toolkit package.  The `srt.dsw'
 file is the workspace file that automatically supports compiling the Toolkit
-and to generate the SILC Core DLL and SILC Client DLL libraries.
-
-<br />&nbsp;<br />
-The SILC Core DLL is named as libsilc and will generate libsilc.dll, and
-the SILC Client DLL is named as libsilcclient and will generate
-libsilcclient.dll.  Both of the projects also automatically generates
-libsilc.lib and libsilcclient.lib import libraries that may be used to
-link against a client application.
-
-<br />&nbsp;<br />
-Generally you do not need to do any specific settings to compile the
-Toolkit.  However, you must compile the libsilc before compiling the
-libsilclient, since the SILC Client DLL depends on the SILC Core DLL.
-You may compile the DLLs as either Release or Debug version.  Just select
-the preferred method of compilation.  The Debug version will compile the
-SILC Toolkit with run-time debugging support, which is recommended when
-doing development with the Toolkit.
+and to generate the SILC Runtime DLL (libsrt.dll).  You may also compile 
+debug version by selecteing the Debug compilation method.
 
 <br />&nbsp;<br />&nbsp;<br />
 <b><a name="macosx"></a>Building on Mac OS X</b>
@@ -171,14 +151,10 @@ command:
 <tt>./configure --help</tt>
 
 <br />&nbsp;<br />
-If you do not want to compile the applications, or they do not compile on
-your system, you can also choose to compile only the libraries, and skip
-all applications.  In this case, before giving the "make" command, go
-to the lib/ subdirectory, and give "make" command there:
+To compile, give:
 
 <br />&nbsp;<br />
 <tt>
-cd lib/<br />
 make
 </tt>
 
@@ -188,3 +164,36 @@ the command:
 
 <br />&nbsp;<br />
 <tt>make install</tt>
+
+<br />&nbsp;<br />&nbsp;<br />
+<b><a name="symbian"></a>Building on Symbian OS</b>
+
+<br />&nbsp;<br />
+The build environment for Symbian OS requires Carbide.c++ and MS Windows.
+
+<br />&nbsp;<br />
+Download the freely available Carbide.c++ from Nokia at
+<a href="http://forum.nokia.com">http://forum.nokia.com</a>.  The exact
+hyperlink location changes often, so it is not referenced here.  It is
+usually under "Tools and SDKs" link.
+
+<br />&nbsp;<br />
+After installation a web browser is opened automatically by the
+Carbide.c++ installer.  Follow its instructions by installing the Perl,
+CTags and the SDK.  Perl and the SDK are required, but CTags is
+optional and if necessary can be omitted.
+
+<br />&nbsp;<br />
+The Toolkit is generic C and C++ code and should work with any
+SDK.  If you don't have SDK already installed, install the latest
+version you can find.  The links to SDKs are found in the Carbide.c++
+instructions after installation.  If you already have SDK in your
+system, you should use that.
+
+<br />&nbsp;<br />
+After installation import the Toolkit project to Carbide.c++ from the
+symbian/ subdirectory in the Toolkit package.
+
+<br />&nbsp;<br />
+Please read the README.SYMBIAN from the SILC Runtime Toolkit package for 
+complete building instructions.