]> git.sur5r.net Git - openldap/blob - aclocal.m4
Fixed md5/sha files.
[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 dnl restrictions:
235 dnl             should also check SVR4 case: dbm_open() in -lucb but that
236 dnl             would requiring dealing with -L/usr/ucblib
237 dnl
238 AC_DEFUN([OL_LIB_NDBM],
239 [AC_CACHE_CHECK(for NDBM library, [ol_cv_lib_ndbm],
240 [       ol_LIBS="$LIBS"
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
245                 ])
246         ])
247         LIBS="$ol_LIBS"
248 ])
249 ])dnl
250 dnl
251 dnl --------------------------------------------------------------------
252 dnl Check if NDBM exists
253 dnl
254 dnl defines ol_cv_ndbm to 'yes' or 'no'
255 dnl 
256 dnl uses:
257 dnl             OL_LIB_NDBM
258 dnl             AC_CHECK_HEADERS(ndbm.h)
259 dnl
260 dnl restrictions:
261 dnl             Doesn't handle SVR4 case (see above)
262 dnl
263 AC_DEFUN([OL_NDBM],
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
268                 ol_cv_ndbm=no
269         else
270                 ol_cv_ndbm=yes
271         fi
272 ])
273 ])dnl
274 dnl
275 dnl ====================================================================
276 dnl Check POSIX Thread version 
277 dnl
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.
282 dnl
283 AC_DEFUN([OL_POSIX_THREAD_VERSION],
284 [AC_CACHE_CHECK([POSIX thread version],[ol_cv_pthread_version],[
285         AC_EGREP_CPP(final,[
286 #               include <pthread.h>
287                 /* this check could be improved */
288 #               ifdef PTHREAD_ONCE_INIT
289                         final
290 #               endif
291         ], ol_pthread_final=yes, ol_pthread_final=no)
292
293         AC_EGREP_CPP(draft4,[
294 #               include <pthread.h>
295                 /* this check could be improved */
296 #               ifdef pthread_once_init
297                         draft4
298 #               endif
299         ], ol_pthread_draft4=yes, ol_pthread_draft4=no)
300
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
305         else
306                 ol_cv_pthread_version=unknown
307         fi
308 ])
309 ])dnl
310 dnl
311 dnl --------------------------------------------------------------------
312 dnl Check LinuxThread
313 dnl
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
317 dnl             checked.
318 dnl 
319 AC_DEFUN([OL_LINUX_THREADS],
320 [
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
325         else
326                 ol_cv_linux_threads=no
327         fi
328 ])
329 ])dnl
330 dnl
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],
336 [
337 AC_MSG_CHECKING([declaration of sys_errlist])
338 AC_CACHE_VAL(ol_cv_dcl_sys_errlist,[
339         AC_TRY_COMPILE([
340 #include <stdio.h>
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)
347
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)
358 fi
359 ])dnl