GSS_S_PROMPTING_NEEDED is a bit
[cyrus-sasl.git] / cmulocal / util.m4
1 dnl util.m4--robutil macro
2 dnl Rob Earhart
3 dnl $Id: util.m4,v 1.10 2003/10/08 20:35:26 rjs3 Exp $
4
5 dnl robutil is a collection of stuff I (Rob Earhart) have found useful
6 dnl to have around when writing code; it's the stuff I wind up rewriting
7 dnl every time I start a project.  This does the autoconf setup
8 dnl necessary for it.
9
10 dnl This is a helper macro, here because there're times when I
11 dnl want to know if a type exists or not, but don't want to define
12 dnl it to something else (the way AC_CHECK_TYPE does).
13
14 AC_DEFUN([CMU_CHECK_TYPE_EXISTS], [
15 changequote(<<, >>)
16 define(<<CMU_TYPE_NAME>>, translit(CMU_HAVE_$1, [a-z *], [A-Z_P]))
17 define(<<CMU_CV_NAME>>, translit(cmu_cv_type_$1, [ *], [_p]))
18 changequote([, ])
19   AC_REQUIRE([AC_HEADER_STDC])
20   AC_MSG_CHECKING(for $1)
21   AC_CACHE_VAL(CMU_CV_NAME, [
22     AC_EGREP_CPP([$1[[^a-zA-Z_0-9]]], [
23 #include <sys/types.h>
24 #if STDC_HEADERS
25 #include <stdlib.h>
26 #include <stddef.h>
27 #endif
28 ], CMU_CV_NAME=yes, CMU_CV_NAME=no)])
29   AC_MSG_RESULT($CMU_CV_NAME)
30   if test $CMU_CV_NAME = yes; then
31     AC_DEFINE(CMU_TYPE_NAME)
32   fi
33 ])
34
35 AC_DEFUN([CMU_UTIL], [
36   AC_REQUIRE([AC_PROG_CC])
37   AC_REQUIRE([AM_PROG_CC_STDC])
38   AC_REQUIRE([AC_PROG_RANLIB])
39   AC_REQUIRE([CMU_NANA])
40   AC_REQUIRE([CMU_COMERR])
41   AC_REQUIRE([AC_HEADER_STDC])
42   AC_REQUIRE([AC_TYPE_MODE_T])
43   AC_REQUIRE([AC_C_CONST])
44   AC_CHECK_HEADERS(sys/sysmacros.h)
45   AC_CHECK_HEADER(inttypes.h, AC_DEFINE(HAVE_INTTYPES_H),
46                   CMU_CHECK_TYPE_EXISTS(int8_t)
47                   CMU_CHECK_TYPE_EXISTS(uint8_t)
48                   CMU_CHECK_TYPE_EXISTS(u_int8_t)
49                   CMU_CHECK_TYPE_EXISTS(int16_t)
50                   CMU_CHECK_TYPE_EXISTS(uint16_t)
51                   CMU_CHECK_TYPE_EXISTS(u_int16_t)
52                   CMU_CHECK_TYPE_EXISTS(int32_t)
53                   CMU_CHECK_TYPE_EXISTS(uint32_t)
54                   CMU_CHECK_TYPE_EXISTS(u_int32_t)
55   )
56   dnl I'm not sure why autoconf gets so annoyed when these
57   dnl are embedded as part of the inttypes check, but, whatever,
58   dnl this works.
59   if test "$ac_cv_header_inttypes_h" = no; then
60     AC_CHECK_SIZEOF(short)
61     AC_CHECK_SIZEOF(int)
62     AC_CHECK_SIZEOF(long)
63   fi
64
65   AC_CHECK_TYPE(ssize_t, signed)
66   THREADED_UTIL_OBJECTS=""
67   AC_SUBST(THREADED_UTIL_OBJECTS)
68 ])
69
70 AC_DEFUN([CMU_THREAD_UTIL], [
71   AC_REQUIRE([CMU_UTIL])
72   THREADED_UTIL_OBJECTS="refcache.o rselock.o"
73 ])