Basic Installation
==================

These are generic installation instructions for Arena browser.

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 main directory of the package.
It also creates an `arena.h' file containing system-dependent definitions.
Finally, it creates a shell script named `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'). If at some point `config.cache' contains results you don't
want to keep, you may remove or edit it.

If you need to do unusual things to compile the package, please try to
figure out how `configure' could check whether or not to do them, and
mail diffs or instructions to `arena-developers@yggdrasil.com' so
they can be considered for the next release.

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.
If you do this, make sure you are using Autoconf version 2.12 or newer.

The simplest way to compile Arena is:

  1. `cd' to the directory containing the source code and type
     `./configure' to configure Arena for your system. If you're using
     `csh' on an old version of System V, you might need to type
     `sh ./configure' instead to prevent `csh' from trying to execute
     `configure' itself.

     Configure script has a bunch of command line options to control
     parameters manually. Type `./configure --help' to get the list.

     Running `configure' takes awhile.  While running, it prints some
     messages telling which features it is checking for.

     If `configure' won't find all the necessary stuff (e.g. "config.h"
     for libwww) the result makefile will probably fail to compile Arena,
     C compiler will produce a lot of parsing errors etc. So, please,
     try to assist `configure' to manage to find all the necessary things.

  2. Type `make' to compile Arena.

  3. Optionally, type `make tests' to run the Arena test suite, :)
     which isn't provided yet.

  4. Type `make install' to install `arena'. This will just copy
     arena binary to a standard directory (/usr/local/bin by default).

  5. Optional: type `make Xresources' to get Xresources file,
     then type `make install.Xresources' to copy Xresources file
     to .Xresources.Arena in your home directory.
     Use this file as template and edit it to fit your needs.
     Then (as usual) type `xrdb -merge ~/.Xresources.Arena' to load
     the file to X resources manager database.

You can remove the program binaries and object files from the source
code directory by typing `make clean'.  To also remove the files that
`configure' created (so you can compile Arena for a different kind of
computer), type `make distclean'.


Compilers and Options
=====================

Some systems require unusual options for compilation or linking that
the `configure' script does not know about.  You can give `configure'
initial values for variables by setting them in the environment.  Using
a Bourne-compatible shell, you can do that on the command line like
this:

     CC=c89 CFLAGS=-O6 LIBS=-lposix ./configure

On systems that have the `env' program, you can do it like this:

     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure

The configuration process uses GCC to build Arena if it is available.

You can also control auto-`configure'-ation process via command line
options. To get info on them, please type:

      ./configure --help


Compiling For Multiple Architectures
====================================

You can compile Arena for more than one kind of computer at the same
time, by placing the object files for each architecture in their own
directory. `cd' to the directory where you want the object files and
executables to go (e.g. /tmp/linux-gnu) and run the `configure' script
from the source directory. You may need to supply the `--srcdir=PATH'
argument to tell `configure' where the source files are. `configure'
automatically checks for the source code in the directory that `configure'
is in and in `..'.

If you have failed to compile according to these scheme, you can compile
Arena for one architecture at a time in the source code directory.
After you have installed Arena for one architecture, use `make distclean'
before reconfiguring for another architecture.


Installation Names
==================

By default, `make install' will install into `/usr/local/bin'.
You can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PATH', or directly `--bindir=PATH'.

You can specify separate installation prefixes for architecture-specific
files and architecture-independent files. If you give `configure'
the option `--exec-prefix=PATH', the package will use `PATH' as the prefix
for installing programs and libraries. Documentation and other data files
will still use the regular prefix.


Specifying the System Type
==========================

There may be some features `configure' can not figure out automatically,
but needs to determine by the type of host the package will run on.
Usually `configure' can figure that out, but if it prints a message
saying it can not guess the host type, give it the `--host=TYPE' option.
`TYPE' can either be a short name for the system type, such as `sun4',
or a canonical name with three fields:
      `CPU-COMPANY-SYSTEM' (e.g., `sparc-sun-sunos4.1.2').


