dnl Process this file with autoconf to procude a configure script. AC_INIT(mailbox/mailbox.c) AM_INIT_AUTOMAKE(mailutils, 0.0.9) AM_CONFIG_HEADER(config.h) dnl Check for programs AC_PROG_CC AC_PROG_INSTALL AC_PROG_LN_S AM_PROG_LIBTOOL AC_PROG_YACC AM_PROG_LEX MU_MAINTAINER_MODE dnl Check for arguments AC_ARG_ENABLE(pam, [ --disable-pam disable pam], [case "${enableval}" in yes) testpam=yes ;; no) testpam=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --disable-pam) ;; esac],[testpam=yes]) AC_ARG_ENABLE(pthread, [ --disable-pthread disable pthread], [case "${enableval}" in yes) usepthread=yes ;; no) usepthread=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --disable-pthread) ;; esac],[usepthread=yes]) AC_ARG_WITH(readline, [ --without-readline do not use readline], [case "${withval}" in yes) usereadline=yes ;; no) usereadline=no ;; *) AC_MSG_ERROR(bad value ${withval} for --without-readline) ;; esac],[usereadline=yes]) AC_ARG_WITH(guile, [ --without-guile do not build guile interface], [case "${withval}" in yes) useguile=yes ;; no) useguile=no ;; *) AC_MSG_ERROR(bad value ${withval} for --without-guile) ;; esac],[useguile=yes]) AC_SUBST(SITE_MAIL_RC) AC_ARG_WITH(mail-rc, [ --with-mail-rc=FILE use FILE instead of \$sysconfdir/mail.rc], [case "${withval}" in /*) SITE_MAIL_RC="${withval}";; *) SITE_MAIL_RC="\$(sysconfdir)/${withval}";; esac], [SITE_MAIL_RC="\$(sysconfdir)/mail.rc"]) AC_ARG_WITH(db2, [ --with-db2 use Berkeley DB], [case "${withval}" in yes) usedb2=yes ;; no) usedb2=no ;; *) AC_MSG_ERROR(bad value ${withval} for --with-db) ;; esac],[usedb2=no]) AC_MSG_CHECKING(for log facility) log_facility="LOG_MAIL" AC_ARG_WITH(log-facility, [ --with-log-facility=facility enable logging to the given facility], AC_TRY_COMPILE([#include ], int lf = $withval, log_facility=$withval)) AC_DEFINE_UNQUOTED(LOG_FACILITY, $log_facility) AC_MSG_RESULT($log_facility) dnl Check for headers AC_HEADER_STDC AC_HEADER_DIRENT AM_C_PROTOTYPES AC_CHECK_HEADERS(argp.h errno.h fcntl.h inttypes.h libgen.h limits.h malloc.h \ paths.h shadow.h stdarg.h stdio.h stdlib.h string.h strings.h sys/file.h \ syslog.h termios.h termio.h sgtty.h unistd.h ) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_UID_T AC_TYPE_MODE_T AC_TYPE_OFF_T AC_TYPE_PID_T AC_TYPE_SIZE_T AC_TYPE_SIGNAL AC_DECL_SYS_SIGLIST AC_STRUCT_TIMEZONE sr_STRUCT_TM_ZONE sr_STRUCT_TM_GMTOFF sr_STRUCT_TM_ISDST dnl Check for working functions jm_FUNC_MALLOC jm_FUNC_REALLOC AC_FUNC_ALLOCA # Not use. #AC_FUNC_MEMCMP AC_FUNC_MMAP AC_FUNC_FNMATCH if test "$ac_cv_func_fnmatch_works" = "no"; then : LIBOBJS="$LIBOBJS fnmatch.o" fi AC_REPLACE_FUNCS(setenv snprintf strtok_r strncasecmp strcasecmp strsignal \ vasprintf) AC_CHECK_FUNCS(mkstemp sigaction sysconf) dnl Check for libraries AC_CHECK_FUNCS(argp_parse) if test x"$ac_cv_func_argp_parse" != xyes; then AC_REPLACE_FUNCS(strndup strnlen strchrnul) ARGPLIBS="../argp/libargp.a" ARGPLIB="libargp.a" ARGPINCS='-I$(top_srcdir)/argp' AC_SUBST(ARGPLIBS) AC_SUBST(ARGPLIB) AC_SUBST(ARGPINCS) fi dnl Use either PAM or CRYPT, not both. if test x"$testpam" = x"yes"; then AC_CHECK_HEADERS(security/pam_appl.h) if test x"$ac_cv_header_security_pam_appl_h" = x"yes"; then AC_CHECK_LIB(dl, dlopen, [LDL=-ldl], [LDL=]) AC_CHECK_LIB(pam, pam_start, AUTHLIBS="-lpam $LDL" ac_cv_have_libpam="yes",, $LDL) AC_DEFINE(USE_LIBPAM) AM_CONDITIONAL(USE_LIBPAM, test x"$ac_cv_have_libpam" != xno) fi fi if test x"$ac_cv_have_libpam" != x"yes"; then AC_CHECK_FUNCS(crypt) if test x"$ac_cv_func_crypt" = x"no"; then AC_CHECK_LIB(crypt, crypt, AUTHLIBS="-lcrypt",, -lcrypt) fi fi AC_SUBST(AUTHLIBS) #When using thread support some platforms need -D_REENTRANT to get the #right prototypes including errno. dnl Check threading support # We have to rearrange things a little, it appears that the new autoconf # does not like long cascading AC_CHECK_LIB. if test x"$usepthread" = x"yes"; then AC_CHECK_LIB(pthread, pthread_cancel, have_libpthread=yes, have_libpthread=no) if test x"$have_libpthread" = x"yes"; then AC_CHECK_HEADERS(pthread.h, AC_DEFINE(WITH_PTHREAD)) LIBS="$LIBS -lpthread" AC_DEFINE(_REENTRANT) AC_CHECK_FUNCS(pthread_rwlock_init) else AC_SEARCH_LIBS(pthread_cancel, pthread, [AC_CHECK_FUNCS(pthread_rwlock_init) AC_CHECK_HEADERS(pthread.h, AC_DEFINE(WITH_PTHREAD)) AC_DEFINE(_REENTRANT)]) fi fi dnl Do we need extra libs for networking? AC_CHECK_FUNC(gethostbyname, [true], AC_CHECK_LIB(nsl, gethostbyaddr, LIBS="-lnsl $LIBS")) AC_CHECK_FUNC(socket, [true], AC_CHECK_LIB(socket, socket, LIBS="-lsocket $LIBS")) dnl Check for GNU Readline AC_SUBST(READLINE_LIBS) if test x"$usereadline" = x"yes"; then AC_CHECK_LIB(readline, readline, [AC_CHECK_HEADERS(readline/readline.h, AC_DEFINE(WITH_READLINE)) READLINE_LIBS="-lcurses -lreadline"], :, -lcurses) fi dnl Check for Berkeley DB if test x"${usedb2}" = x"yes"; then AC_CHECK_LIB(db, db_open, [AC_CHECK_HEADERS(db.h, AC_DEFINE(WITH_BDB2)) LIBS="$LIBS -ldb"]) fi dnl Check for Guile AC_SUBST(GUILE_INCLUDES) AC_SUBST(GUILE_LIBS) AC_SUBST(GUIMB) AC_SUBST(MU_SCM) AC_SUBST(GUILE_PROCEDURES_TXT) AC_SUBST(GUILE_BUILT_SOURCES) if test x"$useguile" = x"yes"; then AC_PATH_PROG(GUILE_CONFIG, guile-config, no, $PATH) AC_CHECK_HEADER(libguile.h, :, [GUILE_CONFIG=no]) if test x$GUILE_CONFIG != xno; then GUILE_INCLUDES=`guile-config compile` GUILE_LIBS=`guile-config link` GUIMB=guimb MU_SCM=libmu_scm.a GUILE_PROCEDURES_TXT=guile-procedures.txt GUILE_BUILT_SOURCES='$(DOT_X_FILES) $(DOT_DOC_FILES)' fi fi dnl Output Makefiles AC_OUTPUT(Makefile mailutils.spec include/Makefile include/mailutils/Makefile m4/Makefile doc/Makefile argp/Makefile lib/Makefile mailbox/Makefile imap4d/Makefile mailbox/include/Makefile from/Makefile mail/Makefile pop3d/Makefile frm/Makefile sieve/Makefile messages/Makefile scripts/Makefile libmu_scm/Makefile guimb/Makefile guimb/scm/Makefile)