QuantLib autoconfiscation

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

QuantLib autoconfiscation

enrico.sirola-3
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all,
I committed the changes I made to autoconfiscate QuantLib. Basically,
I added some Makefile.am, the configure.in and few changes in the
qldefines.h
library header. The library (with these changes) is known to compile
on
g++ 2.95.2 on Debian GNU/Linux 2.2 and on cygwin g++ 2.95.2 on NT4.0
Actually typing "./updateproject; ./configure; make; make install;"
you (should)
build the static and shared libraries, while with "make python" you
generate the python wrapper. You have to intall automake, autoconf
and libtool to build
the configure script.

Python module:
to compile and install the python module too, you have to install the
library and have the distutils python package installed on your
system.
It comes with Python 2.0 and is available for Python 1.5.
Type these commands to build the module (on a sh-like shell):

$ cd Python
$ python setup.py build
$ python setup.py install
$ cd Tests
$ for i in *.py ; do python $i ; done; (to run all the tests)

known problems/missing features:
* real python support. The python module isn't generated directly by
the
  configure-generated Makefiles
* docs target.
* the build system compiles the library with a -DHAVE_CONFIG_H flag
  on command line enabling the use the set of macros defined in
  Include/config.h (look at the structure of qldefines.h); when you
want
  to link a program you include /<prefix-dir>/QuantLib/qldefines.h,
but your
  compiler doesn't define HAVE_CONFIG_H, so you would use the
non-autoconfiscated
  part of the header. To make sure that the library user uses the
autoconfiscated
  part of the header, after installing qldefines.h I run a little sed
oneliner on
  it to change HAVE_CONFIG_H in QL_HAVE_CONFIG_H and defining
QL_HAVE_CONFIG_H at
  the beginning of the file. I'm not sure if this is a wise solution,
but it seems
  to work. Any alternative ideas?
* I've just read that automake 1.4b (released today) supports python!
  I think we should use its new features in the future.
* python module problem on cygwin: the default compiler for distutils
is VC++
  so you can't use the cygwin-g++ generated library to link the
modules. There
  are some hints on the web to use cygwin compiler with distutils,
but you
  need a cygwin-built python, so it doesn't seem very appealing
(anyway, let
  me know your opinion)

Many thanks to David Binderman, Bernd Wuebben and Peter Schmitteckert
who
helped/contributed some patches.
Please take a look at the files and send me some feedback
Cheers,
Enrico

-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 6.5.8 for non-commercial use <http://www.pgp.com>

iQA/AwUBOlwlB5jf7IY3f+B/EQIMpwCfZhW5L34jQXsfW+z4U1MRSl8KU/UAnjId
WyiIwZmmSpMQ0CIkxBc91qQ7
=MRWt
-----END PGP SIGNATURE-----