Operation Controls
==================

`configure' recognizes the following options to control how it operates.

`--cache-file=FILE'
     Use and save the results of the tests in FILE instead of
     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
     debugging `configure'.

`--help'
     Print a summary of the options to `configure', and exit.

`--quiet'
`--silent'
`-q'
     Do not print messages saying which checks are being made.

`--srcdir=DIR'
     Look for the Arena source code in directory DIR.  Usually
     `configure' can determine that directory automatically.

`--version'
     Print the version of Autoconf used to generate the `configure'
     script, and exit.

`configure' also accepts some other, not widely used, boilerplate
options.


Optional Features
=================

The Arena `configure' has a number of `--with-PACKAGE=PATH' options,
where PACKAGE indicates a part of the external package, such as library.
Most of this options are intended for providing paths to the libraries,
rather than enabling/disabling them. Please be aware.

Here is a complete list of the `--with-*' options that the Arena
`configure' recognizes.

`--with-index'

      Choose wich the function to use: strchr() or index().

`--with-debug'

      Include debug stuff to the Arena binary.
      `configure' script and makefile will automatically enable it
      if CFLAGS environment (or make) variable contains any of the
      `-g', `-DDEBUG' or `-DARENA_DEBUG' flags.
      If you wish to disable debug stuff you should run
      `configure --without-debug' AND strip all the flags listed above
      from CFLAGS while running `configure' (or set stripped CFLAGS make
      variable explicitly via command line when running make).

`--with-applet'

      No, no, no! Don't use it! It's experimental, pre-pre-pre-alpha!
      And to say the truth, it doesn't enabled yet.

`--with-arenarc-dir=DIR'

      Specify a directory where Arena will look for default (system wide)
      configuration file (arenarc). Default is `/usr/local/share/Arena'.
      (Note: actually it's `${datadir}/Arena')

`--with-intl'

      Use libintl library for internationalization and localization.

`--with-locale-dir=DIR'

      Specify a directory prefix where Arena will look for localized messages
      file. Default is `/usr/local/share/locale'. Note that this a prefix,
      not a full path. A full path also has a locale-dependant postfix.

`--with-libwww=DIR'

      Specify the path to the W3C Reference Library distribution top directory
      (if you have one), if Arena fails to find it automatically.

`--with-libwww-libdir=DIR'

      Specify the path to the libwww.a (directory).

`--with-libwww-include=DIR'

      Specify the directory where libwww header files reside.

`--with-libwww-config-h-dir=DIR'

      Specify the directory where libwww configuration header file
      ("config.h") resides.

`--with-wais[=DIR]'

      Build in the WAIS engines support (freeWAIS based).
      DIR if present is treated as path to a freeWAIS distribution directory
      (client.a and wais.a libraries location is `freeWAIS-*/bin/').
      This option is supported now, but W3C Refernce Library appears to
      not support direct WAIS access at the moment.
      Anyway to compile Arena with direct WAIS access feature you should
      manage to compile libwww with direct WAIS access support beforehand.
      Hope, it's worth reading README.wais in the Auxiliary subdirectory.

 Note:
 `--with-libwww' flag has the lowest priority (among `--with-libwww-*' flags).

   Arena `configure' script searches the following directories for
 the W3C Reference Library distribution (pattern: `*libwww*'):
      ./Auxiliary/
      ./
      ./../
      ./../../
      ./../../../
      /tmp/
      $TMPDIR
 And variations and combinations of:
      usr
      lib
      src
      local
      share
 Please see the file configure.in for the exact list.

 A couple of advices:
   If you have a standard libwww distribution, you'ld better use --with-libwww.
   Alternatively you can provide symlink from the Arena top directory or ../
   to the directory where you have put libwww distribution.

   Please, report problems you have with the Arena autoconfiguration stuff
 to the Arena developers mailing list:
                     arena-developers@yggdrasil.com
 This stuff has been created not so long time ago and isn't stable.
 It is to be stresstested to become elaborate.


      QingLong   <qinglong@Yggdrasil.com>

