dnl Autoconfigure input file for fetchmail dnl Eric S. Raymond dnl dnl Process this file with autoconf to produce a configure script. dnl AC_INIT(fetchmail.h) dnl A distinctive file to look for in srcdir. AC_CONFIG_HEADER(config.h) dnl We want these before the checks, so the checks can modify their values. test -z "$CFLAGS" && CFLAGS=-O AC_SUBST(CFLAGS) test -z "$LDFLAGS" && LDFLAGS=-s AC_SUBST(LDFLAGS) AC_CANONICAL_HOST AC_PROG_CC AC_PROG_INSTALL AC_PROG_CPP dnl Later checks need this. AC_PROG_CC_C_O AC_AIX AC_ISC_POSIX AC_MINIX AC_HEADER_STDC AC_TYPE_SIZE_T AC_TYPE_PID_T AC_TYPE_SIGNAL AC_CHECK_HEADERS(unistd.h termios.h termio.h sgtty.h stdarg.h alloca.h sys/itimer.h fcntl.h sys/fcntl.h memory.h) AC_C_CONST dnl getopt needs this. AC_PROG_LEX AC_PROG_YACC AC_SUBST(CEFLAGS) AC_SUBST(LDEFLAGS) AC_SUBST(LIBOBJS) # Under sysV68, socket and friends are provided by the C library. # -linet does not provide socket, but causes multiple definition # errors at link-time. It is thus better to only use the C library. # So don't add -linet to the link list unless it's necessary AC_CHECK_FUNC(socket, AC_MSG_RESULT(using libc's socket), AC_CHECK_LIB(socket,socket) AC_CHECK_LIB(inet,socket)) # The condition in this test copes with the presence of inet_addr in libc6. AC_CHECK_FUNC(inet_addr, AC_MSG_RESULT(using libc's inet_addr), AC_CHECK_LIB(nsl,inet_addr)) dnl Port hack for Interactive UNIX System V/386 Release 3.2 AC_CHECK_LIB(cposix, strchr, [EXTRADEFS="$EXTRADEFS -D_SYSV3" LIBS="$LIBS -lcposix"]) AC_CHECK_FUNC(strstr, AC_DEFINE(HAVE_STRSTR), [EXTRASRC="$EXTRASRC \$(srcdir)/strstr.c" EXTRAOBJ="$EXTRAOBJ strstr.o"]) AC_CHECK_FUNC(strcasecmp, AC_DEFINE(HAVE_STRCASECMP), [EXTRASRC="$EXTRASRC \$(srcdir)/strcasecmp.c" EXTRAOBJ="$EXTRAOBJ strcasecmp.o"]) AC_CHECK_FUNC(getopt_long, AC_DEFINE(HAVE_GETOPTLONG), [EXTRASRC="$EXTRASRC \$(srcdir)/getopt.c \$(srcdir)/getopt1.c" EXTRAOBJ="$EXTRAOBJ getopt.o getopt1.o"]) AC_FUNC_VPRINTF AC_FUNC_ALLOCA if test -n "$ALLOCA" then EXTRASRC="$EXTRASRC \$(srcdir)/alloca.c" EXTRAOBJ="$EXTRAOBJ alloca.o" fi dnl All AC_CHECK_FUNCs must precede the following AC_SUBSTs AC_SUBST(EXTRADEFS) AC_SUBST(EXTRASRC) AC_SUBST(EXTRAOBJ) AC_CHECK_FUNCS(tcsetattr stty setsid seteuid gethostbyname res_search herror \ strrchr strerror setlinebuf syslog snprintf vsnprintf vsyslog atexit \ inet_aton) # Under Red Hat 4.0 (and many other Linuxes) -lresolv is seriously flaky # and breaks gethostbyname(2). It's better to use the bind stuff in the C # library. So don't add -lresolv to the link list unless it's necessary # (It will be necessary when using GNU libc6). AC_CHECK_FUNC(res_search, AC_MSG_RESULT(using libc's resolver functions), AC_CHECK_LIB(resolv,res_search, [AC_DEFINE(HAVE_RES_SEARCH) AC_MSG_RESULT(found resolver functions in libresolv); LIBS="$LIBS -lresolv"], AC_MSG_RESULT(no resolver calls found))) dnl AC_FUNC_SETVBUF_REVERSED dnl Check for usable void pointer type AC_MSG_CHECKING(use of void pointer type) AC_TRY_COMPILE([], [char *p; void *xmalloc(); p = (char *) xmalloc(1); ], [AC_DEFINE(HAVE_VOIDPOINTER) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no)) dnl Check out the wait reality. We have to assume sys/wait.h is present. AC_CHECK_FUNCS(waitpid wait3) AC_MSG_CHECKING(for union wait); AC_TRY_LINK([#include #include ], [union wait status; int pid; pid = wait (&status); #ifdef WEXITSTATUS /* Some POSIXoid systems have both the new-style macros and the old union wait type, and they do not work together. If union wait conflicts with WEXITSTATUS et al, we don't want to use it at all. */ if (WEXITSTATUS (status) != 0) pid = -1; #endif #ifdef HAVE_WAITPID /* Make sure union wait works with waitpid. */ pid = waitpid (-1, &status, 0); #endif ], [AC_DEFINE(HAVE_UNION_WAIT) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no)) AC_MSG_CHECKING(sys_siglist declaration in signal.h or unistd.h) AC_TRY_LINK([#include /* NetBSD declares sys_siglist in . */ #ifdef HAVE_UNISTD_H #include #endif], [char *msg = *(sys_siglist + 1);], [AC_DEFINE(SYS_SIGLIST_DECLARED) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no)) # Find the right directory to put the root-mode PID file in for dir in "/var/run" "/etc" do if test -d $dir then break; fi done AC_MSG_RESULT(root-mode pid file will go in $dir) AC_DEFINE_UNQUOTED(PID_DIR, "$dir") AC_CHECK_SIZEOF(short) AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) ### use option --enable-POP2 to compile in the POP2 support AC_ARG_ENABLE(POP2, [ --enable-POP2 compile in POP2 protocol support (obsolete)], [with_POP2=$enableval], [with_POP2=no]) test "$with_POP2" = "yes" && AC_DEFINE(POP2_ENABLE) ### use option --enable-RPA to compile in the RPA support AC_ARG_ENABLE(RPA, [ --enable-RPA compile in RPA protocol support], [with_RPA=$enableval], [with_RPA=no]) test "$with_RPA" = "yes" && AC_DEFINE(RPA_ENABLE) ### use option --enable-opie to compile in the OPIE support AC_ARG_ENABLE(opie, [ --enable-opie support OTP through the OPIE library], [with_opie=$enableval], [with_opie=no]) if test "$with_opie" = "yes"; then AC_CHECK_HEADER(opie.h,, [echo 'configure: cannot find , which is required for OPIE support.'; exit 1]) AC_CHECK_LIB(opie,opiegenerator,, [echo 'configure: cannot find libopie, which is required for OPIE support.'; exit 1]) AC_DEFINE(OPIE,1) fi ### use option --with-kerberos=DIR to point at a Kerberos directory AC_ARG_WITH(kerberos, [ --with-kerberos=DIR point fetchmail compilation at a Kerberos directory]) # The "then" arm (nonempty $with_kerberos) is kind of a crock. It works for # configuring the BSD/OS Kerberos IV support, though. if test -n "$with_kerberos" then CEFLAGS="$CEFLAGS -DKERBEROS_V4 -I$with_kerberos" LDEFLAGS="$LDEFLAGS -L$dir/lib" LIBS="$LIBS -lkrb -ldes" else for dir in /usr/kerberos /usr/kerberosIV /usr/athena do if test -f "$dir/include/krb.h" then CEFLAGS="$CEFLAGS -DKERBEROS_V4 -I$dir/include" LDEFLAGS="$LDEFLAGS -L$dir/lib" LIBS="$LIBS -lkrb -ldes" break fi done fi AC_OUTPUT(Makefile, [ # The reason for this odd makedepend line is that we want # to have all dependencies evaluated relative to the source directory # and let VPATH do all the dirty work when we build remotely echo "You can ignore any makedepend error messages"; (cd $srcdir; makedepend -f - *.c) >>Makefile]) dnl Local Variables: dnl comment-start: "dnl " dnl comment-end: "" dnl comment-start-skip: "\\bdnl\\b\\s *" dnl compile-command: "make configure config.h.in" dnl End: