Sync usage with man page.
[netbsd-mini2440.git] / crypto / dist / heimdal / cf / db.m4
blobea34535807426f12267f1997f0fca40fcfaa5aad
1 dnl $Heimdal: db.m4 15456 2005-06-16 21:04:43Z lha $
2 dnl $NetBSD$
3 dnl
4 dnl tests for various db libraries
5 dnl
6 AC_DEFUN([rk_DB],[
7 AC_ARG_ENABLE(berkeley-db,
8                        AS_HELP_STRING([--disable-berkeley-db],
9                                       [if you don't want berkeley db]),[
12 AC_ARG_ENABLE(ndbm-db,
13                        AS_HELP_STRING([--disable-ndbm-db],
14                                       [if you don't want ndbm db]),[
17 have_ndbm=no
18 db_type=unknown
20 if test "$enable_berkeley_db" != no; then
22   AC_CHECK_HEADERS([                            \
23         db4/db.h                                \
24         db3/db.h                                \
25         db.h                                    \
26         db_185.h                                \
27   ])
29 dnl db_create is used by db3 and db4
31   AC_FIND_FUNC_NO_LIBS(db_create, db4 db3 db, [
32   #include <stdio.h>
33   #ifdef HAVE_DB4_DB_H
34   #include <db4/db.h>
35   #elif defined(HAVE_DB3_DB_H)
36   #include <db3/db.h>
37   #else
38   #include <db.h>
39   #endif
40   ],[NULL, NULL, 0])
42   if test "$ac_cv_func_db_create" = "yes"; then
43     db_type=db3
44     if test "$ac_cv_funclib_db_create" != "yes"; then
45       DBLIB="$ac_cv_funclib_db_create"
46     else
47       DBLIB=""
48     fi
49     AC_DEFINE(HAVE_DB3, 1, [define if you have a berkeley db3/4 library])
50   else
52 dnl dbopen is used by db1/db2
54     AC_FIND_FUNC_NO_LIBS(dbopen, db2 db, [
55     #include <stdio.h>
56     #if defined(HAVE_DB2_DB_H)
57     #include <db2/db.h>
58     #elif defined(HAVE_DB_185_H)
59     #include <db_185.h>
60     #elif defined(HAVE_DB_H)
61     #include <db.h>
62     #else
63     #error no db.h
64     #endif
65     ],[NULL, 0, 0, 0, NULL])
67     if test "$ac_cv_func_dbopen" = "yes"; then
68       db_type=db1
69       if test "$ac_cv_funclib_dbopen" != "yes"; then
70         DBLIB="$ac_cv_funclib_dbopen"
71       else
72         DBLIB=""
73       fi
74       AC_DEFINE(HAVE_DB1, 1, [define if you have a berkeley db1/2 library])
75     fi
76   fi
78 dnl test for ndbm compatability
80   if test "$ac_cv_func_dbm_firstkey" != yes; then
81     AC_FIND_FUNC_NO_LIBS2(dbm_firstkey, $ac_cv_funclib_dbopen $ac_cv_funclib_db_create, [
82     #include <stdio.h>
83     #define DB_DBM_HSEARCH 1
84     #include <db.h>
85     DBM *dbm;
86     ],[NULL])
87   
88     if test "$ac_cv_func_dbm_firstkey" = "yes"; then
89       if test "$ac_cv_funclib_dbm_firstkey" != "yes"; then
90         LIB_NDBM="$ac_cv_funclib_dbm_firstkey"
91       else
92         LIB_NDBM=""
93       fi
94       AC_DEFINE(HAVE_DB_NDBM, 1, [define if you have ndbm compat in db])
95       AC_DEFINE(HAVE_NEW_DB, 1, [Define if NDBM really is DB (creates files *.db)])
96     else
97       $as_unset ac_cv_func_dbm_firstkey
98       $as_unset ac_cv_funclib_dbm_firstkey
99     fi
100   fi
102 fi # berkeley db
104 if test "$enable_ndbm_db" != "no"; then
106   if test "$db_type" = "unknown" -o "$ac_cv_func_dbm_firstkey" = ""; then
108     AC_CHECK_HEADERS([                          \
109         dbm.h                                   \
110         ndbm.h                                  \
111     ])
112   
113     AC_FIND_FUNC_NO_LIBS(dbm_firstkey, ndbm, [
114     #include <stdio.h>
115     #if defined(HAVE_NDBM_H)
116     #include <ndbm.h>
117     #elif defined(HAVE_DBM_H)
118     #include <dbm.h>
119     #endif
120     DBM *dbm;
121     ],[NULL])
122   
123     if test "$ac_cv_func_dbm_firstkey" = "yes"; then
124       if test "$ac_cv_funclib_dbm_firstkey" != "yes"; then
125         LIB_NDBM="$ac_cv_funclib_dbm_firstkey"
126       else
127         LIB_NDBM=""
128       fi
129       AC_DEFINE(HAVE_NDBM, 1, [define if you have a ndbm library])dnl
130       have_ndbm=yes
131       if test "$db_type" = "unknown"; then
132         db_type=ndbm
133         DBLIB="$LIB_NDBM"
134       fi
135     else
136   
137       $as_unset ac_cv_func_dbm_firstkey
138       $as_unset ac_cv_funclib_dbm_firstkey
139   
140       AC_CHECK_HEADERS([                                \
141           gdbm/ndbm.h                           \
142       ])
143   
144       AC_FIND_FUNC_NO_LIBS(dbm_firstkey, gdbm, [
145       #include <stdio.h>
146       #include <gdbm/ndbm.h>
147       DBM *dbm;
148       ],[NULL])
149   
150       if test "$ac_cv_func_dbm_firstkey" = "yes"; then
151         if test "$ac_cv_funclib_dbm_firstkey" != "yes"; then
152         LIB_NDBM="$ac_cv_funclib_dbm_firstkey"
153         else
154         LIB_NDBM=""
155         fi
156         AC_DEFINE(HAVE_NDBM, 1, [define if you have a ndbm library])dnl
157         have_ndbm=yes
158         if test "$db_type" = "unknown"; then
159         db_type=ndbm
160         DBLIB="$LIB_NDBM"
161         fi
162       fi
163     fi
164   fi #enable_ndbm_db
165 fi # unknown
167 if test "$have_ndbm" = "yes"; then
168   AC_MSG_CHECKING([if ndbm is implemented with db])
169   AC_RUN_IFELSE([AC_LANG_SOURCE([[
170 #include <unistd.h>
171 #include <fcntl.h>
172 #if defined(HAVE_GDBM_NDBM_H)
173 #include <gdbm/ndbm.h>
174 #elif defined(HAVE_NDBM_H)
175 #include <ndbm.h>
176 #elif defined(HAVE_DBM_H)
177 #include <dbm.h>
178 #endif
179 int main(int argc, char **argv)
181   DBM *d;
183   d = dbm_open("conftest", O_RDWR | O_CREAT, 0666);
184   if (d == NULL)
185     return 1;
186   dbm_close(d);
187   return 0;
188 }]])],[
189     if test -f conftest.db; then
190       AC_MSG_RESULT([yes])
191       AC_DEFINE(HAVE_NEW_DB, 1, [Define if NDBM really is DB (creates files *.db)])
192     else
193       AC_MSG_RESULT([no])
194     fi],[AC_MSG_RESULT([no])])
197 AM_CONDITIONAL(HAVE_DB1, test "$db_type" = db1)dnl
198 AM_CONDITIONAL(HAVE_DB3, test "$db_type" = db3)dnl
199 AM_CONDITIONAL(HAVE_NDBM, test "$db_type" = ndbm)dnl
201 ## it's probably not correct to include LDFLAGS here, but we might
202 ## need it, for now just add any possible -L
203 z=""
204 for i in $LDFLAGS; do
205         case "$i" in
206         -L*) z="$z $i";;
207         esac
208 done
209 DBLIB="$z $DBLIB"
210 AC_SUBST(DBLIB)dnl
211 AC_SUBST(LIB_NDBM)dnl