Posted by
enrico.sirola-3 on
URL: http://quantlib.414.s1.nabble.com/QuantLib-autoconfiscation-tp1675.html
-----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-----