<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-a" /> <meta http-equiv="Content-Language" content="en" /> <meta name="description" content="SILC Secure Internet Live Conferencing" /> <meta name="keywords" content="SILC, secure, chat, protocol, cipher, encrypt, SKE" /> <meta content="INDEX, FOLLOW" name="ROBOTS" /> <style type="text/css"> <!-- body { color: #000000; background: #f0f0f0; font-family: Helvetica, Arial, Sans-serif; } a:link { text-decoration: none; color: #2f488f; } a:visited { text-decoration: none;color: #2f488f; } a:active { text-decoration: none; color: #2f488f; } --> </style> </head> <body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0"> <table border="0" cellspacing="0" cellpadding="6" width="100%"> <tr valign="top" bgcolor="#dddddd"> <td><small>Copyright © 2001 - 2007 SILC Project<br /> <a href="http://silcnet.org">SILC Project Website</a></small></td> <td align="right"><small> <a href="index.html">SILC Toolkit Reference Manual</a><br /> <a href="toolkit_index.html">Index</a></small></td> </small></td> </tr> </table> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr bgcolor="#444444"><td><img src="space.gif" width="1" height="1"border="0" alt="" ></td></tr> </table> <table cellpadding="0" cellspacing="0" border="0"> <tr valign="top"> <td width="200" bgcolor="#f0f0f0"> <img src="space.gif" width="1" height="1" border="0" alt=""> <table width="100%" cellpadding="2" cellspacing="2" border="0"> <tr valign="top"><td> <br /> <small> <!-- Template file for the big index that appears in the Toolkit reference manual on the left side. With this file it is possible to add other than automatically generated links to that list. --> <a href="index.html"><img src="box.gif" border="0" alt="">SILC Toolkit Reference Manual</a><br /> <a href=silcvcardlib.html><img src=box.gif border=0 alt=>SILC VCard Library</a><br /> <a href=silcvcard.html><img src=box2.gif border=0 alt=>SILC VCard Interface</a><br /> <a href=silccryptlib.html><img src=box.gif border=0 alt=>SILC Crypto Library</a><br /> <a href=silcrng_intro.html><img src=box2.gif border=0 alt=>Introduction to SILC RNG</a><br /> <a href=silcrng.html><img src=box2.gif border=0 alt=>SILC RNG Interface</a><br /> <a href=silccipher.html><img src=box2.gif border=0 alt=>SILC Cipher API</a><br /> <a href=silcpkcs.html><img src=box2.gif border=0 alt=>SILC PKCS API</a><br /> <a href=silcpk.html><img src=box2.gif border=0 alt=>SILC Public Key API</a><br /> <a href=silcpkcs1.html><img src=box2.gif border=0 alt=>SILC PKCS #1 API</a><br /> <a href=silchash.html><img src=box2.gif border=0 alt=>SILC Hash Interface</a><br /> <a href=silchmac.html><img src=box2.gif border=0 alt=>SILC HMAC Interface</a><br /> <a href=silcclientlib.html><img src=box.gif border=0 alt=>SILC Client Library</a><br /> <a href=silcclient_using.html><img src=box2.gif border=0 alt=>Using SILC Client Library Tutorial</a><br /> <a href=command_reply_args.html><img src=box2.gif border=0 alt=>Arguments for <b>command_reply</b> Client Operation</a><br /> <a href=silcstatus_args.html><img src=box2.gif border=0 alt=>SilcStatus Error Arguments in <b>command_reply</b> Client Operation</a><br /> <a href=notifyargs.html><img src=box2.gif border=0 alt=>Arguments for <b>notify</b> Client Operation</a><br /> <a href=silcclient_unicode.html><img src=box2.gif border=0 alt=>Unicode and UTF-8 Strings in Client Library</a><br /> <a href=silcclient.html><img src=box2.gif border=0 alt=>Client Library Interface Reference</a><br /> <a href=silcclient_entry.html><img src=box2.gif border=0 alt=>Client Entry Interface Reference</a><br /> <a href=silcmathlib.html><img src=box.gif border=0 alt=>SILC Math Library</a><br /> <a href=silcmp.html><img src=box2.gif border=0 alt=>SILC MP Interface</a><br /> <a href=silcmath.html><img src=box2.gif border=0 alt=>SILC Math Interface</a><br /> <a href=silcaputillib.html><img src=box.gif border=0 alt=>SILC Application Utility Library</a><br /> <a href=silcapputil.html><img src=box2.gif border=0 alt=>SILC Application Utilities</a><br /> <a href=silcidcache.html><img src=box2.gif border=0 alt=>SILC ID Cache Interface</a><br /> <a href=silcskrlib.html><img src=box.gif border=0 alt=>SILC Key Repository Library</a><br /> <a href=silcskr.html><img src=box2.gif border=0 alt=>SILC SKR Interface</a><br /> <a href=silcasn1lib.html><img src=box.gif border=0 alt=>SILC ASN.1 Library</a><br /> <a href=silcasn1.html><img src=box2.gif border=0 alt=>SILC ASN.1 Interface</a><br /> <a href=silcber.html><img src=box2.gif border=0 alt=>SILC BER interface</a><br /> <a href=silcskelib.html><img src=box.gif border=0 alt=>SILC Key Exchange Library</a><br /> <a href=silcske.html><img src=box2.gif border=0 alt=>SILC SKE Interface</a><br /> <a href=silcconnauth.html><img src=box2.gif border=0 alt=>SILC Connection Authentication Interface</a><br /> <a href=silcsftplib.html><img src=box.gif border=0 alt=>SILC SFTP Library</a><br /> <a href=silcsftp.html><img src=box2.gif border=0 alt=>SILC SFTP Interface</a><br /> <a href=silcsftp_fs.html><img src=box2.gif border=0 alt=>SFTP Filesystems Interface</a><br /> <a href=silccorelib.html><img src=box.gif border=0 alt=>SILC Core Library</a><br /> <a href=silcauth.html><img src=box2.gif border=0 alt=>SILC Authentication Interface</a><br /> <a href=silcmessage.html><img src=box2.gif border=0 alt=>SILC Message Interface</a><br /> <a href=silcchannel.html><img src=box2.gif border=0 alt=>SILC Channel Interface</a><br /> <a href=silccommand.html><img src=box2.gif border=0 alt=>SILC Command Interface</a><br /> <a href=silcnotify.html><img src=box2.gif border=0 alt=>SILC Notify Interface</a><br /> <a href=silcstatus.html><img src=box2.gif border=0 alt=>SILC Status Types</a><br /> <a href=silcmode.html><img src=box2.gif border=0 alt=>SILC Modes</a><br /> <a href=silcid.html><img src=box2.gif border=0 alt=>SILC ID Interface</a><br /> <a href=silcargument.html><img src=box2.gif border=0 alt=>SILC Argument Interface</a><br /> <a href=silcattrs.html><img src=box2.gif border=0 alt=>SILC Attributes Interface</a><br /> <a href=silcpacket.html><img src=box2.gif border=0 alt=>Packet Engine Interface</a><br /> <a href=silcpubkey.html><img src=box2.gif border=0 alt=>SILC Public Key Payload Interface</a><br /> <a href=silcutillib.html><img src=box.gif border=0 alt=>SILC Utility Library</a><br /> <a href=silctypes.html><img src=box2.gif border=0 alt=>Basic Types and Definitions</a><br /> <a href=silcbuffer.html><img src=box2.gif border=0 alt=>Data Buffer Interface</a><br /> <a href=silcbuffmt.html><img src=box2.gif border=0 alt=>Data Buffer Format Interface</a><br /> <a href=silchashtable.html><img src=box2.gif border=0 alt=>Hash Table Interface</a><br /> <a href=silcmemory.html><img src=box2.gif border=0 alt=>Memory Allocation Interface</a><br /> <a href=silcstack.html><img src=box2.gif border=0 alt=>Data Stack (memory pool) Interface</a><br /> <a href=silcfsm.html><img src=box2.gif border=0 alt=>Finite State Machine Interface</a><br /> <a href=silcthread.html><img src=box2.gif border=0 alt=>Thread Interface</a><br /> <a href=silcmutex.html><img src=box2.gif border=0 alt=>Mutual Exclusion Lock Interface</a><br /> <a href=silccond.html><img src=box2.gif border=0 alt=>Condition Variable Interface</a><br /> <a href=silcatomic.html><img src=box2.gif border=0 alt=>Atomic Operations Interface</a><br /> <a href=silcnet.html><img src=box2.gif border=0 alt=>Network (TCP and UDP) Interface</a><br /> <a href=silcschedule.html><img src=box2.gif border=0 alt=>Scheduler Interface</a><br /> <a href=silcasync.html><img src=box2.gif border=0 alt=>Asynchronous Operation Interface</a><br /> <a href=silcstream.html><img src=box2.gif border=0 alt=>Abstract Stream Interface</a><br /> <a href=silcsocketstream.html><img src=box2.gif border=0 alt=>Socket Stream Interface</a><br /> <a href=silcfdstream.html><img src=box2.gif border=0 alt=>File Descriptor Stream Interface</a><br /> <a href=silcfileutil.html><img src=box2.gif border=0 alt=>File Utility Functions</a><br /> <a href=silcstrutil.html><img src=box2.gif border=0 alt=>String Utility Interface</a><br /> <a href=silcsnprintf.html><img src=box2.gif border=0 alt=>Snprintf Interface</a><br /> <a href=silcutf8.html><img src=box2.gif border=0 alt=>UTF-8 String Interface</a><br /> <a href=silcstringprep.html><img src=box2.gif border=0 alt=>Stringprep Interface</a><br /> <a href=silcutil.html><img src=box2.gif border=0 alt=>Utility Functions</a><br /> <a href=silclist.html><img src=box2.gif border=0 alt=>List Interface</a><br /> <a href=silcdlist.html><img src=box2.gif border=0 alt=>Dynamic List Interface</a><br /> <a href=silcmime.html><img src=box2.gif border=0 alt=>MIME Interface</a><br /> <a href=silctime.html><img src=box2.gif border=0 alt=>Time Utility Functions</a><br /> <a href=silclog.html><img src=box2.gif border=0 alt=>Logging Interface</a><br /> <a href=silcconfig.html><img src=box2.gif border=0 alt=>Config File Interface</a><br /> <a href=silchttplib.html><img src=box.gif border=0 alt=>SILC HTTP Library</a><br /> <a href=silchttpserver.html><img src=box2.gif border=0 alt=>SILC HTTP Server Interface</a><br /> <a href=silchttpphp.html><img src=box2.gif border=0 alt=>SILC HTTP PHP Translator</a><br /> <br /> <b>Resource Links</b> <br /> <a href="http://silcnet.org"><img src="box.gif" border="0" alt="">SILC Project Website</a><br /> <a href="http://silcnet.org/support/documentation/"><img src="box.gif" border="0" alt="">SILC Protocol Documentation</a><br /> <a href="http://silcnet.org/support/documentation/wp/"><img src="box.gif" border="0" alt="">SILC White Paper</a><br /> <a href="http://silcnet.org/support/faq/"><img src="box.gif" border="0" alt="">SILC FAQs</a><br /> </small> <br /><br /><br /><br /> </td></tr> </table> </td> <td bgcolor="#cccccc" background="dot.gif"> <img src="space.gif" width="1" height="1" border="0" alt=""></td> <td width="720" bgcolor="#ffffff"> <img src="space.gif" width="1" height="1" border="0" alt=""> <table cellpadding="2" cellspacing="6" width="100%"> <tr><td valign="top"> <br /> <big><b>Building the Toolkit</b></big> <br /> <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. <br /> <br /> The building instructions for all platforms are also included in the Toolkit package. Please refer to the INSTALL file for general building instructions for Unix systems, README.WIN32 for building on Windows systems, and README.MACOSX for building on Mac OS X. <br /> <br /> <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 /> <br /> <br /> <b><a name="unix"></a>Building on Unix & Linux</b> <br /> <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. <br /> <br /> To build Toolkit on Unix systems, give commands: <br /> <br /> <tt> ./configure<br /> make </tt> <br /> <br /> On some systems you may need to give "gmake" command instead of "make". The ./configure can take several options as arguments. To see them all give command: <br /> <br /> <tt>./configure --help</tt> <br /> <br /> The most important configuration options you may consider to use are: <br /> <br /> <tt>--enable-debug</tt> <br /> <br /> If you would like to enable the debugging for the compiled binaries you can give this option to the `configure'. It is recommended to use this option when you are doing development with Toolkit. It is helpful to enable run-time debugging. <br /> <br /> <tt>--with-gmp[=DIR]</tt> <br /> <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[=DIR] option to the `configure'. The DIR is the upper path in your system which contains lib/ and include/ for GMP library. <br /> <br /> <tt>--with-iconv[=DIR]</tt> <br /> <br /> 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 /> <br /> <tt>--without-pthreads</tt> <br /> <br /> 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 /> <br /> <tt>--disable-asm</tt> <br /> <br /> If you have trouble compiling the assembler optimized code in the 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 /> <br /> <tt>--enable-ipv6</tt> <br /> <br /> 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 /> <br /> After compilation you can install the Toolkit into your system by giving the command: <br /> <br /> <tt>make install</tt> <br /> <br /> <br /> <b><a name="windows"></a>Building on Windows</b> <br /> <br /> The Toolkit can be compiled several different ways on Windows. However, this document describes the method to build the Toolkit to produce native Win32 binaries. The Toolkit package can also be compiled on Cygwin and MinGW. For these systems please refer to the README.WIN32 file in the Toolkit package. <br /> <br /> 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' file is the workspace file that automatically supports compiling the Toolkit and to generate the SILC Core DLL and SILC Client DLL libraries. <br /> <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 /> <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. <br /> <br /> <br /> <b><a name="macosx"></a>Building on Mac OS X</b> <br /> <br /> Building the Toolkit on Mac OS X is almost identical on compiling on Unix system. The reason for this is that the Mac OS X is Unix based operating system. To build the Toolkit on Mac OS X, give the following commands: <br /> <br /> <tt> setenv CFLAGS -no-cpp-precomp<br /> ./configure powerpc<br /> make </tt> <br /> <br /> The ./configure can take several options as arguments. To see them all give command: <br /> <br /> <tt>./configure --help</tt> <br /> <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: <br /> <br /> <tt> cd lib/<br /> make </tt> <br /> <br /> After compilation you can install the Toolkit into your system by giving the command: <br /> <br /> <tt>make install</tt> <br /> <br /> <br /> <b><a name="symbian"></a>Building on Symbian OS</b> <br /> <br /> The build environment for Symbian OS requires Carbide.c++ and MS Windows. <br /> <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 /> <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 /> <br /> The SILC 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 /> <br /> After installation import the SILC Toolkit project to Carbide.c++ from the symbian/ subdirectory in the SILC Toolkit package. <br /> <br /> Please read the README.SYMBIAN from the SILC Toolkit package for complete building instructions. <br /><br /><br /><br /> </td></tr> </table> </td> <td bgcolor="#cccccc" background="dot.gif"> <img src="space.gif" width="1" height="1" border="0" alt=""></td> <td width="180" bgcolor="#f0f0f0"> <img src="space.gif" width="1" height="1" border="0" alt=""> <table width="100%" cellpadding="4" cellspacing="0"> <tr valign="top"><td> <br /> <font face="Helvetica,Arial,Sans-serif" size="1"> </font> <br /><br /><br /><br /> </td></tr> </table> </td> </tr> </table> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr bgcolor="#444444"><td><img src="space.gif" width="1" height="1"border="0" alt="" ></td></tr> </table> <table border="0" cellspacing="0" cellpadding="6" width="100%"> <tr valign="top" bgcolor="#dddddd"> <td><small>Copyright © 2001 - 2007 SILC Project<br /> <a href="http://silcnet.org">SILC Project Website</a></small></td> <td align="right"><small> <a href="index.html">SILC Toolkit Reference Manual</a><br /> <a href="toolkit_index.html">Index</a></small></td> </small></td> </tr> </table> </body> </html>