LT XML Software Installation 
============================

Version 1.2 (February 2000)

Please observe the copyright notice in 00COPYRIGHT.

HOW TO INSTALL
==============

0) If you have got this far and are reading this file, then presumably
you have (uncompressed and) untarred the release file (ltxml-1.2.tar.gz)
into a directory ltxml-1.2.

1) Create a build directory which will contain temporary files (including
compiled objects) created during installation. This directory can be,
but need not be a subdirectory of the ltxml-1.2 directory.

2) CD to the build directory, and do the following steps in that directory.

3) Run the 'configure' program from the ltxml-1.2/XML directory, e.g.

     sh<2>: ../XML/configure

   if your build directory is a sub-directory of ltxml-1.2.

You can use the exec-prefix and prefix options to 'configure' if you
want the LT XML software to be installed in non-standard places.  If
you do, you will almost certainly need to set both, as exec-prefix
does not default from prefix.  Use "configure --help" to find out more
about configuration options if necessary.

LT XML is now able to use zlib to compress and decompress files
without forking a separate process, but will build and run without it.
If you have libz, and it's NOT in $(exec-prefix)/lib, then include

  --with-zlib=[root for lib/libz.a and include/zlib.h]

in your invocation of configure.

By default LT XML compiles in 8-bit mode, which gains some efficiency
at the expense of not handling full XML.  To build in 16-bit mode,
include

  --enable-multi-byte

in your invocation of configure.

4) Compile (see note on 'make' below)

	gmake all

This should compile everything without many warnings.

5) Test that LT XML works properly

	gmake test

6) Install LT XML

	gmake install

This puts:

Executable programs         into ${exec-prefix}/bin
C libraries                 into ${exec-prefix}/lib
LT XML data files           into ${exec-prefix}/lib/ltxml10
C include files (.h)        into ${prefix}/include/ltxml10

7) Check that ${exec-prefix}/bin is on your PATH variable

8) See 00README for examples of what you can do now. The Makefile in
the build/data directory also gives a number of examples of the use of
the LT XML programs and API.  lib/ltxml10/Makefile.usr is the template
you should use for your own applications.

9) To clean up the build directory

	gmake clean

(removes all except makefiles) or

	gmake distclean

to delete all the files in the build directory (which is quite safe
once you have installed LT XML correctly). 

COMPILING WITH DEBUGGING INFORMATION
====================================

By default LT XML is compiled without debug information.

To enable ordinary compiler debugging, for use with DBX or GDB, invoke
make with DEBUG=-g, e.g. 

	gmake DEBUG=-g all


NOTES
=====

* Configure

The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation.  It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions.  Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, a file
`config.cache' that saves the results of its tests to speed up
reconfiguring, and a file `config.log' containing compiler output
(useful mainly for debugging `configure').

The file `configure.in' is used to create `configure' by a program
called `autoconf'.  You only need `configure.in' if you want to change
it or regenerate `configure' using a newer version of `autoconf'.

* Editing Makefiles

If for any reason you want to edit the Makefiles, the correct way to
do this is to edit the corresponding Makefile.in files in the source
directory,  and then in the toplevel build directory, run the shell
script config.status, to create the Makefiles in the build directory.

* Make

Tested with GNU make (gmake), may still work with Solaris make, doesn't
work with BSD make.

* Perl

PERL (tested with versions 4.0 and 5.001) is used for the
'sgmlseg' tool (sentence segmenter), but things should fail gracefully
in its absence.

* C compiler

Tested with gcc (versions 2.6.3 and later) and SparcWorks cc, but
should work with other ANSI compilers.

* HTTP

If you are not connected to a network, or cannot reach the relevant
server, the final XML tests will fail for lack of access to an
external entity.
