Skip to content
This repository has been archived by the owner on Jul 16, 2018. It is now read-only.

nberth/apron4opam

Repository files navigation

# This file is part of the APRON Library, released under LGPL license, except
# files requiring the PPL library (in ppl and products subdirectories)

# Please read the COPYING file packaged in the distribution

NOTE: If you do not already have MLGMPIDL, you can use the apron-dist
directory in SVN repository.


The developpers are using INTEL/linux machines. Look at README.windows and
README.mac for additional specific informations.

PREREQUISITES
-------------

- C API (required)
  * GCC
  * GMP 5.x.y and MPFR 3.x.y or up
  * Optionally, 
    * PPL library (PARMA Polyhedra library, http://www.cs.unipr.it/ppl/)
      - patch to apply before compiling it (see ./ppl/README)
      - GMPXX (GMP compiled with configuration option --enable-cxx)

- OCaml API (optional)
  * MLGMPIDL (http://www.inrialpes.fr/pop-art/people/bjeannet/mlxxxidl-forge/mlgmpidl, SVN: svn://scm.gforge.inria.fr/svn/mlxxxidl/mlgmpidl/)
  * OCaml 3.11 or up (http://www.caml.org)
  * CamlIDL 1.05 (http://caml.inria.fr/camlidl)
  * perl
  * sed (GNU sed is no longer required, as we use perl scripts now)
- C++ API (optional)
  * GCC 4.1.2 or up
- Documentation (optional)
  * latex, dvipdf, makeinfo, texi2html, texi2dvi

CONFIGURATION and COMPILATION
-----------------------------

1. Copy Makefile.config.model into Makefile.config and edit the
   _PREFIX paths to suit your installation (you might want to set
   APRON_PREFIX, MLGMPIDL_PREFIX, CAMLIDL_DIR and CAML_DIR
   to some of your directory instead of the default /tmp).

2. 'make'
   'make install'

3. Other targets:

   make c (C and possibly C++ version)
   make ml (OCaml stuff)
   make doc (not useful for a normal user)
   make clean (clean things, including generated files)
   make install (installs in directories specified in Makefile.config)

ORGANISATION IN DIRECTORIES 
--------------------------- 

The main directory contain the following subpackages of the APRON
project:

apron:      apron interface, C version
apronxx:    apron interface, C++ version (compiled if HAS_CPP defined)
mlapronidl: apron interface, OCaml version (compiled if HAS_OCAML defined)

box:      interval library
octagons: octagon library
newpolka: convex polyhedra and linear equalities library
ppl:      wrapper to call the Parma Polyhedra Library from APRON under
	  GPL (instead of LGPL) license.  (compiled if HAS_PPL
	  defined)

products: - reduced product of NewPolka convex polyhedra and PPL
	    linear congruences (compiled if HAS_PPL defined)

examples: some examples (C and OCaml)
tests:    some (manual) tests

mlgmpidl: OCaml interface for the GMP and MPFR libraries, used by mlapronidl.
	  (compiled if HAS_OCAML defined)

num: manipulating "generic" numbers (used by intervals, newpolka,
     octagons, linearisation, etc...).

itv: built on top of num: intervals, interval linear expressions
     and constraints, linearisation