Build instructions for the Apache Lucy C library
================================================

Clownfish dependency
--------------------

IMPORTANT: The Apache Lucy C library depends on the Clownfish object system
which must be built first. Please read this section, or your build will
probably FAIL.

Lucy needs the following Clownfish components:

    * The command-line Clownfish compiler 'cfc'.
    * The Clownfish header files of the Clownfish runtime.
    * The 'libcfish' shared library.

If you installed Clownfish to /usr/local or /usr on UNIX, no further action
should be required. If you installed Clownfish to an alternate location,
make sure to use the --clownfish-prefix configure option:

    $ ./configure --clownfish-prefix=clownfish-install-dir

It's also possible to build Lucy with an uninstalled Clownfish build from
the Clownfish source directory. To setup the required environment variables,
source the file devel/bin/setup_env.sh from the Clownfish source tree:

    $ source path_to_clownfish/devel/bin/setup_env.sh

Or, if you're on the Windows shell:

    $ path_to_clownfish/devel/bin/setup_env.bat

Building under UNIX and derivatives or Cygwin
---------------------------------------------

    $ ./configure
    $ make
    $ make test

Building under Windows
----------------------

You need MSVC or gcc as C compiler and nmake or mingw32-make as make utility.

When using cmd.exe configure with:

    $ configure.bat

When using the MSYS shell configure with:

    $ ./configure

When building with nmake run:

    $ nmake
    $ nmake test

When building with mingw32-make run:

    $ mingw32-make
    $ mingw32-make test

Configuration
-------------

    ./configure [ options ] [ -- cflags ]

Options include

    --enable-coverage
        Enable code coverage. Create HTML pages with coverage data using
        lcov by running "make coverage".
    --clownfish-prefix=path
        Specify an alternative location for Clownfish if it isn't installed
        in a system directory.

