Compiling informxidb-1.3 on python2.2?

cmkl cmkleffner at gmx.de
Fri Sep 26 06:31:28 EDT 2003


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

cmkleffner at gmx.de

msajec at ieee.org (Mike S.) wrote in message news:<bc2ee265.0309251534.ca2bfcc at posting.google.com>...
> 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??
> 
> 
> msajec at ieee.org (Mike S.) wrote in message news:<bc2ee265.0309231414.5689a323 at 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 at 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 at pe informixdb-1.3]#
> > :
> > 
> > Robin Munn <rmunn at pobox.com> wrote in message news:<slrnbmvjva.t30.rmunn at rmunnlfs.dyndns.org>...
> > > Mike S. <msajec at 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!




More information about the Python-list mailing list