Hi Andi.
I've tried again to make PyLucene on intel OS X 10.4.7.
Here's what I did:
1. Download sources for gcc-4.0.2
2. Patch these with http
://gcc.gnu.org/ml/java/2006-05/msg00151.html
3. Build and install gcc-4.0.2
4. Try to build PyLucene with the following Makefile block
# Mac OS X (Darwin with gcj 4.0.2 and libgcj
dynamically linked)
PREFIX=/usr/local
PREFIX_FRAMEWORKS=/Library/Frameworks
PREFIX_PYTHON=$(PREFIX_FRAMEWORKS)/Python.framework/Versions
/$(PYTHON_VER)
GCJ_HOME=/usr/local/gcc-4.0.2
GCJ_LIBDIR=$(GCJ_HOME)/lib
GCJ_STATIC=0
LIB_INSTALL=libgcj.6.dylib libstdc++.6.dylib
libgcc_s.1.0.dylib
DB=$(PYLUCENE)/db-$(DB_VER)
PREFIX_DB=/usr/local/BerkeleyDB.$(DB_LIB_VER)
ANT=ant
PYTHON=$(PREFIX_PYTHON)/bin/python
I still get this error:
/usr/local/gcc-4.0.2/bin/g++ -c -o release/lucene.o -O2
-DPYLUCENE_VER=""2.0.0-2""
-DLUCENE_VER=""2.0.0-434148""
-D_WITH_DB_DIRECTORY=1
-DDB_LIB_VER=""4.4"" -DDB_VER=44
-I/usr/local/BerkeleyDB.4.4/include
-I/Users/terry/s/svn/PyLucene/trunk/db-4.4.20
-I/Users/terry/s/svn/PyLucene/trunk/db-4.4.20/build_unix
-Ilucene-java-2.0.0-434148/build/classes/java
-Ilucene-java-2.0.0-434148/build/contrib/highlighter/classes
/java
-Ilucene-java-2.0.0-434148/build/contrib/snowball/classes/ja
va
-Ilucene-java-2.0.0-434148/build/contrib/analyzers/classes/j
ava
-Ilucene-java-2.0.0-434148/build/contrib/regex/classes/java
-Irelease/classes
-Ilucene-java-2.0.0-434148/build/contrib/db/bdb/classes/java
-I/Library/Frameworks/Python.framework/Versions/2.4/Headers
-I/usr/local/gcc-4.0.2/include lucene.cpp
/usr/local/BerkeleyDB.4.4/include/db.h:1376: error:
'u_int' does not name a type
/usr/local/BerkeleyDB.4.4/include/db.h:1742: error:
'u_int' does not name a type
/usr/local/BerkeleyDB.4.4/include/db.h:1930: error:
'u_int' does not name a type
/usr/local/BerkeleyDB.4.4/include/db.h:1931: error:
'u_int' does not name a type
/usr/local/BerkeleyDB.4.4/include/db.h:1951: error:
'u_int' does not name a type
/usr/local/BerkeleyDB.4.4/include/db.h:2016: error:
'u_int' does not name a type
/usr/local/BerkeleyDB.4.4/include/db.h:2063: error: ISO
C++ forbids declaration of 'u_long' with no type
/usr/local/BerkeleyDB.4.4/include/db.h:2063: error:
expected ';' before '*' token
/usr/local/BerkeleyDB.4.4/include/db.h:2399: error:
expected primary-expression before 'int'
make: *** [release/lucene.o] Error 1
To try to make sure there's no problem with the DB header
files, I then
rebuild DB 4.4.20 with gcc-4.0.2:
5. rm -fr /usr/local/BerkeleyDB4.4
6. Reconfigure DB:
../dist/configure CC=/usr/local/gcc-4.0.2/bin/gcc
CXX=/usr/local/gcc-4.0.2/bin/g++
{CXX,}CPP=/usr/local/gcc-4.0.2/bin/cpp
and install the result.
7. Remove & re-checkout PyLucene svn trunk
8. Uncomment gcc-4.0.2 block in the PyLucene Makefile
9. make all
And I wind up with the same
/usr/local/BerkeleyDB.4.4/include/db.h error as
above.
u_int is defined in /usr/include/sys/types.h, but it's
wrapped:
#ifndef _POSIX_C_SOURCE
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
#ifndef _U_LONG
typedef unsigned long u_long;
#define _U_LONG
#endif
typedef unsigned short ushort; /* Sys V
compatibility */
typedef unsigned int uint; /* Sys V
compatibility */
#endif
So somehow by the time db.h comes to include
<sys/types.h>, _POSIX_C_SOURCE
is defined and those typedefs don't happen.
If you have any hints, I'm happy to dig more. Else I guess
I'll take the
easier route - install PyLucene from binaries and back off
on my other
stuff to use DB 4.3.29 (which I think you're saying I can
do, despite this
"If you downloaded a pre-compiled PyLucene-db- binary,
that version is
Berkeley DB 4.3.28." in the README of the PyLucene
binary tarball). I.e.,
I'll install 4.3.29 and reinstall python bsddb (which may
hurt, for reasons
I'll omit here).
Thanks again,
Terry
_______________________________________________
pylucene-dev mailing list
pylucene-dev osafoundation.org
http://lists.osafoundation.org/mailman/listinfo/pylu
cene-dev
|