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