1dnl Process this file with autoconf to produce a configure script. 2dnl 3dnl 4dnl Copyright 1998 - 2007 Double Precision, Inc. See COPYING for 5dnl distribution information. 6 7AC_INIT(libuserdb, 0.10, [courier-users@lists.sourceforge.net]) 8 9>confdefs.h # Kill PACKAGE_ macros. 10 11LPATH="$PATH:/usr/local/bin" 12 13AC_CONFIG_SRCDIR(userdb.c) 14AC_CONFIG_AUX_DIR(..) 15AM_INIT_AUTOMAKE([foreign no-define]) 16AC_CONFIG_HEADERS(config.h) 17 18dnl Checks for programs. 19AC_PROG_AWK 20AC_PROG_CC 21AC_PROG_CC_C99 22AC_PROG_INSTALL 23AC_PROG_LN_S 24AC_PROG_LIBTOOL 25AC_PATH_PROGS(PERL, perl5 perl, perl, $LPATH) 26 27if test "$PERL" = "perl" 28then 29 AC_MSG_ERROR(Perl not found.) 30fi 31 32if test "$GCC" = "yes" 33then 34 CFLAGS="$CFLAGS -Wall" 35fi 36 37CFLAGS="$CFLAGS -I.. -I${srcdir}/.. -I../libs -I${srcdir}/../libs" 38 39dnl Checks for libraries. 40 41AC_ARG_WITH(userdb, [ ], userdb="$withval", userdb="/etc/userdb") 42AC_SUBST(userdb) 43USERDB="`echo $userdb | tr '[a-z]' '[A-Z]'`" 44AC_SUBST(USERDB) 45 46AC_ARG_WITH(userdbmandir, [ ], mandir="$withval") 47 48AC_ARG_WITH(userdbtmpdir, [ ], tmpdir="$withval", tmpdir="") 49 50changequote({,}) 51 52if test "$tmpdir" = "" 53then 54 tmpdir=`echo "$userdb" | sed 's/\/[^\/]*$//'` 55fi 56 57changequote([,]) 58 59AC_SUBST(userdbtmpdir) 60AC_SUBST(tmpdir) 61 62AC_ARG_WITH(makedatprog, [ ], makedat="$withval", makedat="$bindir/makedat") 63AC_SUBST(makedat) 64 65if test -d ${srcdir}/../libs/md5 66then 67 AC_DEFINE_UNQUOTED(HAVE_MD5,1,[ Whether libmd5.a is present ]) 68 MD5LIB=../libs/md5/libmd5.la 69else 70 MD5LIB="" 71fi 72AC_SUBST(MD5LIB) 73 74if test -d ${srcdir}/../libs/sha1 75then 76 SHA1LIB=../libs/sha1/libsha1.la 77else 78 SHA1LIB="" 79fi 80AC_SUBST(SHA1LIB) 81 82if test -d ${srcdir}/../libs/libhmac 83then 84 AC_DEFINE_UNQUOTED(HAVE_HMAC,1, [ Whether libhmac.a is present ]) 85 HMACLIB=../libs/libhmac/libhmac.la 86else 87 HMACLIB="" 88fi 89AC_SUBST(HMACLIB) 90 91dnl Checks for header files. 92AC_HEADER_STDC 93AC_CHECK_HEADERS(sys/stat.h sys/time.h unistd.h fcntl.h termios.h crypt.h) 94AC_HEADER_TIME 95 96dnl Checks for typedefs, structures, and compiler characteristics. 97AC_C_CONST 98AC_PID_T 99AC_TYPE_UID_T 100AC_TYPE_SIGNAL 101AC_SYS_LARGEFILE 102 103dnl Other checks 104 105AC_CHECK_LIB(crypt, crypt, CRYPTLIBS="-lcrypt") 106saveLIBS="$LIBS" 107LIBS="$CRYPTLIBS $LIBS" 108AC_CHECK_FUNC(crypt, AC_DEFINE_UNQUOTED(HAVE_CRYPT,1, 109 [ Whether the crypt() function is available ])) 110LIBS="$saveLIBS" 111AC_CACHE_CHECK([for crypt() prototype],userdb_cv_NEED_CRYPT_PROTOTYPE, 112 113 AC_TRY_COMPILE( [ 114 #if HAVE_CRYPT_H 115 #include <crypt.h> 116 #endif 117 #if HAVE_UNISTD_H 118 #include <unistd.h> 119 #endif 120 int crypt(int, int); 121 122 ], [], userdb_cv_NEED_CRYPT_PROTOTYPE=1, 123 userdb_cv_NEED_CRYPT_PROTOTYPE=0 ) 124 125 ) 126 127AC_DEFINE_UNQUOTED(NEED_CRYPT_PROTOTYPE, $userdb_cv_NEED_CRYPT_PROTOTYPE, 128 [ Whether crypt() must be explicitly prototyped ]) 129AC_SUBST(CRYPTLIBS) 130 131AC_CHECK_FUNCS(isatty gettimeofday) 132 133AC_ARG_WITH(random, [ --with-random=/dev/urandom - location of the system random file generator 134--without-random - there is no system random file generator ], 135 random="$withval", 136 random="y") 137 138case "$random" in 139/*) 140 ;; 141y*|1*) 142 AC_CACHE_CHECK([for random source],userdb_cv_RANDOM, 143 144 if test -c /dev/urandom 145 then 146 userdb_cv_RANDOM=/dev/urandom 147 else 148 if test -c /dev/random 149 then 150 userdb_cv_RANDOM=/dev/random 151 else 152 userdb_cv_RANDOM="none" 153 fi 154 fi 155 ) 156 random="$userdb_cv_RANDOM" 157 ;; 158*) 159 random="none" 160 ;; 161esac 162 163if test "$random" != "none" 164then 165 AC_DEFINE_UNQUOTED(RANDOM, "$random", 166 [ System random number generator ]) 167fi 168 169AM_CONDITIONAL(HAVE_SGML, test -d ${srcdir}/../libs/docbook) 170 171AC_OUTPUT(Makefile userdb.pl makeuserdb pw2userdb) 172