]> Pileus Git - ~andy/fetchmail/blob - configure.ac
Pass the tag to ->trail method.
[~andy/fetchmail] / configure.ac
1 dnl Autoconfigure input file for fetchmail
2 dnl Eric S. Raymond <esr@thyrsus.com>
3 dnl Matthias Andree <matthias.andree@gmx.de>
4 dnl
5 dnl Process this file with autoconf to produce a configure script.
6 dnl
7
8 AC_INIT([fetchmail],[6.2.9-rc7])
9 AC_CONFIG_SRCDIR([fetchmail.h])
10 AC_CONFIG_HEADERS([config.h])
11 AC_CONFIG_LIBOBJ_DIR([.])
12
13 AC_CANONICAL_TARGET
14
15 dnl we may need a newer automake version - the oldest tested is 1.7
16 AC_PREREQ(2.59)
17 AM_INIT_AUTOMAKE(1.5 foreign no-installinfo)
18
19 dnl the : states that python is optional
20 AM_PATH_PYTHON(2.0,,:)
21
22 AC_PROG_AWK
23 AC_PROG_CC
24 AC_PROG_INSTALL
25 AC_PROG_CPP                     dnl Later checks need this.
26 AC_PROG_RANLIB
27 AM_PROG_CC_C_O
28 AC_AIX
29 AC_ISC_POSIX
30 AC_MINIX
31 AC_HEADER_STDC
32 AC_HEADER_TIME
33 AC_TYPE_SIZE_T
34 AC_TYPE_PID_T
35 AC_TYPE_SIGNAL
36 AC_CHECK_TYPE(u_int32_t,unsigned int)
37 AC_CHECK_HEADERS([unistd.h termios.h termio.h sgtty.h stdarg.h \
38         sys/itimer.h fcntl.h sys/fcntl.h memory.h sys/wait.h \
39         arpa/inet.h arpa/nameser.h netinet/in.h net/socket.h \
40         sys/select.h sys/socket.h sys/time.h langinfo.h])
41 AC_CHECK_HEADERS([resolv.h],,,[
42 #include <sys/types.h>
43 #ifdef HAVE_NETINET_IN_H
44 #include <netinet/in.h>
45 #endif
46 #ifdef HAVE_ARPA_NAMESER_H
47 #include <arpa/nameser.h>
48 #endif
49 ])
50
51 AC_C_CONST                      dnl getopt needs this.
52
53 AM_PROG_LEX
54 AC_PROG_MAKE_SET
55 AC_PROG_YACC
56
57 # Check for OS special cases
58 case $target_os in
59 darwin*)
60     AC_MSG_NOTICE(found Darwin - Adding -DBIND_8_COMPAT to CFLAGS)
61     CPFLAGS="-DBIND_8_COMPAT"
62     ;;
63 # Check for FreeBSD special case: more libs needed
64 freebsd*)
65     AC_MSG_NOTICE(found FreeBSD - Adding -lmd -lkvm -lcom_err to standard libraries)
66     LIBS="$LIBS -lmd -lkvm -lcom_err"
67     ;;
68 # Check for LynxOS special case: -lbsd needed (at least on 2.3.0) and -s
69 # not working.
70 lynxos*)
71     AC_MSG_NOTICE(found LynxOS - Adding -lbsd to standard libraries)
72     LIBS="$LIBS -lbsd"
73     LDFLAGS=`echo $LDFLAGS | sed "s/-s //"`
74     AC_MSG_NOTICE(found LynxOS - Prepending standard include path to gcc flags)
75     CPFLAGS="-I/usr/include"
76     ;;
77 # Check for Rhapsody special case: it doesn't like -s
78 rhapsody*)
79     AC_MSG_NOTICE(found Rhapsody - Removing -s load flag)
80     LDFLAGS=`echo $LDFLAGS | sed "s/-s //"`
81     ;;
82 esac
83
84 dnl i18n
85 AM_GNU_GETTEXT([external], [need-ngettext])
86 AM_GNU_GETTEXT_VERSION(0.14.1)
87 dnl end i18n
88
89 # Under sysV68, socket and friends are provided by the C library.
90 # -linet does not provide socket, but causes multiple definition
91 # errors at link-time.  It is thus better to only use the C library.
92 # So don't add -linet to the link list unless it's necessary
93 AC_CHECK_FUNC(socket,
94     AC_MSG_RESULT(using libc's socket),
95     AC_CHECK_LIB(socket,socket)
96     AC_CHECK_LIB(inet,socket))
97
98 # The condition in this test copes with the presence of inet_addr in libc6.
99 AC_CHECK_FUNC(inet_addr,
100     AC_MSG_RESULT(using libc's inet_addr),
101     AC_CHECK_LIB(nsl,inet_addr))
102
103 dnl Port hack for Interactive UNIX System V/386 Release 3.2
104 AC_CHECK_LIB(cposix, strchr,
105                 [DEFS="$DEFS -D_SYSV3"
106                 LIBS="$LIBS -lcposix"])
107
108 dnl Port hack for Sparc/NetBSD-1.5
109 dnl
110 dnl NB: this has been disabled as it causes the unconditional
111 dnl addition of libintl to the build, which is both undesired
112 dnl and breaks on Solaris/Blastwave.org machines.
113 dnl
114 dnl AC_CHECK_LIB(intl, gettext,
115 dnl             [LIBS="$LIBS -lintl"])
116
117 AC_REPLACE_FUNCS([strstr strcasecmp memmove stpcpy strlcpy strlcat])
118
119 AC_CHECK_FUNC(MD5Init, [],
120               [AC_LIBSOURCE(md5c.c)
121                EXTRAOBJ="$EXTRAOBJ md5c.\$(OBJEXT)"])
122
123 AC_CHECK_FUNC(getopt_long, [],
124               [AC_LIBSOURCES([getopt.c, getopt1.c])
125                EXTRAOBJ="$EXTRAOBJ getopt.\$(OBJEXT) getopt1.\$(OBJEXT)"])
126
127 AC_FUNC_VPRINTF
128
129 AC_SUBST(EXTRAOBJ)
130
131 AC_CHECK_FUNCS(tcsetattr stty setsid geteuid seteuid dnl
132   res_search strerror syslog snprintf vprintf vsnprintf vsyslog dnl
133   atexit inet_aton strftime setrlimit socketpair sigprocmask dnl
134   sigaction strdup setlocale)
135
136 # Under Red Hat 4.0 (and many other Linuxes) -lresolv is seriously flaky
137 # and breaks gethostbyname(2).  It's better to use the bind stuff in the C
138 # library.  So don't add -lresolv to the link list unless it's necessary
139 # (It will be necessary when using GNU libc6).
140 AC_CHECK_FUNC(res_search,
141     AC_MSG_RESULT(using libc's resolver functions),
142     AC_CHECK_LIB(resolv,res_search, 
143         [AC_DEFINE(HAVE_RES_SEARCH) AC_MSG_RESULT(found resolver functions in libresolv); LIBS="$LIBS -lresolv"], AC_MSG_RESULT(no resolver calls found)))
144
145 dnl Check for libcrypt -- it may live in libc or libcrypt, as on IRIX
146 AC_CHECK_FUNC(crypt, , AC_CHECK_LIB(crypt,crypt))
147
148 dnl Check for RSA refersence library in case we're using SSL
149 AC_CHECK_LIB(rsaref, RSAPublicDecrypt)
150
151 dnl AC_FUNC_SETVBUF_REVERSED
152
153 dnl Check for usable void pointer type
154 AC_MSG_CHECKING(use of void pointer type)
155 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[char *p;
156     void *xmalloc();
157     p = (char *) xmalloc(1);
158    ]])],[AC_DEFINE(HAVE_VOIDPOINTER,1,[Define if your C compiler allows void * as a function result]) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
159
160 dnl Check for ANSI volatile
161 AC_C_VOLATILE
162
163 dnl Check out the wait reality.  We have to assume sys/wait.h is present.
164 AC_CHECK_FUNCS(waitpid wait3)
165 AC_MSG_CHECKING(for union wait);
166 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
167 #include <sys/wait.h>]], [[union wait status; int pid; pid = wait (&status);
168 #ifdef WEXITSTATUS
169 /* Some POSIXoid systems have both the new-style macros and the old
170    union wait type, and they do not work together.  If union wait
171    conflicts with WEXITSTATUS et al, we don't want to use it at all.  */
172 if (WEXITSTATUS (status) != 0) pid = -1;
173 #endif
174 #ifdef HAVE_WAITPID
175 /* Make sure union wait works with waitpid.  */
176 pid = waitpid (-1, &status, 0);
177 #endif
178 ]])],[AC_DEFINE(HAVE_UNION_WAIT,1,Define if 'union wait' is the type of the first arg to wait functions.) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
179
180 AC_MSG_CHECKING(sys_siglist declaration in signal.h or unistd.h)
181 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <signal.h>
182 /* NetBSD declares sys_siglist in <unistd.h>.  */
183 #ifdef HAVE_UNISTD_H
184 #include <unistd.h>
185 #endif]], [[char *msg = *(sys_siglist + 1);]])],[AC_DEFINE(SYS_SIGLIST_DECLARED,1,[Define if 'sys_siglist' is declared by <signal.h>.]) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
186
187 # Find the right directory to put the root-mode PID file in
188 for dir in "/var/run" "/etc"
189 do
190         if test -d $dir 
191         then
192                 break;
193         fi
194 done
195 AC_MSG_RESULT(root-mode pid file will go in $dir)
196 AC_DEFINE_UNQUOTED(PID_DIR, "$dir", directory for PID lock files)
197
198 # We may have a fallback MDA available in case the socket open to the 
199 # local SMTP listener fails.  Best to use procmail for this, as we know
200 # it won't try delivering through local SMTP and cause a mail loop.
201 # Sendmail without the -t option to use the message headers will work too,
202 # not just for sendmail itself but for workalikes like exim.
203 #
204 # Note1: A disadvantage of using procmail is that local alias expansion
205 # according to /etc/aliases won't get done if we fall back.  This doesn't
206 # matter in single-drop mode.
207 #
208 # Note2: it would be a very bad idea to use any MDA that doesn't return
209 # a refuse-to-deliver status on disk- or process-table-full
210 # conditions; mail could get lost that way.  Sendmail and all of the MDAs
211 # like exim that might be lurking under a sendmail alias) do the right 
212 # thing in this circumstance.  Matthias Andree warns that procmail does
213 # not.  
214 #
215 # Note3: Defalt value of fallback is now off.  Matthias writes:
216 #
217 # 1. there is no way to predict when the fallback is used. With some MTAs
218 #    (such as those limiting load average), outer circumstances can cause
219 #    the fallback to kick in.
220
221 # 2. the fallback changes fetchmail behaviour in unpredictable ways. It's
222 #    not only about alias expansion, .forwards to special filters won't
223 #    work, mail may end up in a different place (users claim "mail loss"
224 #    for that).
225
226 # 3. The claim procmail did the right thing with its exit codes is plain
227 #    wrong. I've seen procmail exit with code 1 when it should have exited
228 #    with code 75, like, configuration errors. Procmail is a dangerous
229 #    beast and is best replaced by maildrop.
230
231 # 4. if multiple choices exist (like procmail and maildrop), fetchmail
232 #    cannot tell which one it should choose. Say, your MTA is configured
233 #    to use maildrop to deliver to user's mailboxes, if fetchmail then
234 #    chooses procmail, this is plain wrong.
235 #
236
237 AC_PATH_PROG(procmail, procmail, "", $PATH:/usr/sbin)
238 AC_PATH_PROG(sendmail, sendmail, "", $PATH:/usr/sbin:/usr/lib)
239 AC_PATH_PROG(maildrop, maildrop, "", $PATH:/usr/local/bin)
240
241 ###     use option --disable-fallback to disable fallback MDA
242 ###     use option --enable-fallback=procmail or 
243 ###                --enable-fallback=sendmail to select
244 AC_ARG_ENABLE(fallback,
245         [  --enable-fallback=procmail    enable procmail as fallback
246   --enable-fallback=sendmail    enable /usr/sbin/sendmail as fallback
247   --enable-fallback=maildrop    enable maildrop as fallback
248   --enable-fallback=no          disable fallback],,[enable_fallback=no])
249
250 case "$enable_fallback" in
251         sendmail)       if test -z "$sendmail" ; then 
252                                 AC_MSG_ERROR([Sendmail selected as fallback, but not found])
253                                 #not reached
254                         fi
255                         AC_DEFINE_UNQUOTED(FALLBACK_MDA, "$sendmail -i %T", Fallback MTA to use if defined)
256                         echo "Will use $sendmail as fallback MDA."
257                         ;;
258         procmail)       if test -z "$procmail" ; then
259                                 AC_MSG_ERROR([procmail selected as fallback, but not found])
260                                 #not reached
261                         fi
262                         AC_DEFINE_UNQUOTED(FALLBACK_MDA, "$procmail -d %T")
263                         echo "Will use $procmail as fallback MDA."
264                         ;;
265         maildrop)       if test -z "$maildrop" ; then
266                                 AC_MSG_ERROR([maildrop selected as fallback, but not found])
267                                 #not reached
268                         fi
269                         AC_DEFINE_UNQUOTED(FALLBACK_MDA, "$maildrop -d %T")
270                         echo "Will use $maildrop as fallback MDA."
271                         ;;
272         no|unset)       echo "Will not use a fallback MDA"
273                         ;;
274         auto|yes|set)   if test -n "$sendmail" ; then
275                                 AC_DEFINE_UNQUOTED(FALLBACK_MDA,"$sendmail -i %T")
276                                 echo "Will use $sendmail as fallback MDA."
277                         else
278                                 echo "No fallback MDA available. procmail and maildrop are not eligible"
279                                 echo "for automatic fallback MDA configuration for reliability reasons."
280                         fi
281                         ;;
282         *)              AC_MSG_ERROR([unkown value for --enable-fallback given: $enable_fallback])
283                         #notreached
284                         ;;
285 esac
286
287 AC_CHECK_SIZEOF(short)
288 AC_CHECK_SIZEOF(int)
289 AC_CHECK_SIZEOF(long)
290
291 ###     use option --enable-POP2 to compile in the POP2 support
292 AC_ARG_ENABLE(POP2,
293         [  --enable-POP2           compile in POP2 protocol support (obsolete)],
294         [with_POP2=$enableval],
295         [with_POP2=no])
296 test "$with_POP2" = "yes" && AC_DEFINE(POP2_ENABLE,1,Define if you want POP2 support compiled in)
297
298 ###     use option --disable-POP3 to omit the POP3 support
299 AC_ARG_ENABLE(POP3,
300         [  --disable-POP3          don't compile in POP3 protocol support],
301         [with_POP3=$enableval],
302         [with_POP3=yes])
303 test "$with_POP3" = "yes" && AC_DEFINE(POP3_ENABLE,1,Define if you want POP3 support compiled in)
304
305 ###     use option --disable-IMAP to omit the IMAP support
306 AC_ARG_ENABLE(IMAP,
307         [  --disable-IMAP          don't compile in IMAP protocol support],
308         [with_IMAP=$enableval],
309         [with_IMAP=yes])
310 test "$with_IMAP" = "yes" && AC_DEFINE(IMAP_ENABLE,1,"Define if you want IMAP support compiled in")
311
312 ###     use option --disable-ETRN to omit the ETRN support
313 AC_ARG_ENABLE(ETRN,
314         [  --disable-ETRN          don't compile in ETRN protocol support],
315         [with_ETRN=$enableval],
316         [with_ETRN=yes])
317 test "$with_ETRN" = "yes" && AC_DEFINE(ETRN_ENABLE,1,Define if you want ETRN support compiled in.)
318
319 ###     use option --disable-ODMR to omit the ODMR support
320 AC_ARG_ENABLE(ODMR,
321         [  --disable-ODMR          don't compile in ODMR protocol support],
322         [with_ODMR=$enableval],
323         [with_ODMR=yes])
324 test "$with_ODMR" = "yes" && AC_DEFINE(ODMR_ENABLE,1,Define if you want ODMR support compiled in)
325
326 ###     use option --enable-RPA to compile in the RPA support
327 AC_ARG_ENABLE(RPA,
328         [  --enable-RPA            compile in RPA protocol support],
329         [with_RPA=$enableval],
330         [with_RPA=no])
331 test "$with_RPA" = "yes" && AC_DEFINE(RPA_ENABLE,1,Define if you want RPA support compiled in)
332
333 ###     use option --enable-NTLM to compile in the NTLM support
334 AC_ARG_ENABLE(NTLM,
335         [  --enable-NTLM           compile in NTLM authentication support],
336         [with_NTLM=$enableval],
337         [with_NTLM=no])
338 test "$with_NTLM" = "yes" && AC_DEFINE(NTLM_ENABLE,1,Define if you want NTLM authentication)
339
340 ###     use option --enable-SDPS to compile in the SDPS support
341 AC_ARG_ENABLE(SDPS,
342         [  --enable-SDPS           compile in SDPS protocol support],
343         [with_SDPS=$enableval],
344         [with_SDPS=no])
345 test "$with_SDPS" = "yes" && AC_DEFINE(SDPS_ENABLE,1,Define if you want SDPS support compiled in)
346
347 ###     use option --enable-opie to compile in the OPIE support
348 AC_ARG_ENABLE(opie,
349         [  --enable-opie           support OTP through the OPIE library],
350         [ AC_CHECK_HEADER(opie.h,, [echo 'configure: cannot find <opie.h>, which is required for OPIE support.'; exit 1])
351           AC_CHECK_LIB(opie,opiegenerator,, [echo 'configure: cannot find libopie, which is required for OPIE support.'; exit 1])
352           with_opie=$enableval],
353         [with_opie=no])
354 test "$with_opie" = "yes" && AC_DEFINE(OPIE_ENABLE,1,Define if you want OPIE support compiled in)
355
356 AC_SEARCH_LIBS(getaddrinfo, inet6, [AC_DEFINE(HAVE_GETADDRINFO,1,[define to 1 if you have the getaddrinfo function])])
357 AC_CHECK_FUNCS(getnameinfo)
358
359 # This version of the Kerberos 4 and 5 options addresses the follwing issues:
360
361 # * Build correctly under Heimdal kerberos if it is compiled with db2 and
362 #   OpenSSL support (Debian's is)
363 # * Build the kerberos.c stuff (KPOP) only for kerberosIV, to avoid breakage.
364 #   I don't know if this is 100% correct, but now at least IMAP and POP3
365 #   behave the same way regarding kerberosV.
366 # * Build without any fuss for both kerberosIV and V at the same time.
367 # * Move all the kerberos header mess to kerberos.h, and #include that
368 #   in driver.c and kerberos.c.
369
370 # Tested using the Heimdal Kerberos V libs, Kungliga Tekniska Högskolan (the
371 # Royal Institute of Technology in Stockholm, Sweden)'s kerberos IV libs, and
372 # the MIT reference implementation of KerberosV (all as packaged in Debian).
373
374 ###    use option --with-kerberos5=DIR to point at a Kerberos 5 directory
375 ### make sure --with-ssl is run before --with-kerberos* !
376 AC_ARG_WITH(kerberos5,
377        [  --with-kerberos5=DIR    point fetchmail compilation at a Kerberos 5 directory],
378 [
379 if test "$with_kerberos5" != "no"
380 then
381 # Check for a OpenBSD special case
382 if test "$with_kerberos5" = "yes" && ( test `uname` = "OpenBSD" )
383 then
384   AS_MESSAGE(checking kerberosV for OpenBSD...)
385   AC_DEFINE(HEIMDAL,1,Define if you have HEIMDAL kerberos 5)
386   AC_DEFINE(KERBEROS_V5,1,Define if you have Kerberos V5)
387   CEFLAGS="$CEFLAGS -I/usr/include/kerberosV"
388   LIBS="$LIBS -lasn1 -lkrb5 -lcom_err -lkafs"
389 elif krb5-config 2> /dev/null >/dev/null ; then
390   krb5_prefix=`krb5-config --prefix krb5`
391   AC_MSG_RESULT([krb5-config points to kerberosV under $krb5_prefix])
392   if test -f ${krb5_prefix}/include/et/com_err.h && \
393    ! test -f ${krb5_prefix}/include/com_err.h  ; then
394     CEFLAGS="$CEFLAGS -I${krb5_prefix}/include/et"
395   fi
396   unset krb5_prefix
397   CEFLAGS="$CEFLAGS `krb5-config --cflags krb5`"
398   LIBS="$LIBS `krb5-config --libs krb5`"
399   AC_DEFINE(KERBEROS_V5)
400 else
401   if test "$with_kerberos5" != "yes" 
402   then
403       LDEFLAGS="$LDEFLAGS -L${with_kerberos5}/lib"
404       searchdirs="$with_kerberos5"
405   else
406       searchdirs="/usr/kerberos /usr/local/krb5 /usr/athena /usr"
407   fi
408   with_kerberos5=
409   for dir in $searchdirs
410   do AC_MSG_CHECKING([for Kerberos V in $dir])
411      if test -f "$dir/include/krb5.h"
412      then
413         ac_krblibs=
414         if test -f "$dir/include/roken.h"
415         then
416            ac_krblibs="-lasn1 -lroken -lcom_err"
417            AC_MSG_RESULT([Heimdal found])
418           dnl Attempt to detect if we need to -ldb2 to link Heimdal
419           dnl we assume we do if it is available
420            AC_CHECK_LIB(db2, db_open, ac_krblibs="$ac_krblibs -ldb2", [],
421                 ${LDEFLAGS})
422            AC_CHECK_LIB(des, des_string_to_key, libk5crypto=-ldes,
423               AC_CHECK_LIB(ssl, MD5_Init, [],
424                 AC_MSG_ERROR([DES libraries not found. Try adding --with-ssl to enable OpenSSL support]),
425                 ${LDEFLAGS} ${ac_krblibs}),
426            ${LDEFLAGS} ${ac_krblibs})
427            AC_DEFINE(HEIMDAL)
428         else
429           AC_MSG_RESULT([found])
430           ac_krblibs="-lcom_err"
431            AC_CHECK_LIB(crypto,
432              krb5_des_string_to_key,
433              libk5crypto=-lcrypto,
434                 AC_CHECK_LIB(k5crypto,
435                    krb5_des_string_to_key,
436                    libk5crypto=-lk5crypto,
437                       AC_MSG_ERROR([Kerberos 5 DES libraries not found]),
438                    ${LDEFLAGS} ${ac_krblibs}),
439                  ${LDEFLAGS} ${ac_krblibs})
440         fi
441         AC_CHECK_LIB(krb5, krb5_init_context,[],
442            continue,
443            ${LDEFLAGS} ${ac_krblibs})
444         AC_DEFINE(KERBEROS_V5)
445         test "$dir" != "/usr" && CEFLAGS="$CEFLAGS -I$dir/include"
446         LDEFLAGS="$LDEFLAGS -L$dir/lib"
447        LIBS="$LIBS $ac_krblibs $libk5crypto"
448         with_kerberos5=$dir
449         break
450      else
451         AC_MSG_RESULT([not found])
452      fi
453   done
454   if test -z "$with_kerberos5" ; then
455      AC_MSG_ERROR([Kerberos 5 libraries not found])
456   fi
457 fi
458 fi
459 ]) dnl --with-kerberos5=DIR
460
461 ###    use option --with-kerberos=DIR to point at a Kerberos 4 directory
462 AC_ARG_WITH(kerberos,
463        [  --with-kerberos=DIR     point fetchmail compilation at a Kerberos 4 directory],
464 [
465 if test "$with_kerberos" != "no"
466 then
467 # Check for a NetBSD/OpenBSD special case
468 if test "$with_kerberos" = "yes" && ( test `uname` = "NetBSD" || test `uname` = "OpenBSD" )
469 then
470   AS_MESSAGE(checking kerberosIV for `uname`...)
471   AC_DEFINE(KERBEROS_V4,1,Define if you have Kerberos V4)
472   CEFLAGS="$CEFLAGS -I/usr/include/kerberosIV"
473   LIBS="$LIBS -lkrb -ldes"
474 elif krb4-config 2> /dev/null >/dev/null ; then
475   krb4_prefix=`krb4-config --prefix`
476   AC_MSG_RESULT([krb4-config points to kerberosIV under $krb4_prefix])
477   unset krb4_prefix
478   CEFLAGS="$CEFLAGS `krb4-config --cflags`"
479   LIBS="$LIBS `krb4-config --libs`"
480   AC_DEFINE(KERBEROS_V4)
481 elif krb5-config 2> /dev/null >/dev/null ; then
482   krb4_prefix=`krb5-config --prefix krb4`
483   AC_MSG_RESULT([krb5-config points to kerberosIV under $krb4_prefix])
484   if test -f ${krb4_prefix}/include/kerberosIV/krb.h ; then
485     AC_DEFINE(KERBEROS_V4_V5,1,Define if you have Kerberos V4 headers under a kerberosIV directory)
486   fi
487   unset krb4_prefix
488   CEFLAGS="$CEFLAGS `krb5-config --cflags krb4`"
489   LIBS="$LIBS `krb5-config --libs krb4`"
490   AC_DEFINE(KERBEROS_V4)
491 else
492   #we need to detect when we're building under a kerberosV compatibility
493   #layer, btw...
494   if test "$with_kerberos" != "yes" ; then
495      searchdirs="$with_kerberos"
496   else
497      searchdirs="$with_kerberos5 /usr/kerberos /usr/kerberosIV /usr/athena /usr"
498   fi
499   with_kerberos=
500   ac_saveLDFLAGS="$LDFLAGS"
501   for dir in $searchdirs
502   do
503      AC_MSG_CHECKING([for Kerberos IV in $dir])
504      if test -f "$dir/include/krb.h" || test -f "$dir/include/krb4.h" \
505             || test -f "$dir/include/kerberosIV/krb.h"
506      then
507         AC_MSG_RESULT([found])
508      else
509         AC_MSG_RESULT([not found])
510        continue
511      fi
512      #Find libs
513      if test -f "$with_kerberos5/roken.h" ; then
514        AC_CHECK_LIB(45, krb_mk_req)
515      fi
516      LDFLAGS="-L$dir/lib $ac_saveLDFLAGS"
517      if test `uname` = "FreeBSD"; then
518         AC_SEARCH_LIBS(_ossl_old_des_string_to_key, [des425 des crypto], [], continue)
519      else
520         AC_SEARCH_LIBS(des_string_to_key, [crypto], [], continue)
521      fi
522      AC_SEARCH_LIBS(krb_realmofhost, [krb4 krb], [], continue)
523      with_kerberos="$dir"
524      if test -f "$dir/include/kerberosIV/krb.h" ; then
525         dir="$dir/include/kerberosIV"
526      else
527        dir="$dir/include"
528      fi
529      AC_DEFINE(KERBEROS_V4)
530      test -f "$with_kerberos5/roken.h" && AC_DEFINE(HEIMDAL)
531      test "$dir" != "/usr/include" && CEFLAGS="$CEFLAGS -I$dir"
532      LDEFLAGS="$LDEFLAGS -L$with_kerberos/lib"
533      break
534   done
535   if test -z "$with_kerberos" ; then
536      AC_MSG_ERROR([Kerberos 4 libraries not found])
537   fi
538   LDFLAGS="$ac_saveLDFLAGS"
539 fi
540 fi
541 ]) dnl --with-kerberos=DIR
542
543 ###     use option --with-ssl to compile in the SSL support
544 AC_ARG_WITH(ssl,
545         [  --with-ssl=[DIR]        enable SSL support using libraries in DIR],
546         [with_ssl=$withval],
547         [with_ssl=no])
548 test "$with_ssl" != "no" && AC_DEFINE(SSL_ENABLE,1,Define if you want SSL support compiled in)
549
550 if test "$with_ssl" = "yes"
551 then
552     #   He didn't specify an SSL location.  Let's look at some common
553     #   directories where SSL has been found in the past and try and auto
554     #   configure for SSL.  OpenSSL determination will be made later.
555     #   This will screw up if an OpenSSL install is located in a later
556     #   directory than an older SSLeay install, but the user should fix that
557     #   anyways and he can override on the configure line.
558     #   Just testing for directories is not sufficient, /usr exists on
559     #   all systems!
560     for ac_dir in \
561       /usr/local/ssl \
562       /usr/local \
563       /usr/ssl \
564       /usr \
565       /local/ssl \
566       /opt/ssl \
567       /opt/csw \
568       ; \
569     do
570         if test -r "$ac_dir/include/openssl/ssl.h" ; then
571             with_ssl=$ac_dir
572             break;
573         fi
574     done
575 fi
576
577 if test -n "$with_ssl" -a "$with_ssl" != "no"
578 then
579   # With the autoconfigure above, the only time this is going to be
580   # true is going to be when we could not find the headers.  If they
581   # are not in system standard locations, we are going to be broken.
582   if test "$with_ssl" = "yes"
583   then
584     # Let's just define the standard location for the SSLeay root
585     with_ssl="/usr/local/ssl"
586   fi
587   if test -r $with_ssl/include/openssl/ssl.h
588   then
589     ### ssl.h found under openssl.  Use openssl configuration preferentially,
590     echo "Enabling OpenSSL support in $with_ssl"
591     test "$with_ssl" != "/usr" && CEFLAGS="$CEFLAGS -I$with_ssl/include"
592     ### In Red Hat 9, this file includes a reference to <krb5.h>, so we
593     ### force the Kerberos direcory onto the include path so it will build.
594     CEFLAGS="$CEFLAGS -I/usr/kerberos/include"
595     ### OpenBSD comes with ssl headers
596   else
597     AC_MSG_ERROR([SSL support enabled, but OpenSSL not found])
598   fi
599   LDEFLAGS="$LDEFLAGS -L$with_ssl/lib"
600   LIBS="$LIBS -lssl -lcrypto"
601   dnl check if -ldl is needed
602   AC_MSG_CHECKING([for additional library dependencies of SSL])
603   found=0
604   save_LIBS="$LIBS"
605   for i in "" "-ldl" ; do
606       LIBS="$LDEFLAGS $save_LIBS $i"
607       AC_LINK_IFELSE([AC_LANG_PROGRAM(,[SSL_library_init()])],[found=1; break])
608   done
609   if test $found = 0 ; then
610       AC_MSG_RESULT([error])
611       AC_MSG_ERROR([cannot link with SSL - check config.log])
612   fi
613   LIBS="$save_LIBS $i"
614   if test "$i" = "" ; then i="(none)" ; fi
615   AC_MSG_RESULT($i)
616   dnl XXX FIXME: use pkg-config if available!
617   AC_DEFINE(SSL_ENABLE)
618 else
619   echo 'Disabling SSL support...'
620 fi
621
622 ###     use option --with-socks=DIR to point at SOCKS library
623 AC_ARG_WITH(socks,
624         [  --with-socks[=DIR]      add built-in SOCKS firewall access],
625 [
626 if test "$with_socks" != no
627 then
628     if test "$with_socks" != yes
629     then
630         LDEFLAGS="$LDEFLAGS -L$with_socks"
631     else
632         AC_CHECK_LIB(socks, Rconnect,,
633                AC_MSG_ERROR([could not find libsocks which is needed for built-in SOCKS support]))
634     fi
635     AC_DEFINE(HAVE_SOCKS,1,Define if you want built-in SOCKS support)
636     CEFLAGS="$CEFLAGS -Dconnect=Rconnect -Dgetsockname=Rgetsockname -Dbind=Rbind -Daccept=Raccept -Dlisten=Rlisten -Dselect=Rselect"
637     LIBS="-lsocks $LIBS"
638 fi])
639
640 ###     use option --with-socks5=DIR to point at SOCKS library
641 AC_ARG_WITH(socks5,
642         [  --with-socks5[=DIR]     add built-in SOCKS5 firewall access],
643 [
644 if test "$with_socks5" != no
645 then
646   if test "$with_socks5" != yes
647   then
648     LDEFLAGS="$LDEFLAGS -L$with_socks5"
649   fi
650   ac_savedLDFLAGS="$LDFLAGS"
651   LDFLAGS="$LDEFLAGS $LDFLAGS"
652   AC_CHECK_LIB(socks5, SOCKSconnect,,
653         AC_MSG_ERROR([could not find libsocks5 which is needed for built-in SOCKS5 support]))
654   AC_DEFINE(HAVE_SOCKS)
655   CEFLAGS="$CEFLAGS -Dconnect=SOCKSconnect -Dgetsockname=SOCKSgetsockname -Dbind=SOCKSbind -Daccept=SOCKSaccept -Dlisten=SOCKSlisten -Dselect=SOCKSselect -Drecvfrom=SOCKSrecvfrom -Dsendto=SOCKSsendto -Drecv=SOCKSrecv -Dsend=SOCKSsend -Dread=SOCKSread -Dwrite=SOCKSwrite -Drresvport=SOCKSrresvport -Dshutdown=SOCKSshutdown -Dlisten=SOCKSlisten -Dclose=SOCKSclose -Ddup=SOCKSdup -Ddup2=SOCKSdup2 -Dgethostbyname=SOCKSgethostbyname"
656   AC_CHECK_FUNC(SOCKSfclose, [CFLAGS="$CFLAGS -Dfclose=SOCKSfclose"])
657   LDFLAGS="$ac_savedLDFLAGS"
658 fi])
659
660 ACX_WHICH_GETHOSTBYNAME_R
661
662 ###     use option --with-hesiod=DIR to point at a HESIOD directory
663 AC_ma_SEARCH_PACKAGE(hesiod, hesiod_getmailhost, /usr/athena /usr /usr/local,hesiod, hesiod.h)
664
665 ###     use option --with-gssapi=DIR to compile in GSSAPI support
666 AC_ARG_WITH(gssapi,
667         [  --with-gssapi[=DIR]     compile in GSSAPI support using libraries in DIR],
668 [
669 if test "$with_gssapi" != "no"
670 then
671   if test "$with_gssapi" = "yes" -a -n "$with_kerberos5"
672   then
673     with_gssapi=$with_kerberos5
674   fi
675   if test "$with_gssapi" != "yes" -a -n "$with_gssapi"
676   then
677     CFLAGS="$CFLAGS -I$with_gssapi/include"
678     LDFLAGS="$LDFLAGS -L$with_gssapi/lib"
679   fi
680
681   AC_CHECK_LIB(gss, gss_check_version, LIBS="$LIBS -lgss", nogss=t)
682   if test -n "$nogss"
683   then
684   if test -f "$with_gssapi/include/roken.h"
685   then
686      LIBS="$LIBS -lkrb5 -lasn1 -ldes -lroken -ldb -ldl"
687      AC_CHECK_LIB(gssapi, gss_init_sec_context,LIBS="$LIBS -lgssapi",
688                   AC_MSG_ERROR([could not find libgssapi which is needed for GSSAPI support]), )
689      AC_DEFINE(HEIMDAL)
690   else
691      AC_CHECK_LIB(gssapi_krb5, gss_init_sec_context,LIBS="$LIBS -lgssapi_krb5",
692                   AC_MSG_ERROR([could not find libgssapi_krb5 which is needed for GSSAPI support]), -lkrb5)
693   fi
694   fi
695   AC_DEFINE(GSSAPI,1,Define if you want GSSAPI authentication)
696   save_CPPFLAGS=$CPPFLAGS
697   CPPFLAGS="-I$with_gssapi/include"
698   AC_CHECK_HEADERS(gss.h gssapi.h gssapi/gssapi.h gssapi/gssapi_generic.h)
699   if test "$ac_cv_header_gssapi_h" = "yes"; then
700     AC_EGREP_HEADER(GSS_C_NT_HOSTBASED_SERVICE, gssapi.h, AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE,1,Define if you have MIT kerberos))
701   else
702     AC_EGREP_HEADER(GSS_C_NT_HOSTBASED_SERVICE, gssapi/gssapi.h, AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE))
703   fi
704 fi])
705
706 AC_SUBST(CPFLAGS)
707 AC_SUBST(CEFLAGS)
708 AC_SUBST(LDEFLAGS)
709
710 dnl ,------------------------------------------------------------------
711 dnl Check if we need TRIO
712 needtrio=0
713 if test "$FORCE_TRIO" = "yes" ; then
714     needtrio=1
715     ac_cv_func_vsnprintf=no
716     ac_cv_func_snprintf=no
717 fi
718 if test "x$ac_cv_func_snprintf" != "xyes" ; then
719     AC_DEFINE(snprintf, trio_snprintf,
720               [Define to trio_snprintf if your system lacks snprintf])
721     needtrio=1
722 fi
723 if test "x$ac_cv_func_vsnprintf" != "xyes" ; then
724     AC_DEFINE(vsnprintf, trio_vsnprintf,
725               [Define to trio_vsnprintf if your system lacks vsnprintf])
726     needtrio=1
727 fi
728 AM_CONDITIONAL(NEED_TRIO, test "$needtrio" = 1)
729
730 dnl TRIO IEEE compiler option for Alpha
731 dnl
732 if test "$needtrio" = 1 ; then
733     AC_MSG_CHECKING(for IEEE compilation options)
734     AC_CACHE_VAL(ac_cv_ieee_option, [
735     AC_TRY_COMPILE(,[
736     #if !(defined(__alpha) && (defined(__DECC) || defined(__DECCXX) || (defined(__osf__) && defined(__LANGUAGE_C__))) && (defined(VMS) || defined(__VMS)))
737     # error "Option needed"
738     #endif
739     ],ac_cv_ieee_option="/IEEE_MODE=UNDERFLOW_TO_ZERO/FLOAT=IEEE",
740     AC_TRY_COMPILE(,[
741     #if !(defined(__alpha) && (defined(__DECC) || defined(__DECCXX) || (defined(__osf__) && defined(__LANGUAGE_C__))) && !(defined(VMS) || defined(__VMS)) && !defined(_CFE))
742     # error "Option needed"
743     #endif
744     ],ac_cv_ieee_option="-ieee",
745     AC_TRY_COMPILE(,[
746     #if !(defined(__alpha) && (defined(__GNUC__) && (defined(__osf__) || defined(__linux__))))
747     # error "Option needed"
748     #endif
749     ],ac_cv_ieee_option="-mieee",
750     ac_cv_ieee_option="none"
751     )
752     )
753     )
754     ])
755     AC_MSG_RESULT($ac_cv_ieee_option)
756     if test $ac_cv_ieee_option != none; then
757       CFLAGS="${CFLAGS} ${ac_cv_ieee_option}"
758     fi
759 fi
760 dnl ----------------------------------------------------------------'
761
762 AC_CONFIG_FILES([Makefile m4/Makefile po/Makefile.in])
763 AC_OUTPUT
764
765 dnl Local Variables:
766 dnl comment-start: "dnl "
767 dnl comment-end: ""
768 dnl comment-start-skip: "\\bdnl\\b\\s *"
769 dnl compile-command: "make configure config.h.in"
770 dnl End: