Blame INSTALL

Packit 228f82
================
Packit 228f82
Installing Lasso
Packit 228f82
================
Packit 228f82
Packit 228f82
Lasso uses the GNU automake and autoconf to handle system dependency
Packit 228f82
checking.  It is developed and built locally on GNU/Linux (Debian) both
Packit 228f82
on x86 and PowerPC processors, but is also compiled via Debian
Packit 228f82
infrastructure on several other architectures.
Packit 228f82
Packit 228f82
Installing build dependencies
Packit 228f82
=============================
Packit 228f82
Packit 228f82
If you are building from git you need to install the autotools on your distribution.
Packit 228f82
Packit 228f82
Buid dependencies are:
Packit 228f82
Packit 228f82
 - libxml2
Packit 228f82
 - libxslt
Packit 228f82
 - libxmlsec
Packit 228f82
 - python development files
Packit 228f82
 - php5 development files
Packit 228f82
 - jdk
Packit 228f82
Packit 228f82
In all cases you need to install development packages for dependencies. On Debian 7.0 Wheezy:
Packit 228f82
Packit 228f82
    aptitude install libxml2-dev libxslt1-dev libxmlsec1-dev libxmlsec1-openssl \
Packit 228f82
      libglib2.0-dev python-all-dev fastjar php5-dev php5-cli python-lxml
Packit 228f82
Packit 228f82
Python bindings require the "six" library:
Packit 228f82
Packit 228f82
    pip install six
Packit 228f82
Packit 228f82
Basic Installation
Packit 228f82
==================
Packit 228f82
Packit 228f82
The 'configure' shell script attempts to guess correct values for
Packit 228f82
various system-dependent variables used during compilation.  It uses
Packit 228f82
those values to create a 'Makefile' in each directory of the package.
Packit 228f82
It may also create one or more '.h' files containing system-dependent
Packit 228f82
definitions.  Finally, it creates a shell script 'config.status' that
Packit 228f82
you can run in the future to recreate the current configuration, a file
Packit 228f82
'config.cache' that saves the results of its tests to speed up
Packit 228f82
reconfiguring, and a file 'config.log' containing compiler output
Packit 228f82
(useful mainly for debugging 'configure').
Packit 228f82
Packit 228f82
If you need to do unusual things to compile the package, please try
Packit 228f82
to figure out how 'configure' could check whether to do them, and mail
Packit 228f82
diffs or instructions to the address given in the README_ so they can
Packit 228f82
be considered for the next release.  If at some point 'config.cache'
Packit 228f82
contains results you don't want to keep, you may remove or edit it.
Packit 228f82
Packit 228f82
The file 'configure.in' is used to create 'configure' by a program
Packit 228f82
called 'autoconf'.  You only need 'configure.in' if you want to change
Packit 228f82
it or regenerate 'configure' using a newer version of 'autoconf'.
Packit 228f82
Packit 228f82
The simplest way to compile this package is:
Packit 228f82
Packit 228f82
  1. ``cd`` to the directory containing the package's source code and type
Packit 228f82
     ``./configure`` to configure the package for your system.  If you're
Packit 228f82
     using 'csh' on an old version of System V, you might need to type
Packit 228f82
     ``sh ./configure`` instead to prevent 'csh' from trying to execute
Packit 228f82
     'configure' itself.
Packit 228f82
Packit 228f82
     Running 'configure' takes awhile.  While running, it prints some
Packit 228f82
     messages telling which features it is checking for.
Packit 228f82
Packit 228f82
  2. Type ``make`` to compile the package.
Packit 228f82
Packit 228f82
  3. Optionally, type ``make check`` to run any self-tests that come with
Packit 228f82
     the package.
Packit 228f82
Packit 228f82
  4. Type ``make install`` to install the programs and any data files and
Packit 228f82
     documentation.
Packit 228f82
Packit 228f82
  5. You can remove the program binaries and object files from the
Packit 228f82
     source code directory by typing ``make clean``.  To also remove the
Packit 228f82
     files that 'configure' created (so you can compile the package for
Packit 228f82
     a different kind of computer), type ``make distclean``.  There is
Packit 228f82
     also a ``make maintainer-clean`` target, but that is intended mainly
Packit 228f82
     for the package's developers.  If you use it, you may have to get
Packit 228f82
     all sorts of other programs in order to regenerate files that came
Packit 228f82
     with the distribution.
Packit 228f82
Packit 228f82
Creating 'configure' Program
Packit 228f82
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Packit 228f82
Packit 228f82
If there is no 'configure' program, you can create it by running the
Packit 228f82
'autogen.sh' script, as long as you have the 'automake' and 'autoconf'
Packit 228f82
tools.  This is done by::
Packit 228f82
Packit 228f82
  ./autogen.sh
Packit 228f82
Packit 228f82
and you can also pass along arguments intended for 'configure' (see
Packit 228f82
below for what these are)::
Packit 228f82
Packit 228f82
  ./autogen.sh --prefix=/usr/local/somewhere
Packit 228f82
Packit 228f82
The 'automake' and 'autoconf' tools have many different versions and
Packit 228f82
at present development is being done with automake 1.8, autoconf 2.59
Packit 228f82
and libtool 1.5.6.  These are only needed when compiling from CVS sources.
Packit 228f82
'autogen.sh' enforces the requirements.
Packit 228f82
Packit 228f82
Compilers and Options
Packit 228f82
=====================
Packit 228f82
Packit 228f82
Some systems require unusual options for compilation or linking that
Packit 228f82
the 'configure' script does not know about.  You can give 'configure'
Packit 228f82
initial values for variables by setting them in the environment.  Using
Packit 228f82
a Bourne-compatible shell, you can do that on the command line like
Packit 228f82
this::
Packit 228f82
Packit 228f82
     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
Packit 228f82
Packit 228f82
Or on systems that have the 'env' program, you can do it like this::
Packit 228f82
Packit 228f82
     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
Packit 228f82
Packit 228f82
Compiling For Multiple Architectures
Packit 228f82
====================================
Packit 228f82
Packit 228f82
You can compile the package for more than one kind of computer at the
Packit 228f82
same time, by placing the object files for each architecture in their
Packit 228f82
own directory.  To do this, you must use a version of 'make' that
Packit 228f82
supports the 'VPATH' variable, such as GNU 'make'.  'cd' to the
Packit 228f82
directory where you want the object files and executables to go and run
Packit 228f82
the 'configure' script.  'configure' automatically checks for the
Packit 228f82
source code in the directory that 'configure' is in and in '..'.
Packit 228f82
Packit 228f82
If you have to use a 'make' that does not supports the 'VPATH'
Packit 228f82
variable, you have to compile the package for one architecture at a time
Packit 228f82
in the source code directory.  After you have installed the package for
Packit 228f82
one architecture, use 'make distclean' before reconfiguring for another
Packit 228f82
architecture.
Packit 228f82
Packit 228f82
Installation Names
Packit 228f82
==================
Packit 228f82
Packit 228f82
By default, 'make install' will install the package's files in
Packit 228f82
'/usr/local/bin', '/usr/local/man', etc.  You can specify an
Packit 228f82
installation prefix other than '/usr/local' by giving 'configure' the
Packit 228f82
option '--prefix=PATH'.
Packit 228f82
Packit 228f82
You can specify separate installation prefixes for
Packit 228f82
architecture-specific files and architecture-independent files.  If you
Packit 228f82
give 'configure' the option '--exec-prefix=PATH', the package will use
Packit 228f82
PATH as the prefix for installing programs and libraries.
Packit 228f82
Documentation and other data files will still use the regular prefix.
Packit 228f82
Packit 228f82
In addition, if you use an unusual directory layout you can give
Packit 228f82
options like '--bindir=PATH' to specify different values for particular
Packit 228f82
kinds of files.  Run 'configure --help' for a list of the directories
Packit 228f82
you can set and what kinds of files go in them.
Packit 228f82
Packit 228f82
You can cause programs to be installed with an extra prefix or suffix
Packit 228f82
on their names by giving 'configure' the option
Packit 228f82
'--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
Packit 228f82
Packit 228f82
Optional Features
Packit 228f82
=================
Packit 228f82
Packit 228f82
These package pays attention to '--enable-FEATURE' or '--disable-FEATURE'
Packit 228f82
options to 'configure', where FEATURE indicates an optional part of the
Packit 228f82
package.  It also pays attention to '--with-PACKAGE' options, where
Packit 228f82
PACKAGE is something like 'gnu-ld' or 'pic'.
Packit 228f82
Packit 228f82
'configure' recognizes the following FEATUREs:
Packit 228f82
Packit 228f82
debugging
Packit 228f82
    Display debugging messages in 'stderr'.
