Build Instructions
==================

The Apache Lucy search engine library provides full-text search for dynamic
programming languages.  Currently it is available via Perl bindings.

To build Lucy with Perl bindings, chdir to the "perl" subdirectory underneath
the "lucy" top level and follow the instructions in the INSTALL document
there.

