Add -fno-rtti to AM_CXXFLAGS
Split interface generator in generic and Python-specific part

To support bindings for other languages than Python in the
future, move the functions for querying information about
isl functions and types (e.g., takes(), is_subclass()) and
the struct isl_class to generator.h and generator.cc. The
generator routines for Python remain in python.h and python.cc.

Signed-off-by: Armin Größlinger <armin.groesslinger@uni-passau.de>
Add command line options for output directory and language

Add option "--output-dir" to specify where to put generated
files and "--language" to specify for which language
(currently only "python") to generate bindings.

Signed-off-by: Armin Größlinger <armin.groesslinger@uni-passau.de>
Extract enum types for interface generation

Extract enum types carrying an __isl_export annotation and pass
them to the interface generator.

Signed-off-by: Armin Größlinger <armin.groesslinger@uni-passau.de>
Use enum for ISL_FORMAT
Add support for enums in python generator

An isl enum type is represented by a python class with
static members for each enum value.

Signed-off-by: Armin Größlinger <armin.groesslinger@uni-passau.de>
Cannot extract type for
Comment is_isl_result_argument
Check "this" arguments and return types of constructors

Issue a warning when
- a function is declared as __isl_export but the first
  argument ("this") is not of the expected class type,
- a function is declared to be an __isl_constructor but
  the return type does not match the class the respective
  function has been assigned to.

Signed-off-by: Armin Größlinger <armin.groesslinger@uni-passau.de>
Use isl_printer_* functions to print objects

Generate bindings to isl_printer_* functions and use
the isl_printer functionality for printing objects
(instead of the *_to_str functions). A __str__ method
is only generated when a corresponding isl_printer_print_*
function is exported.

Since there is no isl_printer_copy function, isl_printer
arguments are handled specially: the 'ptr' attribute is
deleted when an isl_printer object is consumed by an
argument marked __isl_take.

Signed-off-by: Armin Größlinger <armin.groesslinger@uni-passau.de>
Add support for isl_bool annotation in generator
Support "named" constructors in Python bindings

Enhance the bindings generator such that it can generate
a static method (instead of constructor) for a function
marked with __isl_constructor. This allows us to treat
isl_(in)equality_alloc as "named" constructors of
isl_constraint. To do so, add a list of explicit
function -> isl_class mappings which deviate from the
usual naming convention isl_(class)_(method) scheme
(e.g., "isl_equality_alloc" is explicitly put in class
"isl_constraint").

Signed-off-by: Armin Größlinger <armin.groesslinger@uni-passau.de>
Add __isl_bool annotation macro
Add Java bindings generator and Scala interface helpers

Java bindings are generated in directory "java/src".
To make the use of these bindings from Scala more comfortable,
additional convenience methods (e.g., for automatic conversion
between isl_val and Scala's BigInt) are defined in
Conversions.scala.
Enable Java and Scala bindings generation

Detect javac and scalac binaries in configure and add an
option --with-jna=... to specify where Java Native Access
can be found.

Enhance Makefile.am to support Java/Scala bindings generation
and add "java" to language selection in extract_interface.cc .
Also add __isl_export annotations to include/isl/val.h since
the bindings have convenience methods for converting
between Val (isl_val) and Java's BigInteger/Scala's BigInt.

Signed-off-by: Armin Größlinger <armin.groesslinger@uni-passau.de>
Add annotations to some isl classes, functions and enums
Put a few __isl_bool annotations
Experimental __isl_inplace annotation
Additional __isl_export attributes

Needed by polly.

Signed-off-by: Andreas Simbuerger <simbuerg@fim.uni-passau.de>
Fix API issues

Signed-off-by: Andreas Simbuerger <simbuerg@fim.uni-passau.de>