
Hello Basile.
I guess that the "specific README file" you are looking for is the README.configure that can be found in the distribution of the library.
Unfortunately, this does not describe (yet) the use of configuration options allowing for the activation (and population) of foreign language interfaces. The main reason is that the support for on-demand generation of foreign language interfaces is new to version 0.10, which is still under development. This is also the reason why this info is missing from the web site, which describes the latest release (0.9).
Anyway, you are right that this info should be present in CVS (even though "configure --help" mentions options --enable-interfaces and --enable-instantiations, it fails to explain how to properly use them) and we would like to thank you for reporting the problem. (Any further hint on ways to improve the library or its documentation will be appreciated.)
So, let me have a try at a brief explanation ...
As far as option "--enable-interfaces" is concerned, you basically got it right. As a side note, listing "cxx" is not needed, since C++ is the native language of the library.
You might also want to use option --enable-instantiations to require the generation of foreign language interfaces (for the languages specified in the other option) for a specific set of abstract domains. For instance, --enable-instantiations=Polyhedron@Grid will generate the interfaces for the domains of polyhedra (both closed and NNC) and grids. Currently, the default is to build the domain of polyhedra and the domain BD_Shape<int8_t> (as you might guess, this default was merely chosen for development/debugging purposes).
Regarding the installation problem you report, it seems to be a bug in the current makefiles: if things were correct, ppl_c.h should have been installed in the proper place. We will fix this problem asap.
I should better check, but I guess that you should be able to find in the includes subdir of the installation directory a file named "ppl_c_version.h". Maybe you can check for this in order to see if the C language interface was installed. Let me also mention that, after the library is successfully built, you should be able to run program `ppl-config', providing a lot of info regarding the configuration of the library (see the help). I guess that, when things will become stable, this will be the proper way to query the library capabilities.
Cheers, Enea Zaffanella.
Basile STARYNKEVITCH wrote:
Hello All,
I am still missing a specific README file or an HTML page explaining all the details of PPL configuration and compilation (ie all the traps possible at build time). I feel that PPL is more configurable than most plain GNU stuff, hence that some basic documentation about PPL configuration and compilation is useful, in particular to newscomers.
May I suggest to (at least) add something like:
PPL is usable from programs written in C, C++, Ocaml, Prolog. You'll need to pass the appropriate --enable-interfaces flag to its configure script.
to the "General Information on the PPL" page http://www.cs.unipr.it/ppl/Documentation/user/ in the Main Features section. or perhaps to add a "Building PPL" [sub-] section
(I had a hardware crash and I did lost my previous PPL configuration -but not much else than configuration files- and I had to try several times to find the right configuration to me)
with the ppl-0.10pre7 snapshot (or pre-release?) configured thru ./configure '--enable-interfaces=c,cxx,ocaml' '--sysconfdir=/etc/local' a make install does not install any ppl_c.h file, as I would expect. Is it normal or did I misunderstood something (probable)?
Actually, I need to test in a autconf file (gcc/configure.ac) the availability of the C interface to PPL.
Any ideas?
Regards.