diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 1665 |
1 files changed, 1665 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 00000000..27a9f95f --- /dev/null +++ b/configure.ac @@ -0,0 +1,1665 @@ +dnl Process this file with autoconf to produce a configure script. + +dnl /* ======================================================================== +dnl * Copyright 2006-2008 University of Washington +dnl * +dnl * Licensed under the Apache License, Version 2.0 (the "License"); +dnl * you may not use this file except in compliance with the License. +dnl * You may obtain a copy of the License at +dnl * +dnl * http://www.apache.org/licenses/LICENSE-2.0 +dnl * +dnl * ======================================================================== +dnl */ + +AC_PREREQ([2.57]) + +AC_REVISION([$Id: configure.ac 1266 2009-07-14 18:39:12Z hubert@u.washington.edu $]) + +dnl Alpine Version Number is in $srcdir/VERSION +AC_INIT(alpine, m4_normalize(m4_include([VERSION])), [alpine-contact@u.washington.edu]) + +AC_CONFIG_SRCDIR([include/system.h]) +AC_CONFIG_HEADERS([include/config.h]) + +AM_INIT_AUTOMAKE([foreign nostdinc]) + +AM_MAINTAINER_MODE + +AC_CANONICAL_HOST + +AC_LANG(C) + +AC_MSG_NOTICE([Configuring for $PACKAGE_STRING ($host))]) + +# start out with intent to build Web Alpine +WEB_BUILD=web/src/alpined.d + +dnl CHECK PROGRAMS + +AC_PROG_CC +AC_PROG_CC_STDC +AC_PROG_INSTALL +AC_PROG_MAKE_SET +AC_PROG_LN_S +AC_PROG_AWK +AC_PROG_RANLIB +AC_PROG_LIBTOOL + +AC_PATH_PROG(AR, ar, ar) +AC_PATH_PROG(RM, rm, rm) +AC_PATH_PROG(CP, cp, cp) +AC_PATH_PROG(LN, ln, ln) +AC_PATH_PROG(SED, sed, sed) +AC_PATH_PROG(MAKE, make) + +dnl COMPILE-TIME OPTIONS + +AM_GNU_GETTEXT_VERSION([0.16.1]) +AM_GNU_GETTEXT([external]) + +dnl enable dmalloc per http://dmalloc.com +dnl NOTE: does not check c-client +AC_MSG_CHECKING([option: dmalloc enabled]) +AC_ARG_ENABLE(dmalloc, AC_HELP_STRING([--enable-dmalloc],[Enable dmalloc debugging])) +if test x$enable_dmalloc = "xyes" ; then + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi + +AC_ARG_WITH(dmalloc-dir, + AC_HELP_STRING([--with-dmalloc-dir=DIR], [Root of dmalloc lib/include path]), + [ + if test "x$withval" != "xno" ; then + enable_dmalloc = "yes" + CPPFLAGS="$CPPCFLAGS -I${withval}" + LDFLAGS="$LDFLAGS -L${withval}" + fi + ]) + +if test x$enable_dmalloc = "xyes" ; then + AC_DEFINE(ENABLE_DMALLOC, 1, [Define enable dmalloc debugging]) +fi + +localedir="\${datadir}/locale" +AC_ARG_WITH(localedir, + AC_HELP_STRING([--with-localedir=DIR], [Name of gettext locale directory]), + [ + case $withval in + yes) + ;; + no) + ;; + *) + localedir=$withval + ;; + esac + ]) +AC_SUBST(localedir, "[$localedir]") + +# Setup OS-Specific features +case "$host" in + *darwin*) + dnl OS X Universal Binary Support + AC_ARG_ENABLE(osx-universal-binaries, + AC_HELP_STRING([--enable-osx-universal-binaries],[Produce universal binaries under OS X [[default=no]]])) + if test "x$enable_osx_universal_binaries" = "xyes" ; then + if test "x$enable_dependency_tracking" != xno ; then + AC_MSG_ERROR([--enable-osx-universal-binary requires --disable-dependency-tracking. +Please re-run configure with these options: + --disable-dependency-tracking --enable-osx-universal-binary]) + fi + if [test -d /Developer/SDKs/MacOSX10.5.sdk] ; then + alpine_sysroot=/Developer/SDKs/MacOSX10.5.sdk + elif [test -d /Developer/SDKs/MacOSX10.4u.sdk] ; then + alpine_sysroot=/Developer/SDKs/MacOSX10.4u.sdk + else + AC_MSG_ERROR([No suitable MacOSX SDK found. Make sure Xcode tools are installed]) + fi + ub_cflags="-isysroot $alpine_sysroot -arch ppc -arch i386" + ub_ldflags="-Wl,-syslibroot,$alpine_sysroot -arch ppc -arch i386" + AM_CFLAGS="$AM_CFLAGS $ub_cflags" + AM_LDFLAGS="$AM_LDFLAGS $ub_ldflags" + alpine_c_client_cflags="$alpine_c_client_cflags $ub_cflags" + alpine_c_client_ldflags="$alpine_c_client_ldflags $ub_ldflags" + fi + ;; +esac + +AC_ARG_WITH(include-path, + AC_HELP_STRING([--with-include-path=PATHS], [Colon-separated list of directories used for include file search]), + [ + case $withval in + no) + ;; + yes) + ;; + *) + new_cppflags="-I`echo ${withval} | ${SED} 's/:/ -I/g'`" + CPPFLAGS="$CPPFLAGS ${new_cppflags}" + alpine_c_client_cflags="$alpine_c_client_cflags ${new_cppflags}" + ;; + esac + ]) + +AC_ARG_WITH(lib-path, + AC_HELP_STRING([--with-lib-path=PATHS], [Colon-separated list of directories used for library search]), + [ + case $withval in + no) + ;; + yes) + ;; + *) + new_ldflags="-L`echo ${withval} | ${SED} 's/:/ -L/g'`" + LDFLAGS="$LDFLAGS $new_ldflags" + alpine_c_client_ldflags="$alpine_c_client_ldflags ${new_ldflags}" + ;; + esac + ]) + +AC_ARG_WITH(pubcookie, + AC_HELP_STRING([--with-pubcookie], [Include support for UW-Pubcookie Web Authentication]), + [ + if test "x$withval" != "xno" ; then + WEB_PUBCOOKIE_BUILD=web/src/pubcookie + fi + ]) + + +AC_ARG_WITH(web-bin, + AC_HELP_STRING([--with-web-bin=PATH], [Directory to hold Web Alpine component binary files]), + [ + case "$withval" in + no) + ;; + yes) + ;; + *) + WEB_BINDIR=$withval + ;; + esac + ]) + +dnl disable debug, turned on by default +AC_MSG_CHECKING([option: debugging is enabled]) +AC_ARG_ENABLE(debug, AC_HELP_STRING([--disable-debug],[Exclude debug messages from source])) +if test x$enable_debug != "xno" ; then + AM_CFLAGS="$AM_CFLAGS -g" + AC_DEFINE([DEBUG], [1], [Compile in debugging]) + AC_DEFINE([DEBUGJOURNAL], [1], [Display debug messages in journal]) + AC_MSG_RESULT([yes]) +else +dnl ??? set AM_CFLAGS to optimize ??? + AC_MSG_RESULT([no]) +fi + +dnl disable optimization, on by default +AC_MSG_CHECKING([option: optimization is enabled]) +AC_ARG_ENABLE(optimization, AC_HELP_STRING([--disable-optimization],[Exclude optimizing compiler flags])) +if test x$enable_optimization != "xno" ; then + AC_MSG_RESULT([yes]) +else + CFLAGS="`echo $AM_CFLAGS | ${SED} 's/-O2//'`" + alpine_c_client_gccoptlevel="-O0" + AC_MSG_RESULT([no]) +fi + +dnl disable mouse support +AC_MSG_CHECKING([option: mouse support enabled]) +AC_ARG_ENABLE(mouse, AC_HELP_STRING([--disable-mouse], [Disable mouse support])) +if test x$enable_mouse != "xno" ; then + AC_DEFINE([MOUSE], [], [Compile in mouse support]) + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi + +dnl enable quotas +AC_MSG_CHECKING([option: quotas enabled]) +AC_ARG_ENABLE(quotas, AC_HELP_STRING([--enable-quotas],[Enable disk quota checking on startup])) +if test x$enable_quotas = "xyes" ; then + AC_DEFINE([USE_QUOTAS], [], [Compile in quota check on startup]) + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi + +AC_MSG_CHECKING([option: From changing enabled]) +AC_ARG_ENABLE(from_changing, AC_HELP_STRING([--disable-from-changing],[Disallow users changing From addresss])) +if test x$enable_from_changing != "xno" ; then + AC_MSG_RESULT([yes]) +else + AC_DEFINE([NEVER_ALLOW_CHANGING_FROM], [], [Disallow users changing their From address]) + AC_MSG_RESULT([no]) +fi + +dnl enable background posting support +AC_MSG_CHECKING([option: background post enabled]) +AC_ARG_ENABLE(background-post, AC_HELP_STRING([--disable-background-post],[Disable background posting])) +if test x$enable_background_post != "xno" ; then + AC_DEFINE([BACKGROUND_POST], [], [Enable background posting support]) + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi + +dnl enable keyboard locking support +AC_MSG_CHECKING([option: keyboard lock enabled]) +AC_ARG_ENABLE(keyboard-lock, AC_HELP_STRING([--disable-keyboard-lock],[Disable keyboard locking])) +if test x$enable_keyboard_lock != "xno" ; then + AC_DEFINE([KEYBOARD_LOCK], [], [Enable keyboard lock support]) + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi + +dnl enable from encoding support +AC_MSG_CHECKING([option: from encoding enabled]) +AC_ARG_ENABLE(from-encoding, AC_HELP_STRING([--enable-from-encoding],[Enable From encoding in sent messages])) +if test x$enable_from_encoding = "xyes" ; then + AC_DEFINE([ENCODE_FROMS], [], [Enable From address encoding in sent messages]) + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi + +dnl OPTION: name of local submission agent +dnl Might not be sendmail, but it MUST speak SMTP on stdin/stdout +AC_ARG_WITH(smtp-msa, + AC_HELP_STRING([--with-smtp-msa=PATH],[Local Mail Submission Agent (sendmail)]), + [ + case "$withval" in + no) + ;; + yes) + AC_PATH_PROG(SENDMAIL, sendmail, "", $PATH:/usr/sbin:/usr/lib) + ;; + *) + SENDMAIL=$withval + ;; + esac + ], + [ + AC_PATH_PROG(SENDMAIL, sendmail, "", $PATH:/usr/sbin:/usr/lib) + ]) +if test -n "$SENDMAIL" ; then + AC_DEFINE_UNQUOTED([SENDMAIL], "$SENDMAIL", [Local mail submission agent]) +fi + +dnl OPTION: local msa arguments +smtp_msa_flags="-bs -odb -oem" +AC_ARG_WITH(smtp-msa-flags, + AC_HELP_STRING([--with-smtp-msa-flags=FLAGS],[MSA flags for SMTP on stdin/stdout (-bs -odb -oem)]), + [ + if test "x$withval" != "xno" ; then + smtp_msa_flags=$withval + fi + ]) +AC_DEFINE_UNQUOTED([SENDMAILFLAGS], "$smtp_msa_flags", [Local MSA flags for SMTP on stdin/stdout]) + +dnl OPTION: name of local news posting agent and flags +npa="inews" +AC_ARG_WITH(npa, + AC_HELP_STRING([--with-npa=PATH],[Posting agent when no nntp-servers defined (inews)]), + [ + case "$withval" in + no) + ;; + yes) + AC_PATH_PROG(NPA_PROG, inews, "", $PATH:/usr/sbin:/usr/lib) + ;; + *) + NPA_PROG=$withval + ;; + esac + ], + [ + AC_PATH_PROG(NPA_PROG, inews, "", $PATH:/usr/sbin:/usr/lib) + ]) + +npa_flags="-h" +AC_ARG_WITH(npa-flags, + AC_HELP_STRING([--with-npa-flags=FLAGS],[Flags to allow posting via local agent (-h)]), + [ + if test "x$withval" != "xno" ; then + npa_flags=$withval + fi + ]) +if test -n "$NPA_PROG" ; then + AC_DEFINE_UNQUOTED([SENDNEWS], "$NPA_PROG $npa_flags", [Posting agent to use when no nntp-servers defined]) +fi + +dnl OPTION: password changing program +AC_ARG_WITH(password-prog, + AC_HELP_STRING([--with-password-prog=PATH],[Password change program (/bin/passwd)]), + [ + case "$withval" in + no) + ;; + yes) + AC_PATH_PROG(PWPROG, passwd, "", $PATH:/usr/sbin:/usr/lib) + ;; + *) + AC_PATH_PROG(PWPROG, $withval, "", $PATH:/usr/sbin:/usr/lib) + ;; + esac + ], + [ + AC_PATH_PROG(PWPROG, passwd, "", $PATH:/usr/sbin:/usr/lib) + ]) +if test -n "$PWPROG" ; then + AC_DEFINE_UNQUOTED([PASSWD_PROG], "$PWPROG", [Program users use to change their password]) +fi + +dnl OPTION: basic spell checking program +AC_ARG_WITH(simple-spellcheck, + AC_HELP_STRING([--with-simple-spellcheck=PROG],[Spellcheck program reads stdin, emits misspellings on stdout]), + [ + if test "x$withval" != "xno" ; then + SPELLPROG=$withval + fi + ], + [ + AC_CHECK_PROG([SPELLPROG], [hunspell], [hunspell], []) + if test -z "$SPELLPROG" ; then + AC_CHECK_PROG([SPELLPROG], [aspell], [aspell], []) + if test -z "$SPELLPROG" ; then + AC_CHECK_PROG([SPELLPROG], [ispell], [ispell], []) + if test -z "$SPELLPROG" ; then + SPELLPROG="spell" + fi + fi + fi + ]) + +if test "x$SPELLPROG" != "xno" ; then + AC_PATH_PROG(alpine_simple_spellcheck, $SPELLPROG) + if test -n "$alpine_simple_spellcheck" ; then + case "$SPELLPROG" in + hunspell) + alpine_simple_spellcheck="$alpine_simple_spellcheck -l" + ;; + aspell) + alpine_simple_spellcheck="$alpine_simple_spellcheck --dont-backup --mode=email list" + ;; + ispell) + alpine_simple_spellcheck="$alpine_simple_spellcheck -l" + ;; + *) + ;; + esac + fi +fi + +dnl OPTION: interactive spell checking program +AC_ARG_WITH(interactive-spellcheck, + AC_HELP_STRING([--with-interactive-spellcheck=PROG],[Interactive, filewise spell checker]), + [ + if test "x$withval" != "xno" ; then + ISPELLPROG=$withval + fi + ], + [ + AC_CHECK_PROG([ISPELLPROG], [hunspell], [hunspell], []) + if test -z "$ISPELLPROG" ; then + AC_CHECK_PROG([ISPELLPROG], [aspell], [aspell], []) + if test -z "$SPELLPROG" ; then + ISPELLPROG="ispell" + fi + fi + ]) + +if test "x$ISPELLPROG" != "xno" ; then + AC_PATH_PROG(alpine_interactive_spellcheck, $ISPELLPROG) + if test -n "$alpine_interactive_spellcheck" ; then + case "$ISPELLPROG" in + aspell) + alpine_interactive_spellcheck="$alpine_interactive_spellcheck --dont-backup --mode=email check" + ;; + *) + ;; + esac + fi +fi + +if test -n "$alpine_interactive_spellcheck" ; then + AC_DEFINE_UNQUOTED([DF_VAR_SPELLER], "$alpine_interactive_spellcheck", [Interactive, filewise spell checker]) +fi + +if test -z "$alpine_simple_spellcheck" -a -n "$alpine_interactive_spellcheck" ; then + alpine_simple_spellcheck=test +fi +AC_DEFINE_UNQUOTED([SPELLER], "$alpine_simple_spellcheck", [Simple spell checker: reads stdin, emits misspellings on stdout]) + +dnl OPTION: system-pinerc +dnl NOTE: historically we used /lib for the config dir. +dnl don't ask, it was a long time ago. but, we can't +dnl change it now without breaking compatibility +case "$prefix" in + NONE) dpv=/usr/local/lib/pine.conf ;; + *) dpv=${prefix}/lib/pine.conf ;; +esac +AC_ARG_WITH(system-pinerc, + AC_HELP_STRING([--with-system-pinerc=VALUE], [System pinerc (/usr/local/lib/pine.conf)]), + [ + case "$withval" in + no) + ;; + yes) + ;; + *) + dpv=$withval + ;; + esac + ]) +AC_DEFINE_UNQUOTED(SYSTEM_PINERC, "$dpv", [System pinerc]) + +dnl OPTION: system-fixed-pinerc +dnl NOTE: historically we used /lib for the config dir. +dnl don't ask, it was a long time ago. but, we can't +dnl change it now without breaking compatibility +case "$prefix" in + NONE) dpv=/usr/local/lib/pine.conf.fixed ;; + *) dpv=${prefix}/lib/pine.conf.fixed ;; +esac +AC_ARG_WITH(system-fixed-pinerc, + AC_HELP_STRING([--with-system-fixed-pinerc=VALUE], [System fixed pinerc (/usr/local/lib/pine.conf.fixed)]), + [ + case "$withval" in + no) + ;; + yes) + ;; + *) + dpv=$withval + ;; + esac + ]) +AC_DEFINE_UNQUOTED(SYSTEM_PINERC_FIXED, "$dpv", [System fixed pinerc]) + +dnl Function to simplify setting alpine/pico defaults +dnl usage: PINEVAR(configure-name, definition-name, definition-value, help) +AC_DEFUN([PINEVAR], + [ + dpv=$3 + AC_ARG_WITH($1, + AC_HELP_STRING(--with-$1=VALUE, [$4 ($3)]), + [ + if test "x$withval" != "xno" ; then + dpv=$withval + fi + ]) + AC_DEFINE_UNQUOTED($2, "$dpv", [Default configuration value]) + ]) + +dnl Function to simplify setting pine/pico defaults +dnl usage: PINEVAR_UNQUOTED(configure-name, definition-name, definition-value, help) +AC_DEFUN([PINEVAR_UNQUOTED], + [ + dpv=$3 + AC_ARG_WITH($1, + AC_HELP_STRING(--with-$1=VALUE, [$4 ($3)]), + [ + if test "x$withval" != "xno" ; then + dpv=$withval + fi + ]) + AC_DEFINE_UNQUOTED($2, $dpv, [Default configuration value]) + ]) + +PINEVAR(mailcheck-interval, DF_MAILCHECK, 150, [Specify default mail-check-interval]) +PINEVAR_UNQUOTED(checkpoint-interval, CHECK_POINT_TIME, 420, [Specify default checkpoint-interval]) +PINEVAR_UNQUOTED(checkpoint-frequency, CHECK_POINT_FREQ, 12, [State change count before checkpoint]) +PINEVAR_UNQUOTED(display-rows, DEFAULT_LINES_ON_TERMINAL, 24, [Initial rows on display]) +PINEVAR_UNQUOTED(display-columns, DEFAULT_COLUMNS_ON_TERMINAL, 80, [Initial columns on display]) +PINEVAR_UNQUOTED(max-display-rows, MAX_SCREEN_ROWS, 200, [Maximum display rows]) +PINEVAR_UNQUOTED(max-display-columns, MAX_SCREEN_COLS, 500, [Maximum display columns]) +PINEVAR(fill-column, DF_FILLCOL, 74, [Default fill column]) +PINEVAR_UNQUOTED(max_fill-column, MAX_FILLCOL, 80, [Maximum fill column]) +PINEVAR_UNQUOTED(debug-level, DEFAULT_DEBUG, 2, [Specify default debug verbosity level]) +PINEVAR_UNQUOTED(debug-files, NUMDEBUGFILES, 4, [Specify number of debug files]) +PINEVAR(debug-file, DEBUGFILE, [.pine-debug], [Specify debug file name]) +PINEVAR(forwarded-keyword, FORWARDED_FLAG, ["\$Forwarded"], [IMAP (c-client) keyword to store forwarded status]) +PINEVAR(display-overlap, DF_OVERLAP, [2], [Lines preserved while paging]) +PINEVAR(display-margin, DF_MARGIN, [0], [Lines visible while scrolling]) +PINEVAR(default-fcc, DF_DEFAULT_FCC, [sent-mail], [Default sent mail folder]) +PINEVAR(default-save-folder, DEFAULT_SAVE, [saved-messages], [Default save folder]) +PINEVAR(default-legacy-postponed-folder, POSTPONED_MAIL, [postponed-mail], [Pre Pine 3.90 postponed folder]) +PINEVAR(default-postponed-folder, POSTPONED_MSGS, [postponed-msgs], [Default postponed folder]) +PINEVAR(default-trash-folder, TRASH_FOLDER, [Trash], [Default Trash folder for Web Alpine]) +PINEVAR(default-interrupted-mail, INTERRUPTED_MAIL, [.pine-interrupted-mail], [Default folder for interrupted mail]) +PINEVAR(default-dead-letter-folder, DEADLETTER, [dead.letter], [Default dead letter folder]) +PINEVAR(default-mail-directory, DF_MAIL_DIRECTORY, [mail], [Default mail directory]) +PINEVAR(default-inbox-name, INBOX_NAME, [INBOX], [Default inbox name]) +PINEVAR(default-signature-file, DF_SIGNATURE_FILE, [.signature], [Default signature file]) +PINEVAR(default-elm-style-save, DF_ELM_STYLE_SAVE, [no], [Default to Elm style save]) +PINEVAR(default-header-in-reply, DF_HEADER_IN_REPLY, [no], [Include header in reply]) +PINEVAR(default-old-style-reply, DF_OLD_STYLE_REPLY, [no], [Default to old style reply]) +PINEVAR(default-use-only-domain-name, DF_USE_ONLY_DOMAIN_NAME, [no], [Default to using only the domain name]) +PINEVAR(default-save-by-sender, DF_SAVE_BY_SENDER, [no], [Default to save by sender]) +PINEVAR(default-sort-key, DF_SORT_KEY, [arrival], [Default sort key]) +PINEVAR(default-addressbook-sort-rule, DF_AB_SORT_RULE, [fullname-with-lists-last], [Default addressbook sort rule]) +PINEVAR(default-folder-sort-rule, DF_FLD_SORT_RULE, [alphabetical], [Default folder sort rule]) +PINEVAR(default-saved-message-name-rule, DF_SAVED_MSG_NAME_RULE, [default-folder], [Default saved message name rule]) +PINEVAR(default-fcc-rule, DF_FCC_RULE, [default-fcc], [Default fcc rule]) +PINEVAR(default-standard-printer, DF_STANDARD_PRINTER, [lpr], [Default standard printern]) +PINEVAR(default-ansi-printer, ANSI_PRINTER, [attached-to-ansi], [ANSI printer definition]) +PINEVAR(default-addressbook, DF_ADDRESSBOOK, [.addressbook], [Default addressbook name]) +PINEVAR(default-local-fullname, DF_LOCAL_FULLNAME, ["Local Support"], [Default local support fullname]) +PINEVAR(default-local-address, DF_LOCAL_ADDRESS, [postmaster], [Default local support address]) +PINEVAR(default-keyboard-lock-count, DF_KBLOCK_PASSWD_COUNT, [1], [Default keyboard lock count]) +PINEVAR(default-remote-addressbook-history, DF_REMOTE_ABOOK_HISTORY, [3], [Default address book history count]) +PINEVAR(smime-public-cert-directory, DF_PUBLICCERT_DIR, [.alpine-smime/public], [Default Public Cert Directory]) +PINEVAR(smime-private-key-directory, DF_PRIVATEKEY_DIR, [.alpine-smime/private], [Default Private Key Directory]) +PINEVAR(smime-cacert-directory, DF_CACERT_DIR, [.alpine-smime/ca], [Default Cert Authority Directory]) +PINEVAR_UNQUOTED(default-printer, DF_DEFAULT_PRINTER, [ANSI_PRINTER], [Default printer]) + +dnl set PASSFILE? +AC_ARG_WITH(passfile, + AC_HELP_STRING([--with-passfile=FILENAME],[Password cache file (NOT secure, NOT recommended)]), + [ + case "$withval" in + no) + ;; + yes) + ;; + *) + alpine_PASSFILE=$withval + ;; + esac + ]) + +dnl os-specific credential cache? +AC_ARG_WITH(local-password-cache, + AC_HELP_STRING([--without-local-password-cache],[Disable OS-specific password cache, if supported]), + [ + alpine_os_credential_cache=$withval + ]) + +dnl Particular os-specific credential cache? +AC_ARG_WITH(local-password-cache-method, + AC_HELP_STRING([--with-local-password-cache-method],[OS-specific credential cache (OSX=APPLEKEYCHAIN, Windows=WINCRED)]), + [ + alpine_os_credential_cache_method=$withval + ]) + +if test -n "$alpine_PASSFILE" ; then + case $alpine_os_credential_cache in + no) + ;; + *) + alpine_os_credential_cache="no" + AC_MSG_NOTICE([--with-passfile definition overrides OS-Specific password caching]) + ;; + esac + AC_DEFINE_UNQUOTED([PASSFILE], "$alpine_PASSFILE", [Password cache file (NOT secure. NOT recommended)]) +fi + +dnl set DF_SSHPATH? +AC_ARG_WITH(default-sshpath, + AC_HELP_STRING([--with-default-sshpath=FILENAME],[set default value of ssh command path (defining should cause ssh to be preferred to rsh)]), + [ + case "$withval" in + no) + ;; + yes) + ;; + *) + AC_DEFINE_UNQUOTED([DF_SSHPATH], "$withval", [set default value of ssh command path (defining should cause ssh to be preferred to rsh)]) + ;; + esac + ]) + +dnl set DF_SSHCMD? +AC_ARG_WITH(default-sshcmd, + AC_HELP_STRING([--with-default-sshcmd=PERCENT_S_STRING],[set default value of ssh command string (usually "%s %s -l %s exec /etc/r%sd")]), + [ + case "$withval" in + no) + ;; + yes) + ;; + *) + AC_DEFINE_UNQUOTED([DF_SSHCMD], "$withval", [set default value of ssh command string (usually "%s %s -l %s exec /etc/r%sd")]) + ;; + esac + ]) + +dnl Include SSL? +dnl Set SSLDIR for c-client make +AC_ARG_WITH(ssl, + AC_HELP_STRING([--without-ssl],[Disable SSL support (OpenSSL)]), + [ with_ssl=$withval ]) + +if test "x$with_ssl" = "xno" ; then + alpine_SSLTYPE="none" +else + dnl preload c-client default locations/options + case $host in + *-linux-gnu) + if test -f /etc/fedora-release -o -f /etc/redhat-release -o -f /etc/redhat_version ; then + alpine_SSLTYPE="nopwd" + if test -d /etc/pki/tls ; then + alpine_SSLDIR="/etc/pki/tls" + else + alpine_SSLDIR="/usr/share/ssl" + fi + elif test -f /etc/SuSE-release ; then + alpine_SSLTYPE="nopwd" + alpine_SSLDIR="/usr/share/ssl" + alpine_SSLCERTS="/etc/ssl/certs" + elif test -d /etc/osso-af-init ; then + alpine_SSLTYPE="nopwd" + alpine_SSLDIR="/usr" + alpine_SSLCERTS="/usr/share/certs" + else + alpine_SSLTYPE="nopwd" + alpine_SSLDIR="/usr" + alpine_SSLCERTS="/etc/ssl/certs" + fi + ;; + *-apple-darwin*) + alpine_SSLTYPE="nopwd" + alpine_SSLCERTS="/System/Library/OpenSSL/certs" + ;; + *-openbsd*) + alpine_SSLTYPE="nopwd" + alpine_SSLDIR="/usr" + alpine_SSLCERTS="/etc/ssl/certs" + ;; + *-sco-sysv* | *-sysv*UnixWare | *-sysv*OpenUNIX) + alpine_SSLTYPE="sco.nopwd" + alpine_SSLDIR=/usr/local/ssl + ;; + *-*-solaris*) + if test -d /usr/sfw/include/openssl ; then + alpine_SSLDIR="/usr/sfw" + elif test -d /opt/csw/include/openssl ; then + alpine_SSLDIR="/opt/csw" + if test -d /opt/csw/ssl/certs ; then + alpine_SSLCERTS="/opt/csw/ssl/certs" + fi + fi + if test -z "$alpine_SSLCERTS" -a -d /etc/certs ; then + alpine_SSLCERTS="/etc/certs" + fi + ;; + *) + alpine_SSLTYPE="nopwd" + alpine_SSLDIR=/usr/local/ssl + ;; + esac + + AC_ARG_WITH(ssl-dir, + AC_HELP_STRING([--with-ssl-dir=DIR], [Root of SSL lib/include path]), + [ + if test "x$withval" != "xno" ; then + alpine_SSLDIR=$withval + fi + ]) + + AC_ARG_WITH(ssl-certs-dir, + AC_HELP_STRING([--with-ssl-certs-dir=DIR], [Path to SSL certificate directory]), + [ + if test "x$withval" != "xno" ; then + alpine_SSLCERTS=$withval + fi + ]) + + AC_ARG_WITH(ssl-include-dir, + AC_HELP_STRING([--with-ssl-include-dir=DIR], [SSL include file path]), + [ + if test "x$withval" != "xno" ; then + alpine_SSLINCLUDE=$withval + fi + ]) + + AC_ARG_WITH(ssl-lib-dir, + AC_HELP_STRING([--with-ssl-lib-dir=DIR], [SSL library path]), + [ + if test "x$withval" != "xno" ; then + alpine_SSLLIB=$withval + fi + ]) + dnl setup globals so tests below work + if test -n "$alpine_SSLINCLUDE" ; then + CPPCFLAGS="-I$alpine_SSLINCLUDE $CPPFLAGS" + elif test -n "$alpine_SSLDIR" ; then + CPPFLAGS="-I${alpine_SSLDIR}/include $CPPFLAGS" + fi + if test -n "$alpine_SSLLIB" ; then + LDFLAGS="-L$alpine_SSLLIB $LDFLAGS" + elif test -n "$alpine_SSLDIR" ; then + LDFLAGS="-L${alpine_SSLDIR}/lib $LDFLAGS" + fi +fi + +dnl Include Kerberos? +dnl Set GSSDIR for c-client make +AC_ARG_WITH(krb5, + AC_HELP_STRING([--without-krb5],[Disable Kerberos support]), + [ with_krb5=$withval ]) + +if test "x$with_krb5" = "xno" ; then + alpine_GSSTYPE="none" +else + alpine_GSSTYPE= + + AC_ARG_WITH(krb5-dir, + AC_HELP_STRING([--with-krb5-dir=DIR], [Root of Kerberos lib/include path]), + [ + if test "x$withval" != "xno" ; then + CPPFLAGS="$CPPFLAGS -I${withval}/include" + LDFLAGS="$LDFLAGS -L${withval}/lib" + fi + ]) + + AC_ARG_WITH(krb5-include-dir, + AC_HELP_STRING([--with-krb5-include-dir=DIR], [Kerberos include file path]), + [ + if test "x$withval" != "xno" ; then + CPPFLAGS="$CPPFLAGS -I$withval" + fi + ]) + + AC_ARG_WITH(krb5-lib-dir, + AC_HELP_STRING([--with-krb5-lib-dir=DIR], [Kerberos library path]), + [ + if test "x$withval" != "xno" ; then + LDFLAGS="$LDFLAGS -L$withval" + fi + ]) +fi + +dnl Include LDAP? +AC_ARG_WITH(ldap, + AC_HELP_STRING([--without-ldap],[Disable LDAP query support]), + [ with_ldap=$withval ]) + +if test "x$with_ldap" = "xno" ; then + alpine_with_ldap= + AC_MSG_NOTICE([Excluding LDAP Support]) +else + dnl Do stuff to figure out where OpenLDAP is + + alpine_with_ldap=yes + AC_ARG_WITH(ldap-dir, + AC_HELP_STRING([--with-ldap-dir=DIR], [Root of LDAP lib/include path]), + [ + if test "x$withval" != "xno" ; then + CPPFLAGS="$CPPFLAGS -I${withval}/include" + LDFLAGS="$LDFLAGS -L${withval}/lib" + fi + ]) + + AC_ARG_WITH(ldap-include-dir, + AC_HELP_STRING([--with-ldap-include-dir=DIR], [Directory containing LDAP include files]), + [ + if test "x$withval" != "xno" ; then + CPPFLAGS="$CPPFLAGS -I$withval" + fi + ]) + + AC_ARG_WITH(ldap-lib-dir, + AC_HELP_STRING([--with-ldap-lib-dir=DIR], [LDAP library path]), + [ + if test "x$withval" != "xno" ; then + LDFLAGS="$LDFLAGS -L$withval" + fi + ]) +fi + +dnl Include SMIME? +AC_ARG_WITH(smime, + AC_HELP_STRING([--without-smime],[Disable S/MIME]), + [ with_smime=$withval ]) + +dnl Include TCL? +AC_ARG_WITH(tcl, + AC_HELP_STRING([--without-tcl],[Disable TCL, thus Web Alpine support]), + [ with_tcl=$withval ]) + +if test "x$with_tcl" = "xno" ; then + WEB_BUILD= + AC_MSG_NOTICE([Excluding TCL Support, and thus Web Alpine Support]) +else + AC_ARG_WITH(tcl-lib, + AC_HELP_STRING([--with-tcl-lib=LIBRARY], [Specific TCL Library, like \"tcl8.4\"]), + [ + if test "x$withval" != "xno" ; then + alpine_TCLLIB=$withval + fi + ]) + AC_ARG_WITH(tcl-include, + AC_HELP_STRING([--with-tcl-include=DIR], [Directory containing TCL include files]), + [ + if test "x$withval" != "xno" ; then + CPPFLAGS="$CPPFLAGS -I$withval" + alpine_TCLINC=$withval + fi + ]) +fi + +AC_ARG_WITH(supplied-regex, + AC_HELP_STRING([--with-supplied-regex],[Use regex library supplied with alpine]), + [ alpine_REGEX=$withval ]) + +AC_ARG_WITH(pthread, + AC_HELP_STRING([--without-pthread],[Do NOT test for nor build with POSIX thread support]), + [ with_pthread=$withval ]) + +AC_ARG_WITH(system-mail-directory, + AC_HELP_STRING([--with-system-mail-directory=DIR], [Directory where local mail is delivered]), + [ + if test "x$withval" != "xno" ; then + alpine_with_local_maildir="$withval" + fi + ]) + +AC_ARG_WITH(c-client-target, + AC_HELP_STRING([--with-c-client-target=TARGET], [IMAP build target (see imap/Makefile)]), + [ + if test "x$withval" != "xno" ;then + alpine_with_c_client_target="$withval" + fi + ]) + + +dnl Without IPv6? +AC_ARG_WITH(ipv6, + AC_HELP_STRING([--without-ipv6],[Disable IPv6, primarily to work around resolver problems]), + [ with_ipv6=$withval ]) + +if test "x$with_ipv6" = "xno" ; then + AC_MSG_NOTICE([Excluding IPv6 Support]) + c_client_specials="${c_client_specials}IP6=4 " + c_client_ip6="true" +else + c_client_ip6="touch imap/ip6" +fi + + +dnl CHECK LIBRARIES + +if test x$enable_dmalloc = "xyes" ; then + if test "x$with_pthread" = "xyes" ; then + dmalloc_lib=dmallocth + else + dmalloc_lib=dmalloc + fi + + AC_CHECK_LIB($dmalloc_lib,dmalloc_shutdown,, + [ + AC_ERROR([$dmalloc_lib requested, but -ldmalloc not found]) + ]) +fi + +dnl which terminal cabability database +AC_CHECK_LIB(tinfo, setupterm, + [ + alpine_termdata=info + LIBS="$LIBS -ltinfo" + ], + [ + AC_CHECK_LIB(ncurses, setupterm, + [ + alpine_termdata=info + LIBS="$LIBS -lncurses" + ], + [ + AC_CHECK_LIB(curses, setupterm, + [ + alpine_termdata=info + LIBS="$LIBS -lcurses" + ], + [ + AC_CHECK_LIB(termlib, tgetent, + [ + alpine_termdata=cap + LIBS="$LIBS -ltermlib" + ], + [ + AC_CHECK_LIB(termcap, tgetent, + [ + alpine_termdata=cap + LIBS="$LIBS -ltermcap" + ], + [ + AC_ERROR([Terminfo/termcap not found]) + ]) + ]) + ]) + ]) + ]) +case $alpine_termdata in + info) + AC_DEFINE(HAS_TERMINFO, [1], [Define if systems uses terminfo terminal database]) + ;; + cap) + AC_DEFINE(HAS_TERMCAP, [1], [Define if systems uses termcap terminal database]) + ;; +esac + +dnl provide LDAP support? +if test "$alpine_with_ldap" = "yes" ; then + alpine_has_ldap= + AC_CHECK_LIB(lber, ber_alloc, + [ + LIBS="$LIBS -llber" + ]) + AC_SEARCH_LIBS(ldap_init,ldap, + [ + alpine_has_ldap=yes + ], + [ + AC_SEARCH_LIBS(ldap_open,ldap, + [ + alpine_has_ldap=yes + ]) + ]) + + if test "$alpine_has_ldap" = "yes" ; then + AC_MSG_NOTICE([Including LDAP Support]) + AC_DEFINE([ENABLE_LDAP], [], [Enable LDAP query support]) + + dnl we use deprecated functions (ldap_get_values) + dnl OpenLDAP 2.3.x doesn't define LDAP_DEPRECATED by default like 2.2.x + AC_MSG_CHECKING([if we should define LDAP_DEPRECATED]) + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include <stdio.h> +#include <string.h> +#include <ldap.h> +int main(void) { + + if (LDAP_VENDOR_VERSION >= 20300) + exit(0); + + exit(2); +} + ]])], + [ + AC_MSG_RESULT(yes) + AC_DEFINE(LDAP_DEPRECATED, 1, + [Define if you use OpenLDAP 2.3.x deprecated functions]) + + ], + [ + AC_MSG_RESULT(no) + ], + [ + AC_MSG_WARN([cross compiling: not checking]) + ] + ) + + else + AC_MSG_NOTICE([Cannot find LDAP functions! Excluding LDAP support.]) + fi +fi + +dnl provide SSL support? +if test "x$alpine_SSLTYPE" != "xnone" ; then + AC_SEARCH_LIBS(SSL_library_init,ssl, + [ + LIBS="$LIBS -lssl" + ]) + if test "x$alpine_SSLTYPE" = "xnone" ; then + AC_MSG_NOTICE([OpenSSL libraries NOT found]) + else + AC_MSG_NOTICE([OpenSSL libraries FOUND]) + fi +fi + +dnl provide KRB5 support? +if test "x$alpine_GSSTYPE" != "xnone" ; then + AC_SEARCH_LIBS(gss_init_sec_context,gss gssapi gssapi_krb5, + [ + dnl MIT-based? + AC_CHECK_HEADER([gssapi/gssapi_generic.h],, + [ + if test ! -d /usr/kerberos/include ; then + alpine_GSSTYPE="none" + alpine_gss_none_reason="header files not found" + fi + ]) + ], + [ + alpine_GSSTYPE="none" + alpine_gss_none_reason="libraries not found" + ]) + if test -n "$alpine_gss_none_reason" ; then + AC_MSG_NOTICE([NOT including Kerberos Support: $alpine_gss_none_reason]) + fi +fi + +dnl check for tcl libraries for Web Alpine (HACKY) +if test -n "$WEB_BUILD" ; then + AC_SEARCH_LIBS([Tcl_Eval],[$alpine_TCLLIB tcl8.4 tcl8.3 tcl84 tcl83 tcl],, + [ + WEB_BUILD= + ]) + + dnl look for header file + if test -n "$alpine_TCLINC" ; then + AC_CHECK_HEADER($alpine_TCLINC,, + [ + WEB_BUILD= + ]) + if test -z "$WEB_BUILD" ; then + AC_MSG_NOTICE([Tcl Include file NOT found]) + fi + else + AC_CHECK_HEADER(tcl.h,, + [ + for dir in tcl8.4 tcl8.3 tcl84 tcl83 ; do + AC_CHECK_FILE([/usr/include/$dir/tcl.h], + [ + found=yes + ]) + if test "$found" = "yes" ; then + CPPFLAGS="$CPPFLAGS -I/usr/include/$dir" + break + fi + done + ]) + fi +fi + +dnl Local or supplied regex? +if test x$alpine_REGEX != "xyes" ; then + AC_SEARCH_LIBS([regcomp],posix regexp regex re,, + [ + if test x$alpine_REGEX = "xno" ; then + AC_ERROR([Unable to find system regex library]) + else + alpine_REGEX=yes + fi + ]) +fi +if test x$alpine_REGEX != "xyes" ; then + AC_CHECK_HEADER([regex.h],, + [ + if test x$alpine_REGEX = "xno" ; then + AC_ERROR([Unable to find system regex include file]) + else + alpine_REGEX=yes + fi + ]) +fi +AC_DEFINE(HAVE_REGEX_H,1,[Regular expression header file exists]) +if test x$alpine_REGEX = "xyes" ; then + CPPFLAGS="$CPPFLAGS -I${top_builddir}/regex" + LDFLAGS="$LDFLAGS -L${top_builddir}/regex -lregex" + REGEX_BUILD=regex +fi + +if test "x$with_pthread" != "xno" ; then + AC_MSG_CHECKING([for pthread support]) + ACX_PTHREAD( + [ + AC_MSG_RESULT([yes]) + case "$target" in + *openbsd*) + AC_MSG_NOTICE([WARNING: pthread support on OpenBSD is unstable!]) + AM_CFLAGS="$AM_CFLAGS -pthread" + ;; + esac + LIBS="$PTHREAD_LIBS $LIBS" + AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS" + CC="$PTHREAD_CC" + AC_DEFINE([HAVE_PTHREAD], [1], [System has pthread support]) + ], + [ + AC_MSG_RESULT([no]) + ]) + + AC_SEARCH_LIBS([nanosleep], [rt posix4], + [ + AC_DEFINE([HAVE_NANOSLEEP], [1], [Define if system supports subsecond, non-alarm sleep]) + ]) +fi + + + +dnl CHECK HEADERS + +AC_HEADER_STDC +AC_HEADER_DIRENT +AC_HEADER_STAT +AC_HEADER_SYS_WAIT +AC_HEADER_TIME +AC_HEADER_TIOCGWINSZ + +AC_UNISTD_H + +AC_CHECK_HEADERS([errno.h \ + ctype.h \ + fcntl.h \ + signal.h \ + setjmp.h \ + memory.h \ + sys/param.h \ + sys/socket.h \ + sys/uio.h \ + sys/un.h \ + limits.h \ + wchar.h \ + sys/poll.h \ + stropts.h \ + netdb.h \ + syslog.h \ + sys/syslog.h \ + locale.h \ + langinfo.h \ + utime.h \ + sys/utime.h \ + pthread.h \ + pwd.h \ + assert.h]) + +dnl terminal line discipline? +AC_CHECK_HEADER([termios.h], + AC_DEFINE(HAS_TERMIOS, [1], [Define if systems uses termios terminal control]), + [ + AC_CHECK_HEADER([termio.h], + AC_DEFINE(HAS_TERMIO, [1], [Define if systems uses termio terminal control]), + [ + AC_CHECK_HEADER([sgtty.h], + AC_DEFINE(HAS_SGTTY, [1], [Define if systems uses old BSD-style terminal control]), + [ + AC_ERROR([Unable to figure out terminal control method]) + ]) + ]) + ]) + + +dnl CHECK TYPEDEFS + +AC_TYPE_SIGNAL +AC_TYPE_SIZE_T +AC_TYPE_MODE_T +AC_TYPE_PID_T +AC_TYPE_UID_T +AC_STRUCT_TM + +AC_CHECK_TYPES([union wait]) + +AC_CHECK_HEADERS([stdint.h], [uint16=uint16_t], [ + AC_CHECK_HEADERS([inttypes.h], [uint16=uint16_t], [ + AC_CHECK_HEADERS([sys/types.h], [uint16=u_int16_t], [ + AC_CHECK_SIZEOF(unsigned short) + if test $ac_cv_sizeof_unsigned_short -eq 2 ; then + uint16="unsigned short" + else + AC_CHECK_SIZEOF(unsigned int) + if $ac_cv_sizeof_unsigned_int -eq 2 ; then + uint16="unsigned int" + else + AC_ERROR([Unable to determine 16 bit integer type]) + fi + fi + ]) + ]) +]) +AC_DEFINE_UNQUOTED([UINT16], $uint16, [System defined unsigned 16 bit integer]) + +AC_CHECK_HEADERS([stdint.h], [uint32=uint32_t], [ + AC_CHECK_HEADERS([inttypes.h], [uint32=uint32_t], [ + AC_CHECK_HEADERS([sys/types.h], [uint32=u_int32_t], [ + AC_CHECK_SIZEOF(unsigned int) + if test $ac_cv_sizeof_unsigned_int -eq 4 ; then + uint32="unsigned int" + else + AC_CHECK_SIZEOF(unsigned long) + if $ac_cv_sizeof_unsigned_long -eq 4 ; then + uint32="unsigned long" + else + AC_ERROR([Unable to determine 32 bit integer type]) + fi + fi + ]) + ]) +]) +AC_DEFINE_UNQUOTED([UINT32], $uint32, [System defined unsigned 32 bit integer]) + +AC_CACHE_CHECK(argument pointer type of qsort compare function and base, +ac_cv_func_qsort_argtype, +[AC_TRY_COMPILE([ +#if HAVE_STDLIB_H +#include "stdlib.h" +#endif + +extern void *base; +extern sortf(const void *, const void *); +int sortf(a, b) + const void *a; + const void *b; { return 0; } +],[ +qsort(base, 2, sizeof(char *), sortf); +], + ac_cv_func_qsort_argtype=void, ac_cv_func_qsort_argtype=char) +]) +AC_DEFINE_UNQUOTED([qsort_t], $ac_cv_func_qsort_argtype, [qsort compare function argument type]) + +dnl check for "struct passwd" ? + +AC_FUNC_SELECT_ARGTYPES + +AC_FUNC_STRCOLL + +dnl CHECK FOR LIBRARY FUNCTIONS + +AC_FUNC_FORK +AC_CHECK_FUNCS([strchr \ + memcpy \ + strtol \ + strtoul \ + select \ + poll \ + qsort \ + getuid \ + getpwuid \ + getpwnam \ + gettimeofday \ + tmpfile \ + uname \ + rename \ + read \ + signal \ + setjmp \ + chown \ + wait4 \ + waitpid \ + wait \ + srandom \ + popen \ + pclose \ + fsync \ + truncate \ + listen \ + wcwidth \ + mbstowcs \ + wcrtomb \ + putenv \ + setenv]) + +AC_SEARCH_LIBS([gethostname],[nsl]) + +AC_SEARCH_LIBS([socket],[socket],, + [ + WEB_BUILD= + ]) + +AC_SEARCH_LIBS([bind],[bind],, + [ + WEB_BUILD= + ]) + +dnl check for POSIX signal interface +AC_CHECK_FUNCS([sigaction sigemptyset sigaddset sigprocmask], + [ + AC_DEFINE([POSIX_SIGNALS], [], [Define if system supports POSIX signal interface]) + ], + [ + AC_CHECK_FUNCS([sigset sigrelse], + [ + AC_DEFINE([SYSV_SIGNALS], [], [Define if system supports SYSV signal interface]) + ]) + ]) + +AC_SEARCH_LIBS([syslog], [bsd socket inet], + [ + AC_DEFINE([HAVE_SYSLOG], [1], [Define if system supplies syslog() logging]) + ]) + + +dnl HOST-OS SPECIFIC DEFINITIONS +dnl Tests and assignments below are mostly to coax the appropriate +dnl build from c-client. Most of this will go away when c-client +dnl adopts configure +case "$host" in + *-linux-gnu*|*-k*bsd*-gnu*) + alpine_path_delim="/" + alpine_mode_readonly="(0600)" + if test -f /etc/fedora-release ; then + systype="LFD" + if test -d /etc/pki/tls ; then + alpine_c_client_target="lfd" + else + alpine_c_client_target="lrh" + fi + elif test -f /etc/mandrake-release ; then + systype="LMD" + alpine_c_client_target="lmd" + elif test -f /etc/redhat-release -o -f /etc/redhat_version ; then + systype="LRH" + if test -d /etc/pki/tls ; then + alpine_c_client_target="lr5" + else + alpine_c_client_target="lrh" + fi + elif test -f /etc/debian_release -o -f /etc/debian_version ; then + if test -d /etc/osso-af-init ; then + systype="LN8" + alpine_c_client_target="ln8" + else + systype="DEB" + alpine_c_client_target="ldb" + fi + elif test -f /etc/SuSE-release ; then + systype="LSU" + alpine_c_client_target="lsu" + else + systype="LNX" + AC_CHECK_LIB(pam, pam_start, + [ + alpine_c_client_target="lnp" + ], + [ + if test -f /etc/shadow ; then + alpine_c_client_target="slx" + else + alpine_c_client_target="lnx" + fi + ]) + fi + ;; + *-apple-darwin*) + systype="OSX" + alpine_path_delim="/" + alpine_mode_readonly="(0600)" + LIBS="$LIBS -framework Carbon -framework ApplicationServices -framework Security" + AM_CFLAGS="$AM_CFLAGS -Dbsd" + dnl SEE include/system.h + AC_DEFINE([OSX_TARGET],[1],[OSX TARGET]) + case "$alpine_os_credential_cache" in + no) + ;; + *) + AC_DEFINE([APPLEKEYCHAIN], [1], [Use Apple OS X key chain for credential caching]) + ;; + esac + AC_CHECK_LIB(pam, pam_start, + [ + alpine_c_client_target="oxp" + ], + [ + alpine_c_client_target="osx" + ]) + ;; + *-*-solaris*) + if test x$GCC = "xyes" ; then + systype="GSO" + alpine_c_client_target="gso" + else + systype="SOC" + alpine_c_client_target="soc" + AC_DEFINE([__EXTENSIONS__], [1], [Enable extended pthread features on Solaris]) + fi + alpine_path_delim="/" + alpine_mode_readonly="(0600)" + dnl possible other OS's need this. + dnl Use autoconf 2.61's AC_USE_SYSTEM_EXTENSIONS at some point + ;; + *-*-sunos4*) + systype="SUN" + alpine_path_delim="/" + alpine_mode_readonly="(0600)" + alpine_c_client_target="s40" + ;; + *-*-sco3.2v5*) + if test x$GCC = "xyes" ; then + systype="GO5" + alpine_c_client_target="go5" + else + systype="SC5" + alpine_c_client_target="sc5" + fi + alpine_path_delim="/" + alpine_mode_readonly="(0600)" + dnl possible other OS's need this. + dnl Use autoconf 2.61's AC_USE_SYSTEM_EXTENSIONS at some point + ;; + *-next-*) + systype="NXT" + alpine_path_delim="/" + alpine_mode_readonly="(0600)" + alpine_c_client_target="nx3" + ;; + *-*-netbsd*) + systype="NEB" + alpine_path_delim="/" + alpine_mode_readonly="(0600)" + alpine_c_client_target="neb" + ;; + *-*-dragonfly*) + systype="DFB" + alpine_path_delim="/" + alpine_mode_readonly="(0600)" + alpine_c_client_target="neb" + ;; + *-*-bsdi*) + systype="BSI" + alpine_path_delim="/" + alpine_mode_readonly="(0600)" + alpine_c_client_target="bsi" + ;; + *-*-freebsd*) + systype="BSF" + alpine_path_delim="/" + alpine_mode_readonly="(0600)" + alpine_c_client_target="bsf" + LIBS="$LIBS $LIBINTL" + ;; + *-*-openbsd*) + systype="BSO" + alpine_path_delim="/" + alpine_mode_readonly="(0600)" + alpine_c_client_target="bso" + LIBS="$LIBS $LIBINTL" + ;; + *-*-aix5*) + systype="A52" + alpine_path_delim="/" + alpine_mode_readonly="(0600)" + alpine_c_client_target="a52" + ;; + *-*-aix4*) + systype="A41" + alpine_path_delim="/" + alpine_mode_readonly="(0600)" + alpine_c_client_target="a41" + ;; + *-*-aix3*) + systype="A32" + alpine_path_delim="/" + alpine_mode_readonly="(0600)" + alpine_c_client_target="a32" + ;; + *-*UNIX_SV | *-*-sysv5UnixWare7* | *-*OpenUNIX*) + systype="UW2" + alpine_path_delim="/" + alpine_mode_readonly="(0600)" + alpine_c_client_target="uw2" + ;; + *-*-osf5*) + systype="OSF" + alpine_path_delim="/" + alpine_mode_readonly="(0600)" + alpine_c_client_target="osf" + ;; + *-*-cygwin) + systype="CYG" + alpine_path_delim="\\\\" + alpine_mode_readonly="(S_IREAD | S_IWRITE)" + alpine_c_client_target="cyg" + LIBS="$LIBS $LIBINTL" + ;; + windows* | *-*-pw32*) + systype="WNT" + alpine_path_delim="\\" + alpine_mode_readonly="(S_IREAD | S_IWRITE)" + alpine_c_client_target="wnt" + AC_DEFINE([_WINDOWS], [1], [Windows is just too different]) + ;; + *) + AC_ERROR([Unrecognized system: $host]) + ;; +esac + +dnl set pico newmail check directory +if test -n "$alpine_with_local_maildir" ; then + alpine_local_maildir=$alpine_with_local_maildir +elif test -d /var/spool/mail ; then + alpine_local_maildir="/var/spool/mail" +elif test -d /var/mail ; then + alpine_local_maildir="/var/mail" +else + alpine_local_maildir="/usr/spool/mail" +fi + +dnl set c-client make target +if test -n "$alpine_with_c_client_target" ; then + alpine_c_client_target=$alpine_with_c_client_target +fi + +AC_DEFINE_UNQUOTED([SYSTYPE], "$systype", [Pine-Centric Host Specifier]) +AC_DEFINE_UNQUOTED([C_FILESEP],'$alpine_path_delim',[File name separator as character constant]) +AC_DEFINE_UNQUOTED([S_FILESEP],"$alpine_path_delim",[File name separator as string constant]) +AC_DEFINE_UNQUOTED([MAILDIR],"$alpine_local_maildir",[Path to local inboxes for pico newmail check]) +AC_DEFINE_UNQUOTED([MODE_READONLY], $alpine_mode_readonly, [File mode used to set readonly access]) + +dnl c-client make particulars +AC_SUBST([C_CLIENT_TARGET], $alpine_c_client_target) +AC_SUBST([C_CLIENT_WITH_IPV6], $c_client_ip6) +if test "x$alpine_SSLTYPE" = "xnone" ; then + AC_MSG_NOTICE([* * * NOT Including SSL Support]) + c_client_specials="${c_client_specials}SSLTYPE=none " +else + dnl issue any warnings for common OpenSSL issues + + if test -n "$alpine_SSLCERTS" -a -d "$alpine_SSLCERTS" ; then + certdir="$alpine_SSLCERTS" + elif test -n "$alpine_SSLDIR" -a -d "${alpine_SSLDIR}/certs" ; then + certdir="${alpine_SSLDIR}/certs" + else + AC_MSG_NOTICE([SSL Problem: certificate directory not found]) + fi + + if test "x$with_smime" != "xno" ; then + if test -n "$certdir" ; then + AC_DEFINE([SMIME], [], [Enable S/MIME code]) + AC_DEFINE_UNQUOTED([SMIME_SSLCERTS],"$certdir",[Directory where S/MIME CACerts are located]) + fi + fi + + if test ! -f ${certdir}/factory.pem ; then + AC_MSG_NOTICE([* * * SSL file "${certdir}/factory.pem" is missing.]) + AC_MSG_NOTICE([* * * This might indicate that CA certs did not get properly]) + AC_MSG_NOTICE([* * * installed. If you get certificate validation failures]) + AC_MSG_NOTICE([* * * in Alpine, this might be the reason for them.]) + fi + + if test -z "`ls ${certdir} | $EGREP '^@<:@0-9A-Fa-f@:>@{8}\.@<:@0-9@:>@'`" ; then + AC_MSG_NOTICE([* * * No 8-hexdigit symlinks in certificate directory "${certdir}".]) + AC_MSG_NOTICE([* * * This might indicate that CA certs did not get properly]) + AC_MSG_NOTICE([* * * installed. If you get certificate validation failures]) + AC_MSG_NOTICE([* * * in Alpine, this might be the reason for them.]) + fi + + if test -n "$alpine_SSLDIR" ; then + c_client_specials="${c_client_specials}SSLDIR=$alpine_SSLDIR " + fi + + if test -n "$alpine_SSLCERTS" ; then + c_client_specials="${c_client_specials}SSLCERTS=$alpine_SSLCERTS " + fi + + if test -n "$alpine_SSLINCLUDE" ; then + c_client_specials="${c_client_specials}SSLINCLUDE=$alpine_SSLINCLUDE " + fi + + if test -n "$alpine_SSLLIB" ; then + c_client_specials="${c_client_specials}SSLLIB=$alpine_SSLLIB " + fi + +fi + +if test "x$alpine_GSSTYPE" != "xnone" ; then + c_client_specials="${c_client_specials}EXTRAAUTHENTICATORS=gss " + AC_MSG_NOTICE([* * * Including Kerberos5 functionality]) +fi + +if test -n "$CPPFLAGS" ; then + alpine_c_client_cflags="$alpine_c_client_cflags ${CPPFLAGS}" +fi +if test -n "$CFLAGS" ; then + alpine_c_client_cflags="$alpine_c_client_cflags ${CFLAGS}" +fi + +if test -n "$alpine_c_client_cflags" ; then + AC_SUBST(C_CLIENT_CFLAGS, EXTRACFLAGS=\"$alpine_c_client_cflags\") +fi + +if test -n "$LDFLAGS" ; then + alpine_c_client_ldflags="$alpine_c_client_ldflags ${LDFLAGS}" +fi +if test -n "$LIBS" ; then + alpine_c_client_ldflags="$alpine_c_client_ldflags ${LIBS}" +fi + +if test -n "$alpine_c_client_ldflags" ; then + AC_SUBST(C_CLIENT_LDFLAGS, EXTRALDFLAGS=\"$alpine_c_client_ldflags\") +fi + +if test -n "$alpine_c_client_gccoptlevel" ; then + AC_SUBST(C_CLIENT_GCCOPTLEVEL, GCCOPTLEVEL=\"$alpine_c_client_gccoptlevel\") +fi + +AC_SUBST([C_CLIENT_SPECIALS], $c_client_specials) + +dnl Deal with Web Alpine +if test -z "$WEB_BUILD" ; then + WEB_PUBCOOKIE_BUILD= + AC_MSG_NOTICE([* * * TCL libraries could not be found.]) + AC_MSG_NOTICE([* * * WEB ALPINE COMPONENT WILL NOT BE BUILT.]) +else + if test -n "$WEB_PUBCOOKIE_BUILD" ; then + if test "x$alpine_GSSTYPE" = "xnone" ; then + WEB_PUBCOOKIE_BUILD= + AC_MSG_NOTICE([* * * Kerberos5 support not found.]) + AC_MSG_NOTICE([* * * WEB ALPINE PUBCOOKIE COMPONENT WILL NOT BE BUILT.]) + elif test -z "$WEB_BINDIR" ; then + WEB_PUBCOOKIE_BUILD= + AC_MSG_NOTICE([* * * Web Alpine binary directory not provided.]) + AC_MSG_ERROR([* * * --with-pubcookie requires --with-web-bin=PATH. + Please re-run configure with these options: + --with-pubcookie --with-web-bin=/usr/local/libexec/alpine/bin]) + else + AC_DEFINE([PUBCOOKIE],[1],[Include support for UW Pubcookie Web Authentication]) + WEB_PUBCOOKIE_LIB=../pubcookie/libauthgssproxy.a + WEB_PUBCOOKIE_LINK=gssapi_proxy.l + fi + fi +fi + +AC_SUBST([REGEX_BUILD]) + +AC_SUBST([WEB_BUILD]) +AC_SUBST([WEB_BINDIR]) +AC_SUBST([WEB_PUBCOOKIE_BUILD]) +AC_SUBST([WEB_PUBCOOKIE_LIB]) +AC_SUBST([WEB_PUBCOOKIE_LINK]) + +AC_SUBST([AM_CFLAGS]) +AC_SUBST([AM_LDFLAGS]) + +AC_OUTPUT(m4/Makefile po/Makefile.in regex/Makefile \ + pith/osdep/Makefile pith/charconv/Makefile pith/Makefile \ + pico/osdep/Makefile pico/Makefile \ + alpine/osdep/Makefile alpine/Makefile \ + web/src/Makefile web/src/pubcookie/Makefile \ + web/src/alpined.d/Makefile \ + Makefile) |