helly           Sat Feb  1 13:59:59 2003 EDT

  Modified files:              
    /php4/ext/dba       config.m4 dba_cdb.c dba_dbm.c dba_gdbm.c 
  Log:
  - unify configure mechanisms (include file handling)
  - fix dbm
  - allow dbm to be based on gdbm
  
Index: php4/ext/dba/config.m4
diff -u php4/ext/dba/config.m4:1.41 php4/ext/dba/config.m4:1.42
--- php4/ext/dba/config.m4:1.41 Fri Jan 31 15:06:44 2003
+++ php4/ext/dba/config.m4      Sat Feb  1 13:59:59 2003
@@ -1,11 +1,11 @@
 dnl
-dnl $Id: config.m4,v 1.41 2003/01/31 20:06:44 helly Exp $
+dnl $Id: config.m4,v 1.42 2003/02/01 18:59:59 helly Exp $
 dnl
 
 dnl Suppose we need FlatFile if no support or only CDB is used.
 
 AC_DEFUN(PHP_DBA_STD_BEGIN,[
-  unset THIS_INCLUDE THIS_INC_DIR THIS_LIBS THIS_LFLAGS THIS_PREFIX THIS_RESULT
+  unset THIS_INCLUDE THIS_LIBS THIS_LFLAGS THIS_PREFIX THIS_RESULT
 ])
 
 AC_DEFUN(PHP_TEMP_LDFLAGS,[
@@ -35,11 +35,8 @@
 
 dnl Attach THIS_x to DBA_x
 AC_DEFUN(PHP_DBA_STD_ATTACH,[
-  if test -n "$THIS_INC_DIR" -a "$THIS_PREFIX" != "/usr"; then
-    PHP_ADD_INCLUDE($THIS_INC_DIR)
-  fi
   PHP_ADD_LIBRARY_WITH_PATH($THIS_LIBS, $THIS_LFLAGS, DBA_SHARED_LIBADD)
-  unset THIS_INCLUDE THIS_INC_DIR THIS_LIBS THIS_LFLAGS THIS_PREFIX
+  unset THIS_INCLUDE THIS_LIBS THIS_LFLAGS THIS_PREFIX
 ])
 
 dnl Print the result message
@@ -76,7 +73,6 @@
       if test -f "$i/include/gdbm.h"; then
         THIS_PREFIX=$i
         THIS_INCLUDE=$i/include/gdbm.h
-        THIS_INC_DIR=$i/include
         break
       fi
     done
@@ -85,6 +81,7 @@
       unset ac_cv_lib_gdbm_gdbm_open
       PHP_TEMP_LDFLAGS(-L$THIS_PREFIX/lib,[
         AC_CHECK_LIB(gdbm, gdbm_open, [
+          AC_DEFINE_UNQUOTED(GDBM_INCLUDE_FILE, "$THIS_INCLUDE", [ ])
           AC_DEFINE(DBA_GDBM, 1, [ ]) 
           THIS_LIBS=gdbm
           break
@@ -116,10 +113,10 @@
     done
     
     if test -n "$THIS_INCLUDE"; then
-      AC_DEFINE_UNQUOTED(NDBM_INCLUDE_FILE, "$THIS_INCLUDE", [ ])
       for LIB in ndbm db1 c; do
         PHP_TEMP_LDFLAGS(-L$THIS_PREFIX/lib,[
           AC_CHECK_LIB($LIB, dbm_open, [
+            AC_DEFINE_UNQUOTED(NDBM_INCLUDE_FILE, "$THIS_INCLUDE", [ ])
             AC_DEFINE(DBA_NDBM,1, [ ]) 
             THIS_LIBS=$LIB
             break
@@ -301,15 +298,26 @@
       if test -f "$i/include/dbm.h"; then
         THIS_PREFIX=$i
         THIS_INCLUDE=$i/include/dbm.h
-        THIS_INC_DIR=$i/include
         break
+      elif test -f "$i/include/gdbm/dbm.h"; then
+        THIS_PREFIX=$i
+        THIS_INCLUDE=$i/include/gdbm/dbm.h
       fi
     done
 
     if test -n "$THIS_INCLUDE"; then
-      for LIB in db1 dbm c; do
+      for LIB in gdbm dbm c; do
         PHP_TEMP_LDFLAGS(-L$THIS_PREFIX/lib,[
           AC_CHECK_LIB($LIB, dbminit, [
+            AC_MSG_CHECKING(for DBM using GDBM)
+            AC_DEFINE_UNQUOTED(DBM_INCLUDE_FILE, "$THIS_INCLUDE", [ ])
+            if test "$LIB" = "gdbm"; then
+              AC_DEFINE_UNQUOTED(DBM_VERSION, "GDBM", [ ])
+              AC_MSG_RESULT(yes)
+            else
+              AC_DEFINE_UNQUOTED(DBM_VERSION, "DBM", [ ])
+              AC_MSG_RESULT(no)
+            fi
             AC_DEFINE(DBA_DBM,1,[ ]) 
             THIS_LIBS=$LIB
             break
@@ -344,7 +352,6 @@
       if test -f "$i/include/cdb.h"; then
         THIS_PREFIX=$i
         THIS_INCLUDE=$i/include/cdb.h
-        THIS_INC_DIR=$i/include
         break
       fi
     done
@@ -353,6 +360,7 @@
       for LIB in cdb c; do
         PHP_TEMP_LDFLAGS(-L$THIS_PREFIX/lib,[
           AC_CHECK_LIB($LIB, cdb_read, [
+            AC_DEFINE_UNQUOTED(CDB_INCLUDE_FILE, "$THIS_INCLUDE", [ ])
             AC_DEFINE(DBA_CDB,1,[ ]) 
             THIS_LIBS=$LIB
             break
Index: php4/ext/dba/dba_cdb.c
diff -u php4/ext/dba/dba_cdb.c:1.26 php4/ext/dba/dba_cdb.c:1.27
--- php4/ext/dba/dba_cdb.c:1.26 Tue Dec 31 11:06:24 2002
+++ php4/ext/dba/dba_cdb.c      Sat Feb  1 13:59:59 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: dba_cdb.c,v 1.26 2002/12/31 16:06:24 sebastian Exp $ */
+/* $Id: dba_cdb.c,v 1.27 2003/02/01 18:59:59 helly Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -35,12 +35,13 @@
 #include <fcntl.h>
 
 #if DBA_CDB_BUILTIN
-#include "libcdb/cdb.h"
-#include "libcdb/cdb_make.h"
-#include "libcdb/uint32.h"
+# include "libcdb/cdb.h"
+# include "libcdb/cdb_make.h"
+# include "libcdb/uint32.h"
 #else
-#include <cdb.h>
-#include <uint32.h>
+# ifdef CDB_INCLUDE_FILE
+#  include CDB_INCLUDE_FILE
+# endif
 #endif
 
 #define CDB_INFO \
Index: php4/ext/dba/dba_dbm.c
diff -u php4/ext/dba/dba_dbm.c:1.25 php4/ext/dba/dba_dbm.c:1.26
--- php4/ext/dba/dba_dbm.c:1.25 Tue Dec 31 11:06:24 2002
+++ php4/ext/dba/dba_dbm.c      Sat Feb  1 13:59:59 2003
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: dba_dbm.c,v 1.25 2002/12/31 16:06:24 sebastian Exp $ */
+/* $Id: dba_dbm.c,v 1.26 2003/02/01 18:59:59 helly Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -27,7 +27,12 @@
 #if DBA_DBM
 #include "php_dbm.h"
 
-#include <dbm.h>
+#ifdef DBM_INCLUDE_FILE
+#include DBM_INCLUDE_FILE
+#endif
+#if DBA_GDBM
+#include "php_gdbm.h"
+#endif
 
 #include <unistd.h>
 #include <sys/types.h>
@@ -108,6 +113,14 @@
        datum gval;
 
        DBM_GKEY;
+
+       if (mode == 1) { /* insert */
+               gval = fetch(gkey);
+               if(gval.dptr) {
+                       return FAILURE;
+               }
+       }
+
        gval.dptr = (char *) val;
        gval.dsize = vallen;
        
@@ -179,7 +192,13 @@
 
 DBA_INFO_FUNC(dbm)
 {
-       return estrdup("DBM");
+#if DBA_GDBM
+       if (!strcmp(DBM_VERSION, "GDBM"))
+       {
+               return dba_info_gdbm(hnd, info TSRMLS_CC);
+       }
+#endif
+       return estrdup(DBM_VERSION);
 }
 
 #endif
Index: php4/ext/dba/dba_gdbm.c
diff -u php4/ext/dba/dba_gdbm.c:1.19 php4/ext/dba/dba_gdbm.c:1.20
--- php4/ext/dba/dba_gdbm.c:1.19        Tue Dec 31 11:06:24 2002
+++ php4/ext/dba/dba_gdbm.c     Sat Feb  1 13:59:59 2003
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: dba_gdbm.c,v 1.19 2002/12/31 16:06:24 sebastian Exp $ */
+/* $Id: dba_gdbm.c,v 1.20 2003/02/01 18:59:59 helly Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -27,7 +27,9 @@
 #if DBA_GDBM
 #include "php_gdbm.h"
 
-#include <gdbm.h>
+#ifdef GDBM_INCLUDE_FILE
+#include GDBM_INCLUDE_FILE
+#endif
 
 #define GDBM_DATA dba_gdbm_data *dba = info->dbf
 #define GDBM_GKEY datum gkey; gkey.dptr = (char *) key; gkey.dsize = keylen



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to