Date: prev next · Thread: first prev next last
2010 Archives by date, by thread · List index


Hi,

So this is a modified versio nof patches/dev300/system-db-check.diff
to find the proper berkeley db headers and libs.
I really would like to get this into bootstrap so please test and comment.

Thanks
From 8f5b9b8c85ae9d95dbe13b38abc3b473c045a138 Mon Sep 17 00:00:00 2001
From: Robert Nagy <robert@openbsd.org>
Date: Wed, 1 Dec 2010 11:24:33 +0100
Subject: [PATCH] try to find the proper berkeley db headers and libs

---
 configure.in       |   28 +++++++++++++++++-----------
 set_soenv.in       |    2 ++
 solenv/inc/libs.mk |    2 +-
 3 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/configure.in b/configure.in
index 3b90114..c923a7a 100644
--- a/configure.in
+++ b/configure.in
@@ -4528,25 +4528,29 @@ if test -n "$with_system_db" -o -n "$with_system_libs" && \
     test "$with_system_db" != "no"; then
     SYSTEM_DB=YES
     AC_MSG_RESULT([external])
-    AC_CHECK_HEADER(db.h, [ DB_INCLUDES=/usr/include ],
-        [
-             CFLAGS=-I/usr/include/db4
-             AC_CHECK_HEADER(db4/db.h,
-             [ DB_INCLUDES=/usr/include/db4 ],
-             [ AC_MSG_ERROR(no. install the db4 libraries) ], []+             )
-        ], []
-    )
+    for dbver in -5.1 5.1 -5.0 5.0 -5 5 -4.8 4.8 -4.7 4.7 -4 4 ''; do
+       for dbinc in /usr/include /usr/local/include; do
+           AC_CHECK_HEADER(db$dbver/db.h, [ DB_INCLUDES="$dbinc/db$dbver"; 
db_header="db$dbver/db.h"; break 2 ])
+       done
+    done
+    if test "$DB_INCLUDES" = ""; then
+       AC_MSG_ERROR(no. install the db4-dev package)
+    fi
     AC_MSG_CHECKING([whether db is at least 4.1])
     AC_TRY_RUN([
-#include <db.h>
+#include <$db_header>
 
 int main(int argc, char **argv) {
        if(DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)) return 0;
        else return 1;
 }
     ], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR([no. you need at least db 4.1])])
-    AC_HAVE_LIBRARY(db, [],
-      [AC_MSG_ERROR([db not installed or functional])], [])
+    save_LIBS="$LIBS"
+    for dbver in -5.1 5.1 -5.0 5.0 -5 5 -4.8 4.8 -4.7 4.7 -4 4 ''; do
+        AC_CHECK_LIB(db$dbver, db_create, [ DB_LIB="db$dbver"; DB_CPPLIB="db_cxx$dbver"; 
LIBS="-ldb$dbver $LIBS"; break ])
+    done
+    AC_CHECK_FUNC(db_create, [], [ AC_MSG_ERROR([db not installed or functional]) ])
+    LIBS="$save_LIBS"
     SCPDEFS="$SCPDEFS -DSYSTEM_DB"
 else
     AC_MSG_RESULT([internal])
@@ -4555,6 +4559,8 @@ else
 fi
 AC_SUBST(SYSTEM_DB)
 AC_SUBST(DB_VERSION)
+AC_SUBST(DB_LIB)
+AC_SUBST(DB_CPPLIB)
 AC_SUBST(DB_INCLUDES)
 AC_SUBST(DB_JAR)
 
diff --git a/set_soenv.in b/set_soenv.in
index ee227a3..e463849 100644
--- a/set_soenv.in
+++ b/set_soenv.in
@@ -1950,6 +1950,8 @@ ToFile( "WITH_EXTRA_SAMPLE",       "@WITH_EXTRA_SAMPLE@",      "e" );
 ToFile( "WITH_EXTRA_FONT",       "@WITH_EXTRA_FONT@",      "e" );
 ToFile( "SYSTEM_DB",         "@SYSTEM_DB@",        "e" );
 ToFile( "DB_VERSION",        "@DB_VERSION@",       "e" );
+ToFile( "DB_LIB",            "@DB_LIB@",           "e" );
+ToFile( "DB_CPPLIB",         "@DB_CPPLIB@",        "e" );
 ToFile( "DB_INCLUDES",       "@DB_INCLUDES@",      "e" );
 ToFile( "ENABLE_MYSQLC",     "@ENABLE_MYSQLC@",    "e" );
 ToFile( "SYSTEM_MYSQL",      "@SYSTEM_MYSQL@",     "e" );
diff --git a/solenv/inc/libs.mk b/solenv/inc/libs.mk
index fc5dee4..13a1095 100644
--- a/solenv/inc/libs.mk
+++ b/solenv/inc/libs.mk
@@ -231,7 +231,7 @@ NEON3RDLIB=$(SOLARLIBDIR)/libneon.dylib
 NEON3RDLIB=-lneon
 .ENDIF
 .IF "$(SYSTEM_DB)" == "YES"
-BERKELEYLIB=-ldb
+BERKELEYLIB=-l$(DB_LIB)
 .ELSE
 BERKELEYLIB=-ldb-4.7
 .ENDIF
-- 
1.7.3.1


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.