Skip to content

Commit b33d0fd

Browse files
author
Sascha Schumann
committed
initial import of DBA
1 parent 3843821 commit b33d0fd

17 files changed

+1866
-1
lines changed

MODULES_STATUS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ MySQL Working
44
COM Working
55
WDDX Working
66
PCRE Working
7-
DBA Not yet ported
7+
DBA Not yet tested
88
mcrypt Working
99
mhash Working
1010
dbase Working

ext/dba/Makefile.am

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# $Id$
2+
3+
INCLUDES=@INCLUDES@ -I@top_srcdir@ -I@top_srcdir@/libzend
4+
noinst_LIBRARIES=libphpext_dba.a
5+
libphpext_dba_a_SOURCES=dba.c dba_cdb.c dba_db2.c dba_dbm.c dba_gdbm.c \
6+
dba_ndbm.c
7+

ext/dba/config.h.stub

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/* define if you want to use the dba extension */
2+
3+
#define NDBM_DB1_NDBM_H 0
4+
#define NDBM_NDBM_H 0
5+
#define DB2_DB2_DB_H 0
6+
#define DB2_DB_DB2_H 0
7+
#define DB2_DB_H 0
8+
#define DB2_DB2_H 0
9+
#define HAVE_DBA 0
10+
#define DBA_GDBM 0
11+
#define DBA_NDBM 0
12+
#define DBA_DBOPEN 0
13+
#define DBA_DB2 0
14+
#define DBA_DBM 0
15+
#define DBA_CDB 0
16+
17+

ext/dba/config.m4