Packit 228f82
Packit 228f82
gtk-doc
Packit 228f82
    Build Lasso API reference manual using gtk-doc system (enabled by
Packit 228f82
    default if gtk-doc is installed).
Packit 228f82
Packit 228f82
tests
Packit 228f82
    Build unit test suite (enabled by default)
Packit 228f82
Packit 228f82
'configure' recognizes the following PACKAGEs:
Packit 228f82
Packit 228f82
.. coldfusion
Packit 228f82
       Build Lasso ColdFusion binding (enabled by default, use
Packit 228f82
       ``--with-coldfusion=no`` to disable).
Packit 228f82
Packit 228f82
java
Packit 228f82
    Build Lasso Java binding (enabled by default, use
Packit 228f82
    ``--with-java=no`` to disable).
Packit 228f82
Packit 228f82
.. php
Packit 228f82
       Build Lasso PHP binding (enabled by default, use
Packit 228f82
       ``--with-php=no`` to disable).
Packit 228f82
Packit 228f82
python
Packit 228f82
    Build Lasso Python binding (enabled by default, use
Packit 228f82
    ``--with-python=no`` to disable).
Packit 228f82
Packit 228f82
Packit 228f82
Specifying the System Type
Packit 228f82
==========================
Packit 228f82
Packit 228f82
There may be some features 'configure' can not figure out
Packit 228f82
automatically, but needs to determine by the type of host the package
Packit 228f82
will run on.  Usually 'configure' can figure that out, but if it prints
Packit 228f82
a message saying it can not guess the host type, give it the
Packit 228f82
'--host=TYPE' option.  TYPE can either be a short name for the system
Packit 228f82
type, such as 'sun4', or a canonical name with three fields:
Packit 228f82
Packit 228f82
     CPU-COMPANY-SYSTEM
Packit 228f82
Packit 228f82
See the file 'config.sub' for the possible values of each field.  If
Packit 228f82
'config.sub' isn't included in this package, then this package doesn't
Packit 228f82
need to know the host type.
Packit 228f82
Packit 228f82
If you are building compiler tools for cross-compiling, you can also
Packit 228f82
use the '--target=TYPE' option to select the type of system they will
Packit 228f82
produce code for and the '--build=TYPE' option to select the type of
Packit 228f82
system on which you are compiling the package.
Packit 228f82
Packit 228f82
Sharing Defaults
Packit 228f82
================
Packit 228f82
Packit 228f82
If you want to set default values for 'configure' scripts to share,
Packit 228f82
you can create a site shell script called 'config.site' that gives
Packit 228f82
default values for variables like 'CC', 'cache_file', and 'prefix'.
Packit 228f82
'configure' looks for 'PREFIX/share/config.site' if it exists, then
Packit 228f82
'PREFIX/etc/config.site' if it exists.  Or, you can set the
Packit 228f82
'CONFIG_SITE' environment variable to the location of the site script.
Packit 228f82
A warning: not all 'configure' scripts look for a site script.
Packit 228f82
Packit 228f82
Operation Controls
Packit 228f82
==================
Packit 228f82
Packit 228f82
'configure' recognizes the following options to control how it operates.
Packit 228f82
Packit 228f82
--cache-file=FILE
Packit 228f82
    Use and save the results of the tests in FILE instead of
Packit 228f82
    './config.cache'. Set FILE to '/dev/null' to disable caching, for
Packit 228f82
    debugging 'configure'.
Packit 228f82
Packit 228f82
--help
Packit 228f82
    Print a summary of the options to 'configure', and exit.
Packit 228f82
Packit 228f82
-q, --quiet, --silent
Packit 228f82
     Do not print messages saying which checks are being made. To
Packit 228f82
     suppress all normal output, redirect it to '/dev/null' (any error
Packit 228f82
     messages will still be shown).
Packit 228f82
Packit 228f82
--srcdir=DIR
Packit 228f82
     Look for the package's source code in directory DIR.  Usually
Packit 228f82
     'configure' can determine that directory automatically.
Packit 228f82
Packit 228f82
--version
Packit 228f82
     Print the version of Autoconf used to generate the 'configure'
Packit 228f82
     script, and exit.
Packit 228f82
Packit 228f82
'configure' also accepts some other, not widely useful, options.