List Info

Thread: Building on OS X




Building on OS X
user name
2006-10-06 23:40:42
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/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

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
pylucene-devosafoundation.org
http://lists.osafoundation.org/mailman/listinfo/pylu
cene-dev
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )