On Sat, 7 Oct 2006, Terry Jones wrote:
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
The block above implies that you have the DB sources installed in the PyLucene
directory, which is my setup but not necessarily yours...
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/java -Ilucene-java-2.0.0-434148/build/contrib/analyzers/classes/java
-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
I don't get this error and I build with Berkeley DB.
The problem may stem from the fact that you didn't install the Berkeley DB
sources in the right place (that is the place named by the DB var in the block
above) and that the PyLucene build then doesn't find the proper db.h file. If
you look in PyLucene's Makefile, it adds -I$(DB) and -I$(DB)/build_unix to the
include path to find the include files produced by Berkeley DB's config. This
is to build (and patch) the libjava JNI part of Berkeley DB which needs to be
built against the gcj header files (incompatible with the Java header files in
their JNI interface).
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:
Which version of gcc you use to build Berkeley DB shouldn't matter.
Andi..
_______________________________________________
pylucene-dev mailing list
[email protected]
http://lists.osafoundation.org/mailman/listinfo/pylucene-dev