]> git.sur5r.net Git - openldap/blob - aclocal.m4
Fix Berkeley DB2 Macro
[openldap] / aclocal.m4
1 dnl
2 dnl OpenLDAP Autoconf Macros
3 dnl
4 dnl --------------------------------------------------------------------
5 dnl Restricted form of AC_ARG_ENABLE that limits user options
6 dnl
7 dnl $1 = option name
8 dnl $2 = help-string
9 dnl $3 = default value  (auto)
10 dnl $4 = allowed values (auto yes no)
11 AC_DEFUN([OL_ARG_ENABLE], [# OpenLDAP --enable-$1
12         AC_ARG_ENABLE($1,[$2 (]ifelse($3,,auto,$3)[)],[
13         ol_arg=invalid
14         for ol_val in ifelse($4,,[auto yes no],[$4]) ; do
15                 if test "$enableval" = "$ol_val" ; then
16                         ol_arg="$ol_val"
17                 fi
18         done
19         if test "$ol_arg" = "invalid" ; then
20                 AC_MSG_ERROR(bad value $enableval for --enable-$1)
21         fi
22         ol_enable_$1="$ol_arg"
23 ],
24 [       ol_enable_$1=ifelse($3,,"auto","$3")])dnl
25 dnl AC_VERBOSE(OpenLDAP -enable-$1 $ol_enable_$1)
26 # end --enable-$1
27 ])dnl
28 dnl
29 dnl --------------------------------------------------------------------
30 dnl Restricted form of AC_ARG_WITH that limits user options
31 dnl
32 dnl $1 = option name
33 dnl $2 = help-string
34 dnl $3 = default value (no)
35 dnl $4 = allowed values (yes or no)
36 AC_DEFUN([OL_ARG_WITH], [# OpenLDAP --with-$1
37         AC_ARG_WITH($1,[$2 (]ifelse($3,,yes,$3)[)],[
38         ol_arg=invalid
39         for ol_val in ifelse($4,,[yes no],[$4]) ; do
40                 if test "$withval" = "$ol_val" ; then
41                         ol_arg="$ol_val"
42                 fi
43         done
44         if test "$ol_arg" = "invalid" ; then
45                 AC_MSG_ERROR(bad value $withval for --with-$1)
46         fi
47         ol_with_$1="$ol_arg"
48 ],
49 [       ol_with_$1=ifelse($3,,"no","$3")])dnl
50 dnl AC_VERBOSE(OpenLDAP --with-$1 $ol_with_$1)
51 # end --with-$1
52 ])dnl
53 dnl
54 dnl ====================================================================
55 dnl Check if db.h is Berkeley DB2
56 dnl
57 dnl defines ol_cv_header_db2 to 'yes' or 'no'
58 dnl
59 dnl uses:
60 dnl             AC_CHECK_HEADERS(db.h)
61 dnl
62 AC_DEFUN([OL_HEADER_BERKELEY_DB2],
63 [AC_CHECK_HEADERS(db.h)
64 if test $ac_cv_header_db_h = yes ; then
65         AC_CACHE_CHECK([if db.h is DB2], [ol_cv_header_db2],[
66                 AC_EGREP_CPP(__db_version_2,[
67 #                       include <db.h>
68                         /* this check could be improved */
69 #                       ifdef DB_VERSION_MAJOR
70 #                               if DB_VERSION_MAJOR == 2
71                                         __db_version_2
72 #                               endif
73 #                       endif
74                 ], ol_cv_header_db2=yes, ol_cv_header_db2=no)])
75 else
76         ol_cv_header_db2=no
77 fi
78 ])dnl
79 dnl --------------------------------------------------------------------
80 dnl Check if Berkeley DB2 library exists
81 dnl Check for dbopen in standard libraries or -ldb
82 dnl
83 dnl defines ol_cv_lib_db2 to '-ldb' or 'no'
84 dnl
85 dnl uses:
86 dnl             AC_CHECK_LIB(db,db_open)
87 dnl
88 AC_DEFUN([OL_LIB_BERKELEY_DB2],
89 [AC_CACHE_CHECK([for DB2 library], [ol_cv_lib_db2],
90 [       ol_LIBS="$LIBS"
91         AC_CHECK_LIB(db,db_open,[ol_cv_lib_db2=-ldb],[ol_cv_lib_db2=no])
92         LIBS="$ol_LIBS"
93 ])
94 ])dnl
95 dnl
96 dnl --------------------------------------------------------------------
97 dnl Check if Berkeley db2 exists
98 dnl
99 dnl defines ol_cv_berkeley_db2 to 'yes' or 'no'
100 dnl 
101 dnl uses:
102 dnl             OL_LIB_BERKELEY_DB2
103 dnl             OL_HEADER_BERKELEY_DB2
104 dnl
105 AC_DEFUN([OL_BERKELEY_DB2],
106 [AC_REQUIRE([OL_LIB_BERKELEY_DB2])
107  AC_REQUIRE([OL_HEADER_BERKELEY_DB2])
108  AC_CACHE_CHECK([for Berkeley DB2], [ol_cv_berkeley_db2], [
109         if test $ol_cv_lib_db2 = no -o $ol_cv_header_db2 = no ; then
110                 ol_cv_berkeley_db2=no
111         else
112                 ol_cv_berkeley_db2=yes
113         fi
114 ])
115 ])dnl
116 dnl
117 dnl ====================================================================
118 dnl Check for db.h/db_185.h is Berkeley DB
119 dnl
120 dnl defines ol_cv_header_db to 'yes' or 'no'
121 dnl
122 dnl uses:
123 dnl             OL_HEADER_BERKELEY_DB2
124 dnl             AC_CHECK_HEADERS(db_185.h)
125 dnl
126 AC_DEFUN([OL_HEADER_BERKELEY_DB],
127 [AC_REQUIRE([OL_HEADER_BERKELEY_DB2])
128 AC_CHECK_HEADERS(db_185.h)
129 if test $ol_cv_header_db2 = yes ; then
130         dnl db.h is db2! 
131
132         ol_cv_header_db=$ac_cv_header_db_185_h
133 else
134         ol_cv_header_db=$ac_cv_header_db_h
135 fi
136 ])dnl
137 dnl
138 dnl --------------------------------------------------------------------
139 dnl Check if Berkeley DB library exists
140 dnl Check for dbopen in standard libraries or -ldb
141 dnl
142 dnl defines ol_cv_lib_db to 'yes' or '-ldb' or 'no'
143 dnl             'yes' implies dbopen is in $LIBS
144 dnl
145 dnl uses:
146 dnl             AC_CHECK_FUNC(dbopen)
147 dnl             AC_CHECK_LIB(db,dbopen)
148 dnl
149 AC_DEFUN([OL_LIB_BERKELEY_DB],
150 [AC_CACHE_CHECK([for Berkeley DB library], [ol_cv_lib_db],
151 [       ol_LIBS="$LIBS"
152         AC_CHECK_FUNC(dbopen,[ol_cv_lib_db=yes], [
153                 AC_CHECK_LIB(db,dbopen,[ol_cv_lib_db=-ldb],[ol_cv_lib_db=no])
154         ])
155         LIBS="$ol_LIBS"
156 ])
157 ])dnl
158 dnl
159 dnl --------------------------------------------------------------------
160 dnl Check if Berkeley DB exists
161 dnl
162 dnl defines ol_cv_berkeley_db to 'yes' or 'no'
163 dnl 
164 dnl uses:
165 dnl             OL_LIB_BERKELEY_DB
166 dnl             OL_HEADER_BERKELEY_DB
167 dnl
168 AC_DEFUN([OL_BERKELEY_DB],
169 [AC_REQUIRE([OL_LIB_BERKELEY_DB])
170  AC_REQUIRE([OL_HEADER_BERKELEY_DB])
171  AC_CACHE_CHECK([for Berkeley DB], [ol_cv_berkeley_db], [
172         if test $ol_cv_lib_db = no -o $ol_cv_header_db = no ; then
173                 ol_cv_berkeley_db=no
174         else
175                 ol_cv_berkeley_db=yes
176         fi
177 ])
178 ])dnl
179 dnl
180 dnl ====================================================================
181 dnl Check if GDBM library exists
182 dnl Check for gdbm_open in standard libraries or -lgdbm
183 dnl
184 dnl defines ol_cv_lib_gdbm to 'yes' or '-lgdbm' or 'no'
185 dnl             'yes' implies gdbm_open is in $LIBS
186 dnl
187 dnl uses:
188 dnl             AC_CHECK_FUNC(gdbm_open)
189 dnl             AC_CHECK_LIB(gdbm,gdbm_open)
190 dnl
191 AC_DEFUN([OL_LIB_GDBM],
192 [AC_CACHE_CHECK(for GDBM library, [ol_cv_lib_gdbm],
193 [       ol_LIBS="$LIBS"
194         AC_CHECK_FUNC(gdbm_open,[ol_cv_lib_gdbm=yes], [
195                 AC_CHECK_LIB(gdbm,gdbm_open,[ol_cv_lib_gdbm=-lgdbm],[ol_cv_lib_gdbm=no])
196         ])
197         LIBS="$ol_LIBS"
198 ])
199 ])dnl
200 dnl
201 dnl --------------------------------------------------------------------
202 dnl Check if GDBM exists
203 dnl
204 dnl defines ol_cv_gdbm to 'yes' or 'no'
205 dnl 
206 dnl uses:
207 dnl             OL_LIB_GDBM
208 dnl             AC_CHECK_HEADERS(gdbm.h)
209 dnl
210 AC_DEFUN([OL_GDBM],
211 [AC_REQUIRE([OL_LIB_GDBM])
212  AC_CHECK_HEADERS(gdbm.h)
213  AC_CACHE_CHECK(for db, [ol_cv_gdbm], [
214         if test $ol_cv_lib_gdbm = no -o $ac_cv_header_gdbm_h = no ; then
215                 ol_cv_gdbm=no
216         else
217                 ol_cv_gdbm=yes
218         fi
219 ])
220 ])dnl
221 dnl
222 dnl ====================================================================
223 dnl Check if NDBM library exists
224 dnl Check for dbm_open in standard libraries or -lndbm or -ldbm
225 dnl
226 dnl defines ol_cv_lib_ndbm to 'yes' or '-lndbm' or -ldbm or 'no'
227 dnl             'yes' implies ndbm_open is in $LIBS
228 dnl
229 dnl uses:
230 dnl             AC_CHECK_FUNC(dbm_open)
231 dnl             AC_CHECK_LIB(ndbm,dbm_open)
232 dnl             AC_CHECK_LIB(dbm,dbm_open)
233 dnl
234 AC_DEFUN([OL_LIB_NDBM],
235 [AC_CACHE_CHECK(for NDBM library, [ol_cv_lib_ndbm],
236 [       ol_LIBS="$LIBS"
237         AC_CHECK_FUNC(dbm_open,[ol_cv_lib_ndbm=yes], [
238                 AC_CHECK_LIB(ndbm,dbm_open,[ol_cv_lib_ndbm=-lndbm], [
239                         AC_CHECK_LIB(dbm,dbm_open,[ol_cv_lib_ndbm=-ldbm],
240                                 [ol_cv_lib_ndbm=no])dnl
241                 ])
242         ])
243         LIBS="$ol_LIBS"
244 ])
245 ])dnl
246 dnl
247 dnl --------------------------------------------------------------------
248 dnl Check if NDBM exists
249 dnl
250 dnl defines ol_cv_ndbm to 'yes' or 'no'
251 dnl 
252 dnl uses:
253 dnl             OL_LIB_NDBM
254 dnl             AC_CHECK_HEADERS(ndbm.h)
255 dnl
256 AC_DEFUN([OL_NDBM],
257 [AC_REQUIRE([OL_LIB_NDBM])
258  AC_CHECK_HEADERS(ndbm.h)
259  AC_CACHE_CHECK(for db, [ol_cv_ndbm], [
260         if test $ol_cv_lib_ndbm = no -o $ac_cv_header_ndbm_h = no ; then
261                 ol_cv_ndbm=no
262         else
263                 ol_cv_ndbm=yes
264         fi
265 ])
266 ])dnl
267 dnl
268 dnl ====================================================================
269 dnl Check POSIX Thread version 
270 dnl
271 dnl defines ol_cv_posix_version to 'final' or 'draft' or 'unknown'
272 dnl     'unknown' implies that the version could not be detected
273 dnl             or that pthreads.h does exist.  Existance of pthreads.h
274 dnl             should be tested separately.
275 dnl
276 AC_DEFUN([OL_POSIX_THREAD_VERSION],
277 [AC_CACHE_CHECK([POSIX thread version],[ol_cv_pthread_version],[
278         AC_EGREP_CPP(final,[
279 #               include <pthread.h>
280                 /* this check could be improved */
281 #               ifdef PTHREAD_ONCE_INIT
282                         final
283 #               endif
284         ], ol_pthread_final=yes, ol_pthread_final=no)
285
286         AC_EGREP_CPP(draft4,[
287 #               include <pthread.h>
288                 /* this check could be improved */
289 #               ifdef pthread_once_init
290                         draft4
291 #               endif
292         ], ol_pthread_draft4=yes, ol_pthread_draft4=no)
293
294         if test $ol_pthread_final = yes -a $ol_pthread_draft4 = no; then
295                 ol_cv_pthread_version=final
296         elif test $ol_pthread_final = no -a $ol_pthread_draft4 = yes; then
297                 ol_cv_pthread_version=draft4
298         else
299                 ol_cv_pthread_version=unknown
300         fi
301 ])
302 ])dnl
303 dnl
304 dnl --------------------------------------------------------------------
305 dnl Check LinuxThread
306 dnl
307 dnl defines ol_cv_linux_threads to 'yes' or 'no'
308 dnl             'no' implies pthreads.h is not LinuxThreads or pthreads.h
309 dnl             doesn't exists.  Existance of pthread.h should separately
310 dnl             checked.
311 dnl 
312 AC_DEFUN([OL_LINUX_THREADS],
313 [
314 AC_CACHE_CHECK([for LinuxThreads], [ol_cv_linux_threads], [
315         res=`grep Linuxthreads /usr/include/pthread.h 2>/dev/null | wc -l`
316         if test "$res" -gt 0 ; then
317                 ol_cv_linux_threads=yes
318         else
319                 ol_cv_linux_threads=no
320         fi
321 ])
322 ])dnl
323 dnl
324 dnl ====================================================================
325 dnl Check for declaration of sys_errlist in one of stdio.h and errno.h.
326 dnl Declaration of sys_errlist on BSD4.4 interferes with our declaration.
327 dnl Reported by Keith Bostic.
328 AC_DEFUN([OL_SYS_ERRLIST],
329 [
330 AC_MSG_CHECKING([declaration of sys_errlist])
331 AC_CACHE_VAL(ol_cv_dcl_sys_errlist,[
332         AC_TRY_COMPILE([
333 #include <stdio.h>
334 #include <sys/types.h>
335 #include <errno.h> ],
336         [char *c = (char *) *sys_errlist],
337         [ol_cv_dcl_sys_errlist=yes],
338         [ol_cv_dcl_sys_errlist=no])])
339 AC_MSG_RESULT($ol_cv_dcl_sys_errlist)
340
341 # It's possible (for near-UNIX clones) that sys_errlist doesn't exist
342 if test $ol_cv_dcl_sys_errlist = no ; then
343         AC_DEFINE(DECL_SYS_ERRLIST)
344         AC_MSG_CHECKING([existence of sys_errlist])
345         AC_CACHE_VAL(ol_cv_have_sys_errlist,[
346                 AC_TRY_LINK([#include <errno.h>],
347                         [char *c = (char *) *sys_errlist],
348                         [ol_cv_have_sys_errlist=yes],
349                         [ol_cv_have_sys_errlist=no])])
350         AC_MSG_RESULT($ol_cv_have_sys_errlist)
351 fi
352 ])dnl