<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
       "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  <title>Installation Guide</title>
</head>

<body>
<h1>Apache Savan/C Installation Guide</h1>

<p>This document guides you on how to install Savan/C with Axis2/C, and
run the server and client samples on Linux and Microsoft Windows operating
systems.</p>

<p>This release comes in two forms, source and binary. This document covers
both forms.</p>

<p>Please send your feedback to the developer mailing list: <a
href="mailto:axis-c-dev@ws.apache.org">axis-c-dev@ws.apache.org</a>
(Subscription details are available on the <a
href="http://ws.apache.org/sandesha/savan/c">Savan site</a>.) Please
remember to prefix the subject with [Axis2].</p>

<h2>Contents</h2>
<ul>
  <li><a href="#linux">Installing and Running on Linux</a>
    <ul>
      <li><a href="#linux_source">Using the Source Release</a></li>
      <li><a href="#linux_binary">Using the Binary Release</a></li>
    </ul>
  </li>
  <li><a href="#win">Installing and Running on Microsoft Windows (win32)</a>
    <ul>
      <li><a href="#win_source">Using the Source Release</a></li>
      <li><a href="#win_binary">Using the Binary Release</a></li>
    </ul>
  </li>
</ul>
<a id="linux"></a>

<h2>1. Installing and Running on Linux</h2>

<p>This can be done using binary or source distributions. (<a
href="http://ws.apache.org/savan/c/download.cgi">Download</a> the two
distributions)</p>

<a id="linux_source"></a>

<h3>1.1. Installing Savan/C Source Release on Linux</h3>

<p>This version of Savan/C depends on Axis2/C 1.1. <a href="http://ws.apache.org/axis2/c/download.cgi">Download Axis2/C</a> from  and
install. /p>
<ol>
    <li> Download Savan source distribution</li>
    <li> Extract the source distribution and go to extracted directory</li>
    <li> Run configure with AXIS2 include path.
        <pre>./configure --prefix=&lt;axis2c_deploy_path&gt; --enable-static=no --with-axis2=&lt;axis2c_deploy_path&gt; --enable-filtering=no/yes</pre>
    </li>
    <li>Run make and make install</li>
</ol>
    
This will install the Savan/C as a module in Axis2/C in &lt;axis2c_deploy_path&gt;/modules folder. The module
folder contains the Savan/C libraries and the module.xml file. It will also install libsavan_client.so savan client
library in &lt;axis2c_deploy_path&gt;/lib folder. This client library is needed for savan clients to be linked with.


<a id="linux_binary"></a>

<h3>1.2. Installing Savan/C Binary Release on Linux</h3>

<p>Savan/C binary distribution for Linux has the following folder structure. </p>
<pre>   
    Savan
        |
        + - modules/savan (savan module library and module.xml file)
        + - docs
        |
        + - samples
               |
               + - source files of samples in folders
        + - services (Contain Subscription Manager service and sample data source services)
        |
        + - include ( header files)
        + - bin
        + - bin/samples/savan ( sample executables)
        + - lib
</pre>
<p>
    To deploy Savan/C in Axis2/C running environment copy the modules/savan into &lt;axis2c_deploy_path&gt;/modules folder.
</p>
<a id="win"></a>

<h2>2. Installing and Running on Microsoft Windows</h2>

<p>This too can be done using binary or source distributions. (<a
href="http://ws.apache.org/savan/c/download.cgi">Download</a> the two
distributions.)</p>

<a id="win_source"></a>

<h3>2.1. Installing Savan/C Source Release on Windows</h3>
<ol>
    <li> You need to have unziped Axis2/C 1.0 release binary to some folder.</li>
    <li> On your cmd.exe cd to &lt;savan src&gt;\build\win32 <br/>
      Edit configure.in file with your binary locations. <br/>
    </li>
    <li> To set necessary environment variables on command line run vcvars32.bat file. </li>
    <li> Run nmake dist command on command line. This will build the Savan/C binary and samples to a directory savan in &lt;savan src&gt;\build\savan. </li>
</ol>

<a id="bin_binaries"></a>

<h3>2. 2. Installing Savan/C Binary Release on Windows</h3>

<p>Savan/C binary distribution will have following directory structure. </p>
<pre>
    Savan
        |
        + - Savan (savan module dll and module.xml file)
        |
        + - samples
               |
               + - bin 
               |
               + - source files of samples in folders
        |
        + - include ( header files)

    </pre>
    <ol>    
    <li> Copy Savan directory ( containing savan dll and module.xml ) to &lt;AXIS2C_HOME&gt;\modules directory.</li>
    <li> Copy axis2.xml file in Savan directory to &lt;AXIS2C_HOME&gt; </li>
    </ol>
    <p>
    Now you should be able to run the samples.
    </p>

<h3>Notes</h3>
<ol>
<li>
        Savan/C has a persistent storage mechanism for storing subscriber information and data source information. 
        This is implemented using Sqlite embeded database<br/>
        If you use Axis2/C Apache2 module instead of simple_axis2_server make 
        sure that Apache2 user can access the sqlite database file savan_db. <br/>

</li>
<li>
       Savan/C module is installed into &lt;axis2c_deploy_path&gt;/modules/savanc directory. The installed module contain
       libsavan.so, module.xml. The sample clients are installed into &lt;axis2c_deploy_path&gt;/bin/samples/savan
       directory. Sample services are installed into &lt;axis2c_deploy_path&gt;/services directory.

</li>
</ol>

</body>
</html>
