XFLAIM README file
==================

NOTE: This README file covers platform-independant, and GNU/Linux and
Unix specific information. For information on building and installing
on Windows platforms, please see the README.W32 file.

Contents
--------
1. What is XFLAIM?
2. Building XFLAIM
3. Installing XFLAIM

What is XFLAIM?
---------------

XFLAIM is an acronym that stands for XML FLexible Adaptable Information 
Management. The XFLAIM library provides a very fast and easy to use embedded
XML DBMS system, which can be linked statically or dynamically into your
application. Essentially, XFLAIM is a version of the original FLAIM project
that is optimized for XML document storage.

The XFLAIM library comes from work done on internal projects at Novell, and
is currently used as part of the Bandit open source identity project sponsored
by Novell.

The XFLAIM package provides source code for the XFLAIM libraries in the "src" 
directory, and several useful utilities in the "util" directory:

  1. xflmdbcheck - checks the integrity of an xflaim database and indices
  2. xflmrebuild - rebuilds xflaim database index files
  3. xflmview - view the contents of an xflaim database
  4. xflmdbshell - perform DB operations from a shell-like command prompt

Additionally, the "util" directory supplies over 20 unit test programs that
individually test dozens of internal facets of the XFLAIM libraries. These
unit tests are run and executed you (the user) enters "make check" at the
command line on your host system.

Building XFLAIM
---------------

IMPORTANT: You must have installed Autoconf version 2.62, Automake version 
1.10 and Libtool version 2.2. These are the latest versions of these three
tools, as of this writing (July 2, 2008).

Building XFLAIM on Unix and Linux systems is as simple as with any other
Autotools-based project. If you're building from an SVN working directory,
enter the following command first, immediately after a clean check-out:

  $ autoreconf -i

This command will generate a configure script and Makefile.in templates. 
If you find yourself modifying the XFLAIM build system (eg., configure.ac
and Makefile.am files), then you may omit the "-i" option in later executions
of the autoreconf utility. 

If you're building from a tarball, you may skip the "autoreconf" step above
and move right to the following steps:

  $ ./configure
  $ make all check 

The XFLAIM build system provides all the default functionality provided by 
any Autotools build system, including VPATH build support. To build from
outside the source directory, enter the following commands (for example):

  $ mkdir build
  $ cd build
  $ ../configure
  $ make all check

XFLAIM depends on the FLAIM tool kit (ftk) library, which is another sub-
project in the flaim-projects repository. To build XFLAIM from the xflaim 
directory within the flaim-projects hierarchy, or from an xflaim tarball, 
you will need to do one of three things to make the FLAIM tool kit available
to the XFLAIM build system:

  1. Install the ftk project source in a sub-directory beneath xflaim.
  2. Build ftk separately and provide FTKLIB & FTKINC variables to configure.
  3. Install the ftk project libraries and header files on your build host.

Either one of these solutions will work fine. Building ftk as a sub-project
will provide more flexibility, but will cause the build to take longer as you
are effectively building the FLAIM tool kit along with XFLAIM.

If you choose the third option, the XFLAIM build system will automatically
locate and use the libflaimtk.la and flaimtk.h files on your system.
 
Installing XFLAIM
-----------------

To install XFLAIM libraries and header files, you may type the following 
command after building XFLAIM:

  $ sudo make install

The default prefix for the XFLAIM Autotools build system is "/usr/local".
If you wish to install in a different location, then use either one of the
following commands:

  $ ./configure PREFIX=/usr
  $ make all check
  $ sudo make install

or 

  $ ./configure
  $ make prefix=/usr 
  $ sudo make prefix=/usr install

If you have questions or feedback, please send mail to one of the two user-
writeable flaim mailing lists:

  1. flaim-users@forge.novell.com
  2. flaim-devel@forge.novell.com

The flaim-announce list may be subscribed to for occasional notifications of
updates to all of the FLAIM projects.

Enjoy!

