Hi Mick,
a while ago I managed the compilation of informixdb
'manually' without help of Makefiles or configure
scripts or distutils for Python-2.2.1.
Basically all you need is to compile dbi.c as well as
_informixdb.c and to link it to a shared library.
informixdb.py and _informixdb.so then has to be copied
to the proper places.
What you need as well is the help of th esql script
provided with the informix sdk and the information
provided in the lib/config/ folder of your Python
installation (used compiler switches, libraries
for linking ...).
Run:
esql -e -G -libs _informixdb.ec or
esql -e -G -thread -libs _informixdb.ec
to get a list of the informix libraries and objectfiles
needed for linking.
Of course you need to specify the path to the informix include files
and the path to the library files as well as the library files
for compilation and linking.
There are other issues with informixdb as well:
1) DBI 1-0 interface:
dates are limited to EPOCH (aka unix time) due
to limitations of the DBI-1.0 specification.
2) all Informix warnings raise an error in the
informixdb layer. In many cases this is not
wanted.
I can send you the patches I got from different
people/places.
Carl
cm********@gmx.de ms****@ieee.org (Mike S.) wrote in message news:<bc*************************@posting.google.c om>...
Well I managed to get the configure script to run:
./configure
loading cache ./config.cache
checking whether make sets ${MAKE}... (cached) yes
checking for python... (cached) /usr/bin/python
checking for --with-informix... /opt/informix
checking for esql... (cached) /opt/informix/bin/esql
checking for --enable-thread... no
checking for --enable-shared... yes
creating ./config.status
creating Makefile
creating ext/srcdir
creating ext/Setup
creating ext/Makefile
But got a ton of errors when trying step 5 in Robin's list:
esql _informixdb.c
_informixdb.ec:48:20: Python.h: No such file or directory
_informixdb.ec:49:24: longobject.h: No such file or directory
In file included from _informixdb.ec:50:
dbi.h:13: parse error before '*' token
dbi.h:14: parse error before '*' token
dbi.h:15: parse error before '*' token
dbi.h:18: parse error before '*' token
dbi.h:18: parse error before '*' token
dbi.h:18: warning: data definition has no type or storage class
dbi.h:19: parse error before '*' token
dbi.h:19: parse error before '*' token
dbi.h:19: warning: data definition has no type or storage class
dbi.h:20: parse error before '*' token
dbi.h:20: parse error before '*' token
dbi.h:20: warning: data definition has no type or storage class
dbi.h:21: parse error before '*' token
dbi.h:21: parse error before '*' token
dbi.h:21: warning: data definition has no type or storage class
dbi.h:35: parse error before '*' token
dbi.h:35: warning: data definition has no type or storage class
Make sense to anyone??
ms****@ieee.org (Mike S.) wrote in message news:<bc**************************@posting.google. com>... 2. Untar, run configure
Unfortunately, the trouble starts here at step 2. By any chance do
you have both python1.5 and python2.2 installed?
root@pe informixdb-1.3]# ./configure
loading cache ./config.cache
checking whether make sets ${MAKE}... (cached) yes
checking for python... (cached) /usr/bin/python
checking for --with-informix... /opt/informix
checking for esql... (cached) /opt/informix/bin/esql
checking for --enable-thread... no
checking for --enable-shared... yes
creating ./config.status
creating Makefile
creating ext/srcdir
creating ext/Setup
cp: cannot stat `/usr/lib/python1.5/config/Makefile.pre.in': No such
file or directory
creating ext/Makefile
make: ./Makefile.pre.in: No such file or directory
make: *** No rule to make target `./Makefile.pre.in'. Stop.
[root@pe informixdb-1.3]#
:
Robin Munn <rm***@pobox.com> wrote in message news:<sl******************@rmunnlfs.dyndns.org>... Mike S. <ms****@ieee.org> wrote:
> Hello,
>
> Has anyone had success compiling the informixdb-1.3 module under
> python 2.2? It seems the absense of makefile.pre.in in python 2.2
> causes the break under py2.2. Is there an easy way around this. I've
> heard rumors of a manual method, but have been unable to track down
> details. Any help is very much appreciated.
>
> Thanks in advance,
> Mike
Here's the step-by-step notes I wrote for myself when I had to do
exactly that back in May:
Steps in installing the informixdb module:
1. Download informixdb source from
http://starship.python.net/crew/sturner/informixdb.html
2. Untar, run configure
3. Edit ext/Makefile: change CFLAGS (line 100) to include
-I${INFORMIXDIR}/incl/esql
4. Cd into ext directory
5. Run "esql _informix.ec" to generate _informix.c file
6. Cd back into parent directory
7. Run make
8. Copy informixdb.py and ext/_informixdb.so into
/usr/lib/python2.2/site-packages/
I hope this helps. I did this install on a Red Hat machine that had the
Informix SDK installed, so I had the esql command available. If you
don't have esql available, then I'm not sure what you'll need to do.
Good luck!