Lines changed: 210 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,210 @@
1+
dnl $Id$
2+
dnl config.m4 for extension dba
3+
dnl don't forget to call PHP_EXTENSION(dba)
4+
5+
AC_DEFUN(AC_TEMP_LDFLAGS,[
6+
old_LDFLAGS="$LDFLAGS"
7+
LDFLAGS="$1 $LDFLAGS"
8+
$2
9+
LDFLAGS="$old_LDFLAGS"
10+
])
11+
12+
13+
dnl Assign INCLUDE/LFLAGS from PREFIX
14+
AC_DEFUN(AC_DBA_STD_ASSIGN,[
15+
if test "$THIS_PREFIX" != "" -a "$THIS_PREFIX" != "/usr"; then
16+
THIS_INCLUDE="$THIS_PREFIX/include"
17+
THIS_LFLAGS="$THIS_PREFIX/lib"
18+
fi
19+
])
20+
21+
dnl Standard check
22+
AC_DEFUN(AC_DBA_STD_CHECK,[
23+
THIS_RESULT="yes"
24+
if test "$THIS_PREFIX" != "/usr"; then
25+
if test "$THIS_INCLUDE" = "" ; then
26+
AC_MSG_ERROR(cannot find necessary header file(s))
27+
elif test "$THIS_LIBS" = "" ; then
28+
AC_MSG_ERROR(cannot find necessary library)
29+
fi
30+
fi
31+
])
32+
33+
dnl Attach THIS_x to DBA_x
34+
AC_DEFUN(AC_DBA_STD_ATTACH,[
35+
AC_ADD_INCLUDE($THIS_INCLUDE)
36+
AC_ADD_LIBRARY_WITH_PATH($THIS_LIBS, $THIS_LFLAGS)
37+
38+
THIS_INCLUDE=""
39+
THIS_LIBS=""
40+
THIS_LFLAGS=""
41+
THIS_PREFIX=""
42+
])
43+
44+
dnl Print the result message
45+
AC_DEFUN(AC_DBA_STD_RESULT,[
46+
if test "$THIS_RESULT" = "yes"; then
47+
HAVE_DBA=1
48+
AC_MSG_RESULT(yes)
49+
else
50+
AC_MSG_RESULT(no)
51+
fi
52+
THIS_RESULT=""
53+
])
54+
55+
56+
57+
AC_ARG_WITH(gdbm,
58+
[ --with-gdbm[=DIR] Include GDBM support],[
59+
if test "$withval" != "no"; then
60+
for i in /usr/local /usr $withval; do
61+
if test -f "$i/include/gdbm.h"; then
62+
THIS_PREFIX="$i"
63+
fi
64+
done
65+
66+
unset ac_cv_lib_gdbm_gdbm_open
67+
AC_TEMP_LDFLAGS(-L$THIS_PREFIX/lib,[
68+
AC_CHECK_LIB(gdbm, gdbm_open, [AC_DEFINE(DBA_GDBM, 1) THIS_LIBS="gdbm"])
69+
])
70+
71+
AC_DBA_STD_ASSIGN
72+
AC_DBA_STD_CHECK
73+
AC_DBA_STD_ATTACH
74+
fi
75+
])
76+
AC_MSG_CHECKING(for GDBM support)
77+
AC_DBA_STD_RESULT
78+
79+
AC_ARG_WITH(ndbm,
80+
[ --with-ndbm[=DIR] Include NDBM support],[
81+
if test "$withval" != "no"; then
82+
for i in /usr/local /usr $withval; do
83+
if test -f "$i/include/db1/ndbm.h" ; then
84+
THIS_PREFIX="$i"
85+
NDBM_EXTRA="NDBM_DB1_NDBM_H"
86+
elif test -f "$i/include/ndbm.h" ; then
87+
THIS_PREFIX="$i"
88+
NDBM_EXTRA="NDBM_NDBM_H"
89+
fi
90+
done
91+
92+
if test "$NDBM_EXTRA" != ""; then
93+
eval "AC_DEFINE($NDBM_EXTRA, 1)"
94+
fi
95+
96+
for LIB in db1 ndbm c; do
97+
AC_TEMP_LDFLAGS(-L$THIS_PREFIX/lib,[
98+
AC_CHECK_LIB($LIB, dbm_open, [AC_DEFINE(DBA_NDBM,1) THIS_LIBS="$LIB"])
99+
])
100+
done
101+
102+
AC_DBA_STD_ASSIGN
103+
AC_DBA_STD_CHECK
104+
AC_DBA_STD_ATTACH
105+
fi
106+
])
107+
AC_MSG_CHECKING(for NDBM support)
108+
AC_DBA_STD_RESULT
109+
110+
AC_ARG_WITH(db2,
111+
[ --with-db2[=DIR] Include DB2 support],[
112+
if test "$withval" != "no"; then
113+
for i in /usr/local /usr /usr/BerkeleyDB $withval; do
114+
if test -f "$i/db2/db.h"; then
115+
THIS_PREFIX="$i"
116+
DB2_EXTRA="db2"
117+
elif test -f "$i/include/db2/db.h"; then
118+
THIS_PREFIX="$i"
119+
DB2_EXTRA="DB2_DB2_DB_H"
120+
elif test -f "$i/include/db/db2.h"; then
121+
THIS_PREFIX="$i"
122+
DB2_EXTRA="DB2_DB_DB2_H"
123+
elif test -f "$i/include/db2.h"; then
124+
THIS_PREFIX="$i"
125+
DB2_EXTRA="DB2_DB2_H"
126+
elif test -f "$i/include/db.h" ; then
127+
THIS_PREFIX="$i"
128+
DB2_EXTRA="DB2_DB_H"
129+
fi
130+
done
131+
132+
if test "$DB2_EXTRA" = "db2" ; then
133+
DBA_INCLUDE="$DBA_INCLUDE -I$THIS_PREFIX/db2"
134+
DB2_EXTRA="DB2_DB_H"
135+
fi
136+
137+
if test "$DB2_EXTRA" != ""; then
138+
eval "AC_DEFINE($DB2_EXTRA, 1)"
139+
fi
140+
141+
for LIB in db db2 c; do
142+
AC_TEMP_LDFLAGS(-L$THIS_PREFIX/lib,[
143+
AC_CHECK_LIB($LIB, db_appinit, [AC_DEFINE(DBA_DB2,1) THIS_LIBS="$LIB"])
144+
])
145+
done
146+
147+
AC_DBA_STD_ASSIGN
148+
AC_DBA_STD_CHECK
149+
AC_DBA_STD_ATTACH
150+
fi
151+
])
152+
AC_MSG_CHECKING(for DB2 support)
153+
AC_DBA_STD_RESULT
154+
155+
AC_ARG_WITH(dbm,
156+
[ --with-dbm[=DIR] Include DBM support],[
157+
if test "$withval" != "no"; then
158+
for i in /usr/local /usr $withval; do
159+
if test -f "$i/include/dbm.h" ; then
160+
THIS_PREFIX="$i"
161+
fi
162+
done
163+
164+
for LIB in db1 dbm c; do
165+
AC_TEMP_LDFLAGS(-L$THIS_PREFIX/lib,[
166+
AC_CHECK_LIB($LIB, dbminit, [AC_DEFINE(DBA_DBM,1) THIS_LIBS="$LIB"])
167+
])
168+
done
169+
170+
AC_DBA_STD_ASSIGN
171+
AC_DBA_STD_CHECK
172+
AC_DBA_STD_ATTACH
173+
fi
174+
])
175+
AC_MSG_CHECKING(for DBM support)
176+
AC_DBA_STD_RESULT
177+
178+
AC_ARG_WITH(cdb,
179+
[ --with-cdb[=DIR] Include CDB support],[
180+
if test "$withval" != "no"; then
181+
for i in /usr/local /usr $withval; do
182+
if test -f "$i/include/cdb.h" ; then
183+
THIS_PREFIX="$i"
184+
fi
185+
done
186+
187+
for LIB in cdb c; do
188+
AC_TEMP_LDFLAGS(-L$THIS_PREFIX/lib,[
189+
AC_CHECK_LIB($LIB, cdb_bread, [AC_DEFINE(DBA_CDB,1) THIS_LIBS="$LIB"])
190+
])
191+
done
192+
193+
AC_DBA_STD_ASSIGN
194+
AC_DBA_STD_CHECK
195+
AC_DBA_STD_ATTACH
196+
fi
197+
])
198+
AC_MSG_CHECKING(for CDB support)
199+
AC_DBA_STD_RESULT
200+
201+
AC_MSG_CHECKING(whether to enable DBA interface)
202+
if test "$HAVE_DBA" = "1"; then
203+
AC_MSG_RESULT(yes)
204+
AC_DEFINE(HAVE_DBA, 1)
205+
PHP_EXTENSION(dba)
206+
else
207+
AC_MSG_RESULT(no)
208+
AC_DEFINE(HAVE_DBA, 0)
209+
fi
210+

0 commit comments

Comments
 (0)