2 dnl OpenLDAP Autoconf Macros
4 dnl --------------------------------------------------------------------
5 dnl Restricted form of AC_ARG_ENABLE that limits user options
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)[)],[
14 for ol_val in ifelse($4,,[auto yes no],[$4]) ; do
15 if test "$enableval" = "$ol_val" ; then
19 if test "$ol_arg" = "invalid" ; then
20 AC_MSG_ERROR(bad value $enableval for --enable-$1)
22 ol_enable_$1="$ol_arg"
24 [ ol_enable_$1=ifelse($3,,"auto","$3")])dnl
25 dnl AC_VERBOSE(OpenLDAP -enable-$1 $ol_enable_$1)
29 dnl --------------------------------------------------------------------
30 dnl Restricted form of AC_ARG_WITH that limits user options
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)[)],[
39 for ol_val in ifelse($4,,[yes no],[$4]) ; do
40 if test "$withval" = "$ol_val" ; then
44 if test "$ol_arg" = "invalid" ; then
45 AC_MSG_ERROR(bad value $withval for --with-$1)
49 [ ol_with_$1=ifelse($3,,"no","$3")])dnl
50 dnl AC_VERBOSE(OpenLDAP --with-$1 $ol_with_$1)
54 dnl ====================================================================
55 dnl Check if db.h is Berkeley DB2
57 dnl defines ol_cv_header_db2 to 'yes' or 'no'
60 dnl AC_CHECK_HEADERS(db.h)
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,[
68 /* this check could be improved */
69 # ifdef DB_VERSION_MAJOR
70 # if DB_VERSION_MAJOR == 2
74 ], ol_cv_header_db2=yes, ol_cv_header_db2=no)])
79 dnl --------------------------------------------------------------------
80 dnl Check if Berkeley DB2 library exists
81 dnl Check for dbopen in standard libraries or -ldb
83 dnl defines ol_cv_lib_db2 to '-ldb' or 'no'
86 dnl AC_CHECK_LIB(db,db_open)
88 AC_DEFUN([OL_LIB_BERKELEY_DB2],
89 [AC_CACHE_CHECK([for DB2 library], [ol_cv_lib_db2],
91 AC_CHECK_LIB(db,db_open,[ol_cv_lib_db2=-ldb],[ol_cv_lib_db2=no])
96 dnl --------------------------------------------------------------------
97 dnl Check if Berkeley db2 exists
99 dnl defines ol_cv_berkeley_db2 to 'yes' or 'no'
102 dnl OL_LIB_BERKELEY_DB2
103 dnl OL_HEADER_BERKELEY_DB2
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
112 ol_cv_berkeley_db2=yes
117 dnl ====================================================================
118 dnl Check for db.h/db_185.h is Berkeley DB
120 dnl defines ol_cv_header_db to 'yes' or 'no'
123 dnl OL_HEADER_BERKELEY_DB2
124 dnl AC_CHECK_HEADERS(db_185.h)
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
132 ol_cv_header_db=$ac_cv_header_db_185_h
134 ol_cv_header_db=$ac_cv_header_db_h
138 dnl --------------------------------------------------------------------
139 dnl Check if Berkeley DB library exists
140 dnl Check for dbopen in standard libraries or -ldb
142 dnl defines ol_cv_lib_db to 'yes' or '-ldb' or 'no'
143 dnl 'yes' implies dbopen is in $LIBS
146 dnl AC_CHECK_FUNC(dbopen)
147 dnl AC_CHECK_LIB(db,dbopen)
149 AC_DEFUN([OL_LIB_BERKELEY_DB],
150 [AC_CACHE_CHECK([for Berkeley DB library], [ol_cv_lib_db],
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])
159 dnl --------------------------------------------------------------------
160 dnl Check if Berkeley DB exists
162 dnl defines ol_cv_berkeley_db to 'yes' or 'no'
165 dnl OL_LIB_BERKELEY_DB
166 dnl OL_HEADER_BERKELEY_DB
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
175 ol_cv_berkeley_db=yes
180 dnl ====================================================================
181 dnl Check if GDBM library exists
182 dnl Check for gdbm_open in standard libraries or -lgdbm
184 dnl defines ol_cv_lib_gdbm to 'yes' or '-lgdbm' or 'no'
185 dnl 'yes' implies gdbm_open is in $LIBS
188 dnl AC_CHECK_FUNC(gdbm_open)
189 dnl AC_CHECK_LIB(gdbm,gdbm_open)
191 AC_DEFUN([OL_LIB_GDBM],
192 [AC_CACHE_CHECK(for GDBM library, [ol_cv_lib_gdbm],
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])
201 dnl --------------------------------------------------------------------
202 dnl Check if GDBM exists
204 dnl defines ol_cv_gdbm to 'yes' or 'no'
208 dnl AC_CHECK_HEADERS(gdbm.h)
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
222 dnl ====================================================================
223 dnl Check if NDBM library exists
224 dnl Check for dbm_open in standard libraries or -lndbm or -ldbm
226 dnl defines ol_cv_lib_ndbm to 'yes' or '-lndbm' or -ldbm or 'no'
227 dnl 'yes' implies ndbm_open is in $LIBS
230 dnl AC_CHECK_FUNC(dbm_open)
231 dnl AC_CHECK_LIB(ndbm,dbm_open)
232 dnl AC_CHECK_LIB(dbm,dbm_open)
235 dnl should also check SVR4 case: dbm_open() in -lucb but that
236 dnl would requiring dealing with -L/usr/ucblib
238 AC_DEFUN([OL_LIB_NDBM],
239 [AC_CACHE_CHECK(for NDBM library, [ol_cv_lib_ndbm],
241 AC_CHECK_FUNC(dbm_open,[ol_cv_lib_ndbm=yes], [
242 AC_CHECK_LIB(ndbm,dbm_open,[ol_cv_lib_ndbm=-lndbm], [
243 AC_CHECK_LIB(dbm,dbm_open,[ol_cv_lib_ndbm=-ldbm],
244 [ol_cv_lib_ndbm=no])dnl
251 dnl --------------------------------------------------------------------
252 dnl Check if NDBM exists
254 dnl defines ol_cv_ndbm to 'yes' or 'no'
258 dnl AC_CHECK_HEADERS(ndbm.h)
261 dnl Doesn't handle SVR4 case (see above)
264 [AC_REQUIRE([OL_LIB_NDBM])
265 AC_CHECK_HEADERS(ndbm.h)
266 AC_CACHE_CHECK(for db, [ol_cv_ndbm], [
267 if test $ol_cv_lib_ndbm = no -o $ac_cv_header_ndbm_h = no ; then
275 dnl ====================================================================
276 dnl Check POSIX Thread version
278 dnl defines ol_cv_posix_version to 'final' or 'draft' or 'unknown'
279 dnl 'unknown' implies that the version could not be detected
280 dnl or that pthreads.h does exist. Existance of pthreads.h
281 dnl should be tested separately.
283 AC_DEFUN([OL_POSIX_THREAD_VERSION],
284 [AC_CACHE_CHECK([POSIX thread version],[ol_cv_pthread_version],[
286 # include <pthread.h>
287 /* this check could be improved */
288 # ifdef PTHREAD_ONCE_INIT
291 ], ol_pthread_final=yes, ol_pthread_final=no)
293 AC_EGREP_CPP(draft4,[
294 # include <pthread.h>
295 /* this check could be improved */
296 # ifdef pthread_once_init
299 ], ol_pthread_draft4=yes, ol_pthread_draft4=no)
301 if test $ol_pthread_final = yes -a $ol_pthread_draft4 = no; then
302 ol_cv_pthread_version=final
303 elif test $ol_pthread_final = no -a $ol_pthread_draft4 = yes; then
304 ol_cv_pthread_version=draft4
306 ol_cv_pthread_version=unknown
311 dnl --------------------------------------------------------------------
312 dnl Check LinuxThread
314 dnl defines ol_cv_linux_threads to 'yes' or 'no'
315 dnl 'no' implies pthreads.h is not LinuxThreads or pthreads.h
316 dnl doesn't exists. Existance of pthread.h should separately
319 AC_DEFUN([OL_LINUX_THREADS],
321 AC_CACHE_CHECK([for LinuxThreads], [ol_cv_linux_threads], [
322 res=`grep Linuxthreads /usr/include/pthread.h 2>/dev/null | wc -l`
323 if test "$res" -gt 0 ; then
324 ol_cv_linux_threads=yes
326 ol_cv_linux_threads=no
331 dnl ====================================================================
332 dnl Check for declaration of sys_errlist in one of stdio.h and errno.h.
333 dnl Declaration of sys_errlist on BSD4.4 interferes with our declaration.
334 dnl Reported by Keith Bostic.
335 AC_DEFUN([OL_SYS_ERRLIST],
337 AC_MSG_CHECKING([declaration of sys_errlist])
338 AC_CACHE_VAL(ol_cv_dcl_sys_errlist,[
341 #include <sys/types.h>
342 #include <errno.h> ],
343 [char *c = (char *) *sys_errlist],
344 [ol_cv_dcl_sys_errlist=yes],
345 [ol_cv_dcl_sys_errlist=no])])
346 AC_MSG_RESULT($ol_cv_dcl_sys_errlist)
348 # It's possible (for near-UNIX clones) that sys_errlist doesn't exist
349 if test $ol_cv_dcl_sys_errlist = no ; then
350 AC_DEFINE(DECL_SYS_ERRLIST)
351 AC_MSG_CHECKING([existence of sys_errlist])
352 AC_CACHE_VAL(ol_cv_have_sys_errlist,[
353 AC_TRY_LINK([#include <errno.h>],
354 [char *c = (char *) *sys_errlist],
355 [ol_cv_have_sys_errlist=yes],
356 [ol_cv_have_sys_errlist=no])])
357 AC_MSG_RESULT($ol_cv_have_sys_errlist)