These are the instructions to compile Kiwix.

== GNU/Linux ==

GNU/Linux build uses shared libraries by default.
You will need the following dependencies to compile Kiwix for Linux
Debian/Ubuntu packages: build-essentia autoconf automake libtool \
libicu-dev libclucene-dev libxapian-dev libmicrohttpd-dev liblzma-dev

* ./autogen.sh to generate the ./configure file if not already
done.

* ./configure to prepare the compilation and check if all
  necessary libraries are installed. You may get more information by
  running ./configure --help

* make to compile kiwix

* make install to install it on the system

== Mac OSX (i386 only for now) ==

Mac OS build is close to the Linux one but it compile everything statically.
[warning] To build the Mac OS version you will have to install 
proprietary software which are free of charge.
You will also need to build on an Apple Mac computer.

* Install OSX 10.6.5+ (proprietary)
* Install XCode 3.2.5+ (proprietary) - 
  http://developer.apple.com/technologies/xcode.html (requires registration)
  http://download.kiwix.org/dev/xcode_3.2.5_and_ios_sdk_4.2_final.dmg
* Install XulRunner
  http://download.kiwix.org/dev/xulrunner-1.9.2.13.en-US.mac-pkg.dmg
* Install MacPorts - http://www.macports.org/install.php

* Configure Macports

* Install the following tools and libraries
sudo port install autogen +universal
sudo port install pkgconfig +universal
sudo port install wget +universal
sudo port install gmake +universal
sudo port install coreutils +universal
sudo port install libidl +universal
sudo port install autoconf213 +universal
sudo port install icu +universal

* short-circuit libtoolize which is a different tool on OSX.
sudo ln -s /opt/local/bin/glibtoolize /opt/local/bin/libtoolize

* set default target architecture by replacing gcc and g++ files
sudo mv /usr/bin/gcc /usr/bin/gcc.default
sudo mv /usr/bin/g++ /usr/bin/g++.default
sudo echo "/usr/bin/gcc-4.2 -arch i386 -m32 \"\$@\"" > /usr/bin/gcc
sudo echo "/usr/bin/g++-4.2 -arch i386 -m32 \"\$@\"" > /usr/bin/g++
sudo chmod +x /usr/bin/g{cc,++}
Alternatively, you can choose to append CC="gcc -arch i386 -m32" 
CXX="g++ -arch i386 -m32" to the configure command.

* ./autogen.sh to generate the ./configure script.

* ./configure --prefix=/opt/local
  to prepare the compilation and check if all
  necessary libraries are installed. You may get more information by
  running ./configure --help
  /opt/local is the path where you installed MacPorts (/opt/local is default)

* make in src/dependences to fetch dependencies.

* re-do ./configure script so it knows about new dependencies.

* make to compile kiwix

* make distmac to generate a complete dmg archive.

* Debugging tips:

- components file type can be either Mach-O dynamically linked shared library
  or Mach-O bundle but above instructions will create dynamic libraries.
- Shared Object (.so files on Linux) have .dylib extension on OSX.
- use dtruss to inspect program execution like strace.

== Windows ==

* You need now to install the free (as free beer) Microsoft Visual
  Studio express C++ compiler. You can download the installer here:
  "http://download.kiwix.org/dev/vcsetup.exe"

* To install it, run the self installer. Choose none of the optional
  features and install it in the default directory: 
  "c:\Program Files\Microsft Visual Studio 9.0\"

* If installed sucessfuly run one time VS to configure it and maybe
  register it (follow the instructions).

* You have to install a MinGW environnement. You have to download it
  here: "http://download.kiwix.org/dev/MozillaBuildSetup-1.5.1.exe" and
  install it in the default proposed directory "C:\mozilla-build".

* Go to "c:\mozilla-build" with the Windows explorer and start the
  script start-msvc9.bat. You have now an UNIX shell.

* Change the current directory by typing:
  > cd /c/mozilla-build/

* Check out the kiwix client code by typing:
  "svn co https://kiwix.svn.sourceforge.net/svnroot/kiwix/moulinkiwix"

* You need to install Perl. Download it here:
  "http://download.kiwix.org/dev/ActivePerl-5.10.1.1007-MSWin32-x86-291969.msi"
  and install it in the default directory "c:\Perl\"

* You have also to install gcc (for liblzma). You can download it
  here:
  "http://download.kiwix.org/dev/gcc-4.3.0-20080502-mingw32-alpha-bin.7z"
  ... and unzip it (with 7zip) in "c:\mozilla-build\msys"

* You have also to install GNU binutils. Please download it here:
  "http://download.kiwix.org/dev/binutils-2.20.1-2-mingw32-bin.tar.gz"
  ... and detar it in "c:\mozilla-build\msys"

* Now we will download, configurate and compile kiwix. 
  Run the following commands: 
  > cd /c/mozilla-build/moulinkiwix/ 
  > ./autogen.sh
  > ./configure 
  > make win


