]> git.sur5r.net Git - openldap/blob - aclocal.m4
Import of GTK-tool
[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  if test $ol_cv_berkeley_db2 = yes ; then
116         AC_DEFINE(HAVE_BERKELEY_DB2,1)
117  fi
118 ])dnl
119 dnl
120 dnl ====================================================================
121 dnl Check for db.h/db_185.h is Berkeley DB
122 dnl
123 dnl defines ol_cv_header_db to 'yes' or 'no'
124 dnl
125 dnl uses:
126 dnl             OL_HEADER_BERKELEY_DB2
127 dnl             AC_CHECK_HEADERS(db_185.h)
128 dnl
129 AC_DEFUN([OL_HEADER_BERKELEY_DB],
130 [AC_REQUIRE([OL_HEADER_BERKELEY_DB2])
131 AC_CHECK_HEADERS(db_185.h)
132 if test $ol_cv_header_db2 = yes ; then
133         dnl db.h is db2! 
134
135         ol_cv_header_db=$ac_cv_header_db_185_h
136 else
137         ol_cv_header_db=$ac_cv_header_db_h
138 fi
139 ])dnl
140 dnl
141 dnl --------------------------------------------------------------------
142 dnl Check if Berkeley DB library exists
143 dnl Check for dbopen in standard libraries or -ldb
144 dnl
145 dnl defines ol_cv_lib_db to 'yes' or '-ldb' or 'no'
146 dnl             'yes' implies dbopen is in $LIBS
147 dnl
148 dnl uses:
149 dnl             AC_CHECK_FUNC(dbopen)
150 dnl             AC_CHECK_LIB(db,dbopen)
151 dnl
152 AC_DEFUN([OL_LIB_BERKELEY_DB],
153 [AC_CACHE_CHECK([for Berkeley DB library], [ol_cv_lib_db],
154 [       ol_LIBS="$LIBS"
155         AC_CHECK_FUNC(dbopen,[ol_cv_lib_db=yes], [
156                 AC_CHECK_LIB(db,dbopen,[ol_cv_lib_db=-ldb],[ol_cv_lib_db=no])
157         ])
158         LIBS="$ol_LIBS"
159 ])
160 ])dnl
161 dnl
162 dnl --------------------------------------------------------------------
163 dnl Check if Berkeley DB exists
164 dnl
165 dnl defines ol_cv_berkeley_db to 'yes' or 'no'
166 dnl 
167 dnl uses:
168 dnl             OL_LIB_BERKELEY_DB
169 dnl             OL_HEADER_BERKELEY_DB
170 dnl
171 AC_DEFUN([OL_BERKELEY_DB],
172 [AC_REQUIRE([OL_LIB_BERKELEY_DB])
173  AC_REQUIRE([OL_HEADER_BERKELEY_DB])
174  AC_CACHE_CHECK([for Berkeley DB], [ol_cv_berkeley_db], [
175         if test $ol_cv_lib_db = no -o $ol_cv_header_db = no ; then
176                 ol_cv_berkeley_db=no
177         else
178                 ol_cv_berkeley_db=yes
179         fi
180 ])
181  if test $ol_cv_berkeley_db = yes ; then
182         AC_DEFINE(HAVE_BERKELEY_DB,1)
183  fi
184 ])dnl
185 dnl
186 dnl ====================================================================
187 dnl Check if GDBM library exists
188 dnl Check for gdbm_open in standard libraries or -lgdbm
189 dnl
190 dnl defines ol_cv_lib_gdbm to 'yes' or '-lgdbm' or 'no'
191 dnl             'yes' implies gdbm_open is in $LIBS
192 dnl
193 dnl uses:
194 dnl             AC_CHECK_FUNC(gdbm_open)
195 dnl             AC_CHECK_LIB(gdbm,gdbm_open)
196 dnl
197 AC_DEFUN([OL_LIB_GDBM],
198 [AC_CACHE_CHECK(for GDBM library, [ol_cv_lib_gdbm],
199 [       ol_LIBS="$LIBS"
200         AC_CHECK_FUNC(gdbm_open,[ol_cv_lib_gdbm=yes], [
201                 AC_CHECK_LIB(gdbm,gdbm_open,[ol_cv_lib_gdbm=-lgdbm],[ol_cv_lib_gdbm=no])
202         ])
203         LIBS="$ol_LIBS"
204 ])
205 ])dnl
206 dnl
207 dnl --------------------------------------------------------------------
208 dnl Check if GDBM exists
209 dnl
210 dnl defines ol_cv_gdbm to 'yes' or 'no'
211 dnl 
212 dnl uses:
213 dnl             OL_LIB_GDBM
214 dnl             AC_CHECK_HEADERS(gdbm.h)
215 dnl
216 AC_DEFUN([OL_GDBM],
217 [AC_REQUIRE([OL_LIB_GDBM])
218  AC_CHECK_HEADERS(gdbm.h)
219  AC_CACHE_CHECK(for db, [ol_cv_gdbm], [
220         if test $ol_cv_lib_gdbm = no -o $ac_cv_header_gdbm_h = no ; then
221                 ol_cv_gdbm=no
222         else
223                 ol_cv_gdbm=yes
224         fi
225 ])
226  if test $ol_cv_gdbm = yes ; then
227         AC_DEFINE(HAVE_GDBM,1)
228  fi
229 ])dnl
230 dnl
231 dnl ====================================================================
232 dnl Check if NDBM library exists
233 dnl Check for dbm_open in standard libraries or -lndbm or -ldbm
234 dnl
235 dnl defines ol_cv_lib_ndbm to 'yes' or '-lndbm' or -ldbm or 'no'
236 dnl             'yes' implies ndbm_open is in $LIBS
237 dnl
238 dnl uses:
239 dnl             AC_CHECK_FUNC(dbm_open)
240 dnl             AC_CHECK_LIB(ndbm,dbm_open)
241 dnl             AC_CHECK_LIB(dbm,dbm_open)
242 dnl
243 dnl restrictions:
244 dnl             should also check SVR4 case: dbm_open() in -lucb but that
245 dnl             would requiring dealing with -L/usr/ucblib
246 dnl
247 AC_DEFUN([OL_LIB_NDBM],
248 [AC_CACHE_CHECK(for NDBM library, [ol_cv_lib_ndbm],
249 [       ol_LIBS="$LIBS"
250         AC_CHECK_FUNC(dbm_open,[ol_cv_lib_ndbm=yes], [
251                 AC_CHECK_LIB(ndbm,dbm_open,[ol_cv_lib_ndbm=-lndbm], [
252                         AC_CHECK_LIB(dbm,dbm_open,[ol_cv_lib_ndbm=-ldbm],
253                                 [ol_cv_lib_ndbm=no])dnl
254                 ])
255         ])
256         LIBS="$ol_LIBS"
257 ])
258 ])dnl
259 dnl
260 dnl --------------------------------------------------------------------
261 dnl Check if NDBM exists
262 dnl
263 dnl defines ol_cv_ndbm to 'yes' or 'no'
264 dnl 
265 dnl uses:
266 dnl             OL_LIB_NDBM
267 dnl             AC_CHECK_HEADERS(ndbm.h)
268 dnl
269 dnl restrictions:
270 dnl             Doesn't handle SVR4 case (see above)
271 dnl
272 AC_DEFUN([OL_NDBM],
273 [AC_REQUIRE([OL_LIB_NDBM])
274  AC_CHECK_HEADERS(ndbm.h)
275  AC_CACHE_CHECK(for db, [ol_cv_ndbm], [
276         if test $ol_cv_lib_ndbm = no -o $ac_cv_header_ndbm_h = no ; then
277                 ol_cv_ndbm=no
278         else
279                 ol_cv_ndbm=yes
280         fi
281 ])
282  if test $ol_cv_ndbm = yes ; then
283         AC_DEFINE(HAVE_NDBM,1)
284  fi
285 ])dnl
286 dnl
287 dnl ====================================================================
288 dnl Check POSIX Thread version 
289 dnl
290 dnl defines ol_cv_posix_version to 'final' or 'draft' or 'unknown'
291 dnl     'unknown' implies that the version could not be detected
292 dnl             or that pthreads.h does exist.  Existance of pthreads.h
293 dnl             should be tested separately.
294 dnl
295 AC_DEFUN([OL_POSIX_THREAD_VERSION],
296 [AC_CACHE_CHECK([POSIX thread version],[ol_cv_pthread_version],[
297         AC_EGREP_CPP(final,[
298 #               include <pthread.h>
299                 /* this check could be improved */
300 #               ifdef PTHREAD_ONCE_INIT
301                         final
302 #               endif
303         ], ol_pthread_final=yes, ol_pthread_final=no)
304
305         AC_EGREP_CPP(draft4,[
306 #               include <pthread.h>
307                 /* this check could be improved */
308 #               ifdef pthread_once_init
309                         draft4
310 #               endif
311         ], ol_pthread_draft4=yes, ol_pthread_draft4=no)
312
313         if test $ol_pthread_final = yes -a $ol_pthread_draft4 = no; then
314                 ol_cv_pthread_version=final
315         elif test $ol_pthread_final = no -a $ol_pthread_draft4 = yes; then
316                 ol_cv_pthread_version=draft4
317         else
318                 ol_cv_pthread_version=unknown
319         fi
320 ])
321 ])dnl
322 dnl
323 dnl --------------------------------------------------------------------
324 dnl Check LinuxThread
325 dnl
326 dnl defines ol_cv_linux_threads to 'yes' or 'no'
327 dnl             'no' implies pthreads.h is not LinuxThreads or pthreads.h
328 dnl             doesn't exists.  Existance of pthread.h should separately
329 dnl             checked.
330 dnl 
331 AC_DEFUN([OL_LINUX_THREADS],
332 [
333 AC_CACHE_CHECK([for LinuxThreads], [ol_cv_linux_threads], [
334         res=`grep Linuxthreads /usr/include/pthread.h 2>/dev/null | wc -l`
335         if test "$res" -gt 0 ; then
336                 ol_cv_linux_threads=yes
337         else
338                 ol_cv_linux_threads=no
339         fi
340 ])
341 ])dnl
342 dnl
343 dnl ====================================================================
344 dnl Check if toupper() requires islower() to be called first
345 AC_DEFUN([OL_C_UPPER_LOWER],
346 [
347 AC_MSG_CHECKING([if toupper() requires islower()])
348 AC_CACHE_VAL(ol_cv_c_upper_lower,[
349         AC_TRY_RUN([
350 #include <ctype.h>
351 main()
352 {
353         if ('C' == toupper('C'))
354                 exit(0);
355         else
356                 exit(1);
357 }],
358         [ol_cv_c_upper_lower=no],
359         [ol_cv_c_upper_lower=yes],
360         [ol_cv_c_upper_lower=safe])])
361 AC_MSG_RESULT($ol_cv_c_upper_lower)
362 if test $ol_cv_c_upper_lower != no ; then
363         AC_DEFINE(C_UPPER_LOWER,1)
364 fi
365 ])
366
367 dnl ====================================================================
368 dnl Check for declaration of sys_errlist in one of stdio.h and errno.h.
369 dnl Declaration of sys_errlist on BSD4.4 interferes with our declaration.
370 dnl Reported by Keith Bostic.
371 AC_DEFUN([OL_SYS_ERRLIST],
372 [
373 AC_MSG_CHECKING([declaration of sys_errlist])
374 AC_CACHE_VAL(ol_cv_dcl_sys_errlist,[
375         AC_TRY_COMPILE([
376 #include <stdio.h>
377 #include <sys/types.h>
378 #include <errno.h> ],
379         [char *c = (char *) *sys_errlist],
380         [ol_cv_dcl_sys_errlist=yes],
381         [ol_cv_dcl_sys_errlist=no])])
382 AC_MSG_RESULT($ol_cv_dcl_sys_errlist)
383
384 # It's possible (for near-UNIX clones) that sys_errlist doesn't exist
385 if test $ol_cv_dcl_sys_errlist = no ; then
386         AC_DEFINE(DECL_SYS_ERRLIST,1)
387         AC_MSG_CHECKING([existence of sys_errlist])
388         AC_CACHE_VAL(ol_cv_have_sys_errlist,[
389                 AC_TRY_LINK([#include <errno.h>],
390                         [char *c = (char *) *sys_errlist],
391                         [ol_cv_have_sys_errlist=yes],
392                         [ol_cv_have_sys_errlist=no])])
393         AC_MSG_RESULT($ol_cv_have_sys_errlist)
394 fi
395 ])dnl