List Info

Thread: Building on OS X




Building on OS X
user name
2006-10-06 23:07:52
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-devosafoundation.org
http://lists.osafoundation.org/mailman/listinfo/pylu
cene-dev
Building on OS X
user name
2006-10-06 23:43:43

On Sat, 7 Oct 2006, Terry Jones wrote:

> 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).

Yeah, that is wrong and outdated. It's most likely 4.3.29,
if not 4.4.20. 
Sleepycat (now Oracle) just released version 4.5.20, so this
may change again 
in the not-so-distant future...

Andi..
_______________________________________________
pylucene-dev mailing list
pylucene-devosafoundation.org
http://lists.osafoundation.org/mailman/listinfo/pylu
cene-dev
[1-2]

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