1 dnl Process this file with autoconf to produce a configure script.
3 dnl /* ========================================================================
4 dnl * Copyright 2013-2014 Eduardo Chappa
5 dnl * Copyright 2006-2008 University of Washington
7 dnl * Licensed under the Apache License, Version 2.0 (the "License");
8 dnl * you may not use this file except in compliance with the License.
9 dnl * You may obtain a copy of the License at
11 dnl * http://www.apache.org/licenses/LICENSE-2.0
13 dnl * ========================================================================
18 AC_REVISION([Rev:13 by chappa@washington.edu])
20 dnl Alpine Version Number is in $srcdir/VERSION
21 AC_INIT([alpine],[m4_normalize(m4_include(VERSION))],[chappa@washington.edu])
23 AC_CONFIG_SRCDIR([include/system.h])
24 AC_CONFIG_HEADERS([include/config.h])
25 AC_CONFIG_MACRO_DIR([m4])
26 AM_INIT_AUTOMAKE([foreign nostdinc])
34 AC_MSG_NOTICE([Configuring for $PACKAGE_STRING ($host))])
36 # start out with intent to build Web Alpine
37 WEB_BUILD=web/src/alpined.d
49 AC_SUBST([LIBTOOL_DEPS])
51 AC_PATH_PROG(AR, ar, ar)
52 AC_PATH_PROG(RM, rm, rm)
53 AC_PATH_PROG(CP, cp, cp)
54 AC_PATH_PROG(LN, ln, ln)
55 AC_PATH_PROG(LS, ls, ls)
56 AC_PATH_PROG(SED, sed, sed)
57 AC_PATH_PROG(MAKE, make)
59 dnl COMPILE-TIME OPTIONS
61 AM_GNU_GETTEXT_VERSION([0.16.1])
62 AM_GNU_GETTEXT([external])
64 dnl enable dmalloc per http://dmalloc.com
65 dnl NOTE: does not check c-client
66 AC_MSG_CHECKING([option: dmalloc enabled])
67 AC_ARG_ENABLE(dmalloc, AS_HELP_STRING([--enable-dmalloc],[Enable dmalloc debugging]))
68 if test x$enable_dmalloc = "xyes" ; then
74 AC_ARG_WITH(dmalloc-dir,
75 AS_HELP_STRING([--with-dmalloc-dir=DIR],[Root of dmalloc lib/include path]),
77 if test "x$withval" != "xno" ; then
78 enable_dmalloc = "yes"
79 CPPFLAGS="$CPPFLAGS -I${withval}"
80 LDFLAGS="$LDFLAGS -L${withval}"
84 if test x$enable_dmalloc = "xyes" ; then
85 AC_DEFINE(ENABLE_DMALLOC, 1, [Define enable dmalloc debugging])
88 dnl set ps command, this test is fragile, but it should mostly work
89 ALPINE_psefcmd="/bin/ps auxww"
93 AS_HELP_STRING([--with-ps-cmd="CMD"],[Use this command to check running commands. Default: /bin/ps auxww]),
95 if test "x$withval" = "xno" -o "x$withval" = "xyes" -o "x$withval" = "x" ; then
96 withval=$ALPINE_psefcmd
98 ALPINE_PSTEST=`$withval | $EGREP "$withval" | $EGREP -v $EGREP`
99 if test -n "$ALPINE_PSTEST" ; then
100 ALPINE_psefcmd="$withval"
103 if test "x$ALPINE_psefcmd" != "x$withval" ; then
104 AC_MSG_WARN(failed command $withval. Trying $ALPINE_psefcmd)
108 if test "$ALPINE_psfailed" = "1" -o "$ALPINE_PSTEST" = "-" ; then
109 withval="$ALPINE_psefcmd"
110 ALPINE_PSTEST=`$withval | $EGREP "$withval" | $EGREP -v $EGREP`
111 if test -z "$ALPINE_PSTEST" ; then
117 if test "$ALPINE_psfailed" = "0" ; then
118 AC_DEFINE_UNQUOTED([PSEFCMD], "$ALPINE_psefcmd", [ps command which outputs list of running commands])
121 dnl Set default locale dir.
124 if test -d /opt/local ; then
125 localedir="/opt/local/share/locale"
127 localedir="\${datadir}/locale"
131 localedir="/usr/share"
134 localedir="\${datadir}/locale"
137 AC_ARG_WITH(localedir,
138 AS_HELP_STRING([--with-localedir=DIR],[Name of gettext locale directory]),
150 AC_SUBST(localedir, "[$localedir]")
152 # Setup OS-Specific features
155 dnl OS X Universal Binary Support
156 AC_ARG_ENABLE(osx-universal-binaries,
157 AS_HELP_STRING([--enable-osx-universal-binaries],[Produce universal binaries under OS X [[default=no]]]))
158 if test "x$enable_osx_universal_binaries" = "xyes" ; then
159 if test "x$enable_dependency_tracking" != xno ; then
160 AC_MSG_ERROR([--enable-osx-universal-binary requires --disable-dependency-tracking.
161 Please re-run configure with these options:
162 --disable-dependency-tracking --enable-osx-universal-binary])
164 if [test -d /Developer/SDKs/MacOSX10.5.sdk] ; then
165 alpine_sysroot=/Developer/SDKs/MacOSX10.5.sdk
166 elif [test -d /Developer/SDKs/MacOSX10.4u.sdk] ; then
167 alpine_sysroot=/Developer/SDKs/MacOSX10.4u.sdk
169 AC_MSG_ERROR([No suitable MacOSX SDK found. Make sure Xcode tools are installed])
171 ub_cflags="-isysroot $alpine_sysroot -arch ppc -arch i386"
172 ub_ldflags="-Wl,-syslibroot,$alpine_sysroot -arch ppc -arch i386"
173 AM_CFLAGS="$AM_CFLAGS $ub_cflags"
174 AM_LDFLAGS="$AM_LDFLAGS $ub_ldflags"
175 alpine_c_client_cflags="$alpine_c_client_cflags $ub_cflags"
176 alpine_c_client_ldflags="$alpine_c_client_ldflags $ub_ldflags"
181 AC_ARG_WITH(include-path,
182 AS_HELP_STRING([--with-include-path=PATHS],[Colon-separated list of directories used for include file search]),
190 new_cppflags="-I`echo ${withval} | ${SED} 's/:/ -I/g'`"
191 CPPFLAGS="$CPPFLAGS ${new_cppflags}"
192 alpine_c_client_cflags="$alpine_c_client_cflags ${new_cppflags}"
197 AC_ARG_WITH(lib-path,
198 AS_HELP_STRING([--with-lib-path=PATHS],[Colon-separated list of directories used for library search]),
206 new_ldflags="-L`echo ${withval} | ${SED} 's/:/ -L/g'`"
207 LDFLAGS="$LDFLAGS $new_ldflags"
208 alpine_c_client_ldflags="$alpine_c_client_ldflags ${new_ldflags}"
213 AC_ARG_WITH(pubcookie,
214 AS_HELP_STRING([--with-pubcookie],[Include support for UW-Pubcookie Web Authentication]),
216 if test "x$withval" != "xno" ; then
217 WEB_PUBCOOKIE_BUILD=web/src/pubcookie
223 AS_HELP_STRING([--with-web-bin=PATH],[Directory to hold Web Alpine component binary files]),
236 dnl disable debug, turned on by default
237 AC_MSG_CHECKING([option: debugging is enabled])
238 AC_ARG_ENABLE(debug, AS_HELP_STRING([--disable-debug],[Exclude debug messages from source]))
239 if test x$enable_debug != "xno" ; then
240 AM_CFLAGS="$AM_CFLAGS -g"
241 AC_DEFINE([DEBUG], [1], [Compile in debugging])
242 AC_DEFINE([DEBUGJOURNAL], [1], [Display debug messages in journal])
245 dnl ??? set AM_CFLAGS to optimize ???
249 dnl disable optimization, on by default
250 AC_MSG_CHECKING([option: optimization is enabled])
251 AC_ARG_ENABLE(optimization, AS_HELP_STRING([--disable-optimization],[Exclude optimizing compiler flags]))
252 if test x$enable_optimization != "xno" ; then
255 CFLAGS="`echo $AM_CFLAGS | ${SED} 's/-O2//'`"
256 alpine_c_client_gccoptlevel="-O0"
260 dnl disable mouse support
261 AC_MSG_CHECKING([option: mouse support enabled])
262 AC_ARG_ENABLE(mouse, AS_HELP_STRING([--disable-mouse],[Disable mouse support]))
263 if test x$enable_mouse != "xno" ; then
264 AC_DEFINE([MOUSE], [], [Compile in mouse support])
271 AC_MSG_CHECKING([option: quotas enabled])
272 AC_ARG_ENABLE(quotas, AS_HELP_STRING([--enable-quotas],[Enable disk quota checking on startup]))
273 if test x$enable_quotas = "xyes" ; then
274 AC_DEFINE([USE_QUOTAS], [], [Compile in quota check on startup])
280 AC_MSG_CHECKING([option: From changing enabled])
281 AC_ARG_ENABLE(from_changing, AS_HELP_STRING([--disable-from-changing],[Disallow users changing From addresss]))
282 if test x$enable_from_changing != "xno" ; then
285 AC_DEFINE([NEVER_ALLOW_CHANGING_FROM], [], [Disallow users changing their From address])
289 dnl enable background posting support
290 AC_MSG_CHECKING([option: background post enabled])
291 AC_ARG_ENABLE(background-post, AS_HELP_STRING([--disable-background-post],[Disable background posting]))
292 if test x$enable_background_post != "xno" ; then
293 AC_DEFINE([BACKGROUND_POST], [], [Enable background posting support])
299 dnl enable keyboard locking support
300 AC_MSG_CHECKING([option: keyboard lock enabled])
301 AC_ARG_ENABLE(keyboard-lock, AS_HELP_STRING([--disable-keyboard-lock],[Disable keyboard locking]))
302 if test x$enable_keyboard_lock != "xno" ; then
303 AC_DEFINE([KEYBOARD_LOCK], [], [Enable keyboard lock support])
309 dnl enable from encoding support
310 AC_MSG_CHECKING([option: from encoding enabled])
311 AC_ARG_ENABLE(from-encoding, AS_HELP_STRING([--enable-from-encoding],[Enable From encoding in sent messages]))
312 if test x$enable_from_encoding = "xyes" ; then
313 AC_DEFINE([ENCODE_FROMS], [], [Enable From address encoding in sent messages])
319 dnl OPTION: name of local submission agent
320 dnl Might not be sendmail, but it MUST speak SMTP on stdin/stdout
321 AC_ARG_WITH(smtp-msa,
322 AS_HELP_STRING([--with-smtp-msa=PATH],[Local Mail Submission Agent (sendmail)]),
328 AC_PATH_PROG(SENDMAIL, sendmail, "", $PATH:/usr/sbin:/usr/lib)
336 AC_PATH_PROG(SENDMAIL, sendmail, "", $PATH:/usr/sbin:/usr/lib)
338 if test -n "$SENDMAIL" ; then
339 AC_DEFINE_UNQUOTED([SENDMAIL], "$SENDMAIL", [Local mail submission agent])
342 dnl OPTION: local msa arguments
343 smtp_msa_flags="-bs -odb -oem"
344 AC_ARG_WITH(smtp-msa-flags,
345 AS_HELP_STRING([--with-smtp-msa-flags=FLAGS],[MSA flags for SMTP on stdin/stdout (-bs -odb -oem)]),
347 if test "x$withval" != "xno" ; then
348 smtp_msa_flags=$withval
351 AC_DEFINE_UNQUOTED([SENDMAILFLAGS], "$smtp_msa_flags", [Local MSA flags for SMTP on stdin/stdout])
353 dnl OPTION: name of local news posting agent and flags
356 AS_HELP_STRING([--with-npa=PATH],[Posting agent when no nntp-servers defined (inews)]),
362 AC_PATH_PROG(NPA_PROG, inews, "", $PATH:/usr/sbin:/usr/lib)
370 AC_PATH_PROG(NPA_PROG, inews, "", $PATH:/usr/sbin:/usr/lib)
374 AC_ARG_WITH(npa-flags,
375 AS_HELP_STRING([--with-npa-flags=FLAGS],[Flags to allow posting via local agent (-h)]),
377 if test "x$withval" != "xno" ; then
381 if test -n "$NPA_PROG" ; then
382 AC_DEFINE_UNQUOTED([SENDNEWS], "$NPA_PROG $npa_flags", [Posting agent to use when no nntp-servers defined])
385 dnl OPTION: password changing program
386 AC_ARG_WITH(password-prog,
387 AS_HELP_STRING([--with-password-prog=PATH],[Password change program (/bin/passwd)]),
393 AC_PATH_PROG(PWPROG, passwd, "", $PATH:/usr/sbin:/usr/lib)
396 AC_PATH_PROG(PWPROG, $withval, "", $PATH:/usr/sbin:/usr/lib)
401 AC_PATH_PROG(PWPROG, passwd, "", $PATH:/usr/sbin:/usr/lib)
403 if test -n "$PWPROG" ; then
404 AC_DEFINE_UNQUOTED([PASSWD_PROG], "$PWPROG", [Program users use to change their password])
407 dnl OPTION: basic spell checking program
408 AC_ARG_WITH(simple-spellcheck,
409 AS_HELP_STRING([--with-simple-spellcheck=PROG],[Spellcheck program reads stdin, emits misspellings on stdout]),
411 if test "x$withval" != "xno" ; then
416 AC_CHECK_PROG([SPELLPROG], [hunspell], [hunspell], [])
417 if test -z "$SPELLPROG" ; then
418 AC_CHECK_PROG([SPELLPROG], [aspell], [aspell], [])
419 if test -z "$SPELLPROG" ; then
420 AC_CHECK_PROG([SPELLPROG], [ispell], [ispell], [])
421 if test -z "$SPELLPROG" ; then
428 if test "x$SPELLPROG" != "xno" ; then
429 AC_PATH_PROG(alpine_simple_spellcheck, $SPELLPROG)
430 if test -n "$alpine_simple_spellcheck" ; then
433 alpine_simple_spellcheck="$alpine_simple_spellcheck -l"
436 alpine_simple_spellcheck="$alpine_simple_spellcheck --dont-backup --mode=email list"
439 alpine_simple_spellcheck="$alpine_simple_spellcheck -l"
447 dnl OPTION: interactive spell checking program
448 AC_ARG_WITH(interactive-spellcheck,
449 AS_HELP_STRING([--with-interactive-spellcheck=PROG],[Interactive, filewise spell checker]),
451 if test "x$withval" != "xno" ; then
456 AC_CHECK_PROG([ISPELLPROG], [hunspell], [hunspell], [])
457 if test -z "$ISPELLPROG" ; then
458 AC_CHECK_PROG([ISPELLPROG], [aspell], [aspell], [])
459 if test -z "$SPELLPROG" ; then
465 if test "x$ISPELLPROG" != "xno" ; then
466 AC_PATH_PROG(alpine_interactive_spellcheck, $ISPELLPROG)
467 if test -n "$alpine_interactive_spellcheck" ; then
468 case "$ISPELLPROG" in
470 alpine_interactive_spellcheck="$alpine_interactive_spellcheck --dont-backup --mode=email check"
478 if test -n "$alpine_interactive_spellcheck" ; then
479 AC_DEFINE_UNQUOTED([DF_VAR_SPELLER], "$alpine_interactive_spellcheck", [Interactive, filewise spell checker])
482 if test -z "$alpine_simple_spellcheck" -a -n "$alpine_interactive_spellcheck" ; then
483 alpine_simple_spellcheck=test
485 AC_DEFINE_UNQUOTED([SPELLER], "$alpine_simple_spellcheck", [Simple spell checker: reads stdin, emits misspellings on stdout])
487 dnl OPTION: system-pinerc
488 dnl NOTE: historically we used /lib for the config dir.
489 dnl don't ask, it was a long time ago. but, we can't
490 dnl change it now without breaking compatibility
492 NONE) dpv=/usr/local/lib/pine.conf ;;
493 *) dpv=${prefix}/lib/pine.conf ;;
495 AC_ARG_WITH(system-pinerc,
496 AS_HELP_STRING([--with-system-pinerc=VALUE],[System pinerc (/usr/local/lib/pine.conf)]),
508 AC_DEFINE_UNQUOTED(SYSTEM_PINERC, "$dpv", [System pinerc])
510 dnl OPTION: system-fixed-pinerc
511 dnl NOTE: historically we used /lib for the config dir.
512 dnl don't ask, it was a long time ago. but, we can't
513 dnl change it now without breaking compatibility
515 NONE) dpv=/usr/local/lib/pine.conf.fixed ;;
516 *) dpv=${prefix}/lib/pine.conf.fixed ;;
518 AC_ARG_WITH(system-fixed-pinerc,
519 AS_HELP_STRING([--with-system-fixed-pinerc=VALUE],[System fixed pinerc (/usr/local/lib/pine.conf.fixed)]),
531 AC_DEFINE_UNQUOTED(SYSTEM_PINERC_FIXED, "$dpv", [System fixed pinerc])
533 dnl OPTION: local support information, file that contains information on
534 dnl how to contact local support for Alpine.
535 dnl NOTE: historically we used /lib for the config dir.
536 dnl don't ask, it was a long time ago. but, we can't
537 dnl change it now without breaking compatibility
539 NONE) dpv=/usr/local/lib/pine.info ;;
540 *) dpv=${prefix}/lib/pine.info ;;
542 AC_ARG_WITH(local-support-info,
543 AS_HELP_STRING([--with-local-support-info=VALUE],[Local Support Info File (/usr/local/lib/pine.info)]),
555 AC_DEFINE_UNQUOTED(SYSTEM_PINE_INFO_PATH, "$dpv", [Local Support Info File])
557 dnl Function to simplify setting alpine/pico defaults
558 dnl usage: PINEVAR(configure-name, definition-name, definition-value, help)
563 AS_HELP_STRING([--with-$1=VALUE],[$4 ($3)]),
565 if test "x$withval" != "xno" ; then
569 AC_DEFINE_UNQUOTED($2, "$dpv", [Default configuration value])
572 dnl Function to simplify setting pine/pico defaults
573 dnl usage: PINEVAR_UNQUOTED(configure-name, definition-name, definition-value, help)
574 AC_DEFUN([PINEVAR_UNQUOTED],
578 AS_HELP_STRING([--with-$1=VALUE],[$4 ($3)]),
580 if test "x$withval" != "xno" ; then
584 AC_DEFINE_UNQUOTED($2, $dpv, [Default configuration value])
587 PINEVAR(mailcheck-interval, DF_MAILCHECK, 150, [Specify default mail-check-interval])
588 PINEVAR_UNQUOTED(checkpoint-interval, CHECK_POINT_TIME, 420, [Specify default checkpoint-interval])
589 PINEVAR_UNQUOTED(checkpoint-frequency, CHECK_POINT_FREQ, 12, [State change count before checkpoint])
590 PINEVAR_UNQUOTED(display-rows, DEFAULT_LINES_ON_TERMINAL, 24, [Initial rows on display])
591 PINEVAR_UNQUOTED(display-columns, DEFAULT_COLUMNS_ON_TERMINAL, 80, [Initial columns on display])
592 PINEVAR_UNQUOTED(max-display-rows, MAX_SCREEN_ROWS, 200, [Maximum display rows])
593 PINEVAR_UNQUOTED(max-display-columns, MAX_SCREEN_COLS, 500, [Maximum display columns])
594 PINEVAR(fill-column, DF_FILLCOL, 74, [Default fill column])
595 PINEVAR_UNQUOTED(max_fill-column, MAX_FILLCOL, 80, [Maximum fill column])
596 PINEVAR_UNQUOTED(debug-level, DEFAULT_DEBUG, 2, [Specify default debug verbosity level])
597 PINEVAR_UNQUOTED(debug-files, NUMDEBUGFILES, 4, [Specify number of debug files])
598 PINEVAR(debug-file, DEBUGFILE, [.pine-debug], [Specify debug file name])
599 PINEVAR(forwarded-keyword, FORWARDED_FLAG, ["\$Forwarded"], [IMAP (c-client) keyword to store forwarded status])
600 PINEVAR(display-overlap, DF_OVERLAP, [2], [Lines preserved while paging])
601 PINEVAR(display-margin, DF_MARGIN, [0], [Lines visible while scrolling])
602 PINEVAR(default-fcc, DF_DEFAULT_FCC, [sent-mail], [Default sent mail folder])
603 PINEVAR(default-save-folder, DEFAULT_SAVE, [saved-messages], [Default save folder])
604 PINEVAR(default-legacy-postponed-folder, POSTPONED_MAIL, [postponed-mail], [Pre Pine 3.90 postponed folder])
605 PINEVAR(default-postponed-folder, POSTPONED_MSGS, [postponed-msgs], [Default postponed folder])
606 PINEVAR(default-trash-folder, TRASH_FOLDER, [Trash], [Default Trash folder for Web Alpine])
607 PINEVAR(default-interrupted-mail, INTERRUPTED_MAIL, [.pine-interrupted-mail], [Default folder for interrupted mail])
608 PINEVAR(default-dead-letter-folder, DEADLETTER, [dead.letter], [Default dead letter folder])
609 PINEVAR(default-mail-directory, DF_MAIL_DIRECTORY, [mail], [Default mail directory])
610 PINEVAR(default-inbox-name, INBOX_NAME, [INBOX], [Default inbox name])
611 PINEVAR(default-signature-file, DF_SIGNATURE_FILE, [.signature], [Default signature file])
612 PINEVAR(default-elm-style-save, DF_ELM_STYLE_SAVE, [no], [Default to Elm style save])
613 PINEVAR(default-header-in-reply, DF_HEADER_IN_REPLY, [no], [Include header in reply])
614 PINEVAR(default-old-style-reply, DF_OLD_STYLE_REPLY, [no], [Default to old style reply])
615 PINEVAR(default-use-only-domain-name, DF_USE_ONLY_DOMAIN_NAME, [no], [Default to using only the domain name])
616 PINEVAR(default-save-by-sender, DF_SAVE_BY_SENDER, [no], [Default to save by sender])
617 PINEVAR(default-sort-key, DF_SORT_KEY, [arrival], [Default sort key])
618 PINEVAR(default-addressbook-sort-rule, DF_AB_SORT_RULE, [fullname-with-lists-last], [Default addressbook sort rule])
619 PINEVAR(default-folder-sort-rule, DF_FLD_SORT_RULE, [alphabetical], [Default folder sort rule])
620 PINEVAR(default-saved-message-name-rule, DF_SAVED_MSG_NAME_RULE, [default-folder], [Default saved message name rule])
621 PINEVAR(default-fcc-rule, DF_FCC_RULE, [default-fcc], [Default fcc rule])
622 PINEVAR(default-standard-printer, DF_STANDARD_PRINTER, [lpr], [Default standard printern])
623 PINEVAR(default-ansi-printer, ANSI_PRINTER, [attached-to-ansi], [ANSI printer definition])
624 PINEVAR(default-addressbook, DF_ADDRESSBOOK, [.addressbook], [Default addressbook name])
625 PINEVAR(default-local-fullname, DF_LOCAL_FULLNAME, ["Local Support"], [Default local support fullname])
626 PINEVAR(default-local-address, DF_LOCAL_ADDRESS, [postmaster], [Default local support address])
627 PINEVAR(default-keyboard-lock-count, DF_KBLOCK_PASSWD_COUNT, [1], [Default keyboard lock count])
628 PINEVAR(default-remote-addressbook-history, DF_REMOTE_ABOOK_HISTORY, [3], [Default address book history count])
629 PINEVAR(smime-public-cert-directory, DF_PUBLICCERT_DIR, [.alpine-smime/public], [Default Public Cert Directory])
630 PINEVAR(smime-private-key-directory, DF_PRIVATEKEY_DIR, [.alpine-smime/private], [Default Private Key Directory])
631 PINEVAR(smime-cacert-directory, DF_CACERT_DIR, [.alpine-smime/ca], [Default Cert Authority Directory])
632 PINEVAR_UNQUOTED(default-printer, DF_DEFAULT_PRINTER, [ANSI_PRINTER], [Default printer])
635 AC_ARG_WITH(passfile,
636 AS_HELP_STRING([--with-passfile=FILENAME],[Password cache file (recommended when S/MIME is enabled and configured)]),
644 alpine_PASSFILE=$withval
650 dnl os-specific credential cache?
651 AC_ARG_WITH(local-password-cache,
652 AS_HELP_STRING([--without-local-password-cache],[Disable OS-specific password cache, if supported]),
654 alpine_os_credential_cache=$withval
657 dnl Particular os-specific credential cache?
658 AC_ARG_WITH(local-password-cache-method,
659 AS_HELP_STRING([--with-local-password-cache-method],[OS-specific credential cache (OSX=APPLEKEYCHAIN, Windows=WINCRED)]),
661 alpine_os_credential_cache_method=$withval
664 if test -n "$alpine_PASSFILE" ; then
665 case $alpine_os_credential_cache in
669 alpine_os_credential_cache="no"
670 AC_MSG_NOTICE([--with-passfile definition overrides OS-Specific password caching])
673 AC_DEFINE_UNQUOTED([PASSFILE], "$alpine_PASSFILE", [Password cache file (recommended if S/MIME is enabled and configured)])
677 AC_ARG_WITH(default-sshpath,
678 AS_HELP_STRING([--with-default-sshpath=FILENAME],[set default value of ssh command path (defining should cause ssh to be preferred to rsh)]),
686 AC_DEFINE_UNQUOTED([DF_SSHPATH], "$withval", [set default value of ssh command path (defining should cause ssh to be preferred to rsh)])
692 AC_ARG_WITH(default-sshcmd,
693 AS_HELP_STRING([--with-default-sshcmd=PERCENT_S_STRING],[set default value of ssh command string (usually "%s %s -l %s exec /etc/r%sd")]),
701 AC_DEFINE_UNQUOTED([DF_SSHCMD], "$withval", [set default value of ssh command string (usually "%s %s -l %s exec /etc/r%sd")])
707 dnl Set SSLDIR for c-client make
709 AS_HELP_STRING([--without-ssl],[Disable SSL support (OpenSSL)]),
710 [ with_ssl=$withval ])
712 if test "x$with_ssl" = "xno" ; then
713 alpine_SSLTYPE="none"
715 dnl preload c-client default locations/options
718 if test -f /etc/fedora-release -o -f /etc/redhat-release -o -f /etc/redhat_version ; then
719 alpine_SSLTYPE="nopwd"
720 if test -d /etc/pki/tls ; then
721 alpine_SSLDIR="/etc/pki/tls"
723 alpine_SSLDIR="/usr/share/ssl"
725 alpine_SSLCERTS="$alpine_SSLDIR/certs"
726 alpine_SSLKEYS="$alpine_SSLDIR/private"
727 alpine_SSLINCLUDE="/usr/include/openssl"
728 alpine_SSLLIB="/usr/lib"
729 elif test -f /etc/mandrake-release ; then
730 alpine_SSLDIR="/usr/lib/ssl"
731 alpine_SSLCERTS="$alpine_SSLDIR/certs"
732 alpine_SSLKEYS="$alpine_SSLDIR/private"
733 alpine_SSLINCLUDE="/usr/include/openssl"
734 alpine_SSLLIB="/usr/lib"
735 elif test -f /etc/SuSE-release ; then
736 alpine_SSLTYPE="nopwd"
737 alpine_SSLDIR="/etc/ssl"
738 alpine_SSLCERTS="$alpine_SSLDIR/certs"
739 alpine_SSLKEYS="$alpine_SSLDIR/private"
740 alpine_SSLINCLUDE="/usr/include/openssl"
741 alpine_SSLLIB="/usr/lib"
742 elif test -d /etc/osso-af-init ; then
743 alpine_SSLTYPE="nopwd"
745 alpine_SSLCERTS="/usr/share/certs"
746 alpine_SSLINCLUDE="/usr/include/openssl"
747 alpine_SSLLIB="/usr/lib"
748 elif test -f /etc/debian_release -o -f /etc/debian_version ; then
749 if test ! -d /etc/osso-af-init ; then
750 alpine_SSLDIR="/etc/ssl"
751 alpine_SSLCERTS="$alpine_SSLDIR/certs"
752 alpine_SSLKEYS="$alpine_SSLDIR/private"
753 alpine_SSLINCLUDE="/usr/include/openssl"
754 alpine_SSLLIB="/usr/lib"
757 alpine_SSLTYPE="nopwd"
759 alpine_SSLCERTS="/etc/ssl/certs"
763 alpine_SSLTYPE="nopwd"
764 dnl Originally this is where certs are, and they might still be there, even
765 dnl after installing Homebrew, MacPorts or Fink. We will use it if we cannot
766 dnl find it anywhere else.
767 alpine_SSLCERTS_ORIG="/System/Library/OpenSSL/certs"
768 if test -d /usr/local/opt/openssl ; then
769 alpine_SSLDIR="/usr/local/opt/openssl"
770 alpine_SSLINCLUDE="$alpine_SSLDIR/include"
771 alpine_SSLLIB="$alpine_SSLDIR/lib"
772 alpine_SSLCERTS="/usr/local/etc/openssl"
773 alpine_SSLKEYS="$alpine_SSLDIR/private"
774 elif test -d /opt/local/etc/openssl ; then
775 alpine_SSLDIR="/opt/local"
776 alpine_SSLINCLUDE="$alpine_SSLDIR/include"
777 alpine_SSLLIB="$alpine_SSLDIR/lib"
778 alpine_SSLCERTS="/opt/local/etc/openssl/certs"
779 alpine_SSLKEYS="/opt/local/etc/openssl/private"
780 elif test -d /sw/etc/ssl ; then
781 alpine_SSLDIR="/sw/etc/ssl"
782 alpine_SSLINCLUDE="/sw/include"
783 alpine_SSLLIB="/sw/lib"
784 alpine_SSLCERTS="/sw/etc/ssl/certs"
785 alpine_SSLKEYS="/sw/etc/ssl/private"
786 elif test -d /System/Library/OpenSSL ; then
787 alpine_SSLDIR="/System/Library/OpenSSL"
788 alpine_SSLCERTS="$alpine_SSLDIR/certs"
789 alpine_SSLKEYS="$alpine_SSLDIR/private"
790 alpine_SSLLIB="/usr/lib"
791 alpine_SSLINCLUDE="/usr/include/openssl"
795 alpine_SSLDIR="/etc/openssl"
796 alpine_SSLCERTS="$alpine_SSLDIR/certs"
797 alpine_SSLKEYS="$alpine_SSLDIR/private"
798 alpine_SSLINCLUDE="/usr/include/openssl"
799 alpine_SSLLIB="/usr/lib"
802 alpine_SSLDIR="/etc/openssl"
803 alpine_SSLCERTS="$alpine_SSLDIR/certs"
804 alpine_SSLKEYS="$alpine_SSLDIR/private"
805 alpine_SSLINCLUDE="/usr/include/openssl"
806 alpine_SSLLIB="/usr/lib"
809 alpine_SSLTYPE="nopwd"
811 alpine_SSLCERTS="/etc/ssl/certs"
814 alpine_SSLDIR="/etc/ssl"
815 alpine_SSLCERTS="$alpine_SSLDIR/certs"
816 alpine_SSLKEYS="$alpine_SSLDIR/private"
817 alpine_SSLINCLUDE="/usr/include/openssl"
818 alpine_SSLLIB="/usr/lib"
821 alpine_SSLDIR="/etc/ssl"
822 alpine_SSLINCLUDE="/usr/include/openssl"
823 alpine_SSLLIB="/usr/lib"
824 alpine_SSLCERTS="/etc/ssl"
825 alpine_SSLKEYS="/etc/ssl/private"
828 alpine_SSLDIR="/usr/ssl"
829 alpine_SSLCERTS="$alpine_SSLDIR/certs"
830 alpine_SSLKEYS="$alpine_SSLDIR/certs"
831 alpine_SSLINCLUDE="/usr/include/openssl"
832 alpine_SSLLIB="/usr/lib"
834 *-sco-sysv* | *-sysv*UnixWare | *-sysv*OpenUNIX)
835 alpine_SSLTYPE="sco.nopwd"
836 alpine_SSLDIR="/usr/local/ssl"
839 if test -d /usr/sfw/include/openssl ; then
840 alpine_SSLDIR="/usr/sfw"
841 elif test -d /opt/csw/include/openssl ; then
842 alpine_SSLDIR="/opt/csw"
843 if test -d /opt/csw/ssl/certs ; then
844 alpine_SSLCERTS="/opt/csw/ssl/certs"
847 if test -z "$alpine_SSLCERTS" -a -d /etc/certs ; then
848 alpine_SSLCERTS="/etc/certs"
852 alpine_SSLTYPE="nopwd"
853 alpine_SSLDIR="/usr/local/ssl"
858 AS_HELP_STRING([--with-ssl-dir=DIR],[Root of SSL lib/include path]),
860 if test "x$withval" != "xno" ; then
861 alpine_SSLDIR=$withval
862 alpine_SSLINCLUDE=$alpine_SSLDIR/include
863 alpine_SSLLIB=$alpine_SSLDIR/lib
867 AC_ARG_WITH(ssl-certs-dir,
868 AS_HELP_STRING([--with-ssl-certs-dir=DIR],[Path to SSL certificate directory]),
870 if test "x$withval" != "xno" ; then
871 alpine_SSLCERTS=$withval
875 AC_ARG_WITH(ssl-include-dir,
876 AS_HELP_STRING([--with-ssl-include-dir=DIR],[SSL include file path]),
878 if test "x$withval" != "xno" ; then
879 alpine_SSLINCLUDE=$withval
883 AC_ARG_WITH(ssl-lib-dir,
884 AS_HELP_STRING([--with-ssl-lib-dir=DIR],[SSL library path]),
886 if test "x$withval" != "xno" ; then
887 alpine_SSLLIB=$withval
890 dnl setup globals so tests below work
891 if test -n "$alpine_SSLINCLUDE" ; then
892 CPPFLAGS="-I$alpine_SSLINCLUDE $CPPFLAGS"
893 elif test -n "$alpine_SSLDIR" ; then
894 CPPFLAGS="-I${alpine_SSLDIR}/include $CPPFLAGS"
896 if test -n "$alpine_SSLLIB" ; then
897 LDFLAGS="-L$alpine_SSLLIB $LDFLAGS"
898 elif test -n "$alpine_SSLDIR" ; then
899 LDFLAGS="-L${alpine_SSLDIR}/lib $LDFLAGS"
903 dnl Include Kerberos?
904 dnl Set GSSDIR for c-client make
906 AS_HELP_STRING([--without-krb5],[Disable Kerberos support]),
907 [ with_krb5=$withval ])
909 if test "x$with_krb5" = "xno" ; then
910 alpine_GSSTYPE="none"
914 AC_ARG_WITH(krb5-dir,
915 AS_HELP_STRING([--with-krb5-dir=DIR],[Root of Kerberos lib/include path]),
917 if test "x$withval" != "xno" ; then
918 CPPFLAGS="$CPPFLAGS -I${withval}/include"
919 LDFLAGS="$LDFLAGS -L${withval}/lib"
923 AC_ARG_WITH(krb5-include-dir,
924 AS_HELP_STRING([--with-krb5-include-dir=DIR],[Kerberos include file path]),
926 if test "x$withval" != "xno" ; then
927 CPPFLAGS="$CPPFLAGS -I$withval"
931 AC_ARG_WITH(krb5-lib-dir,
932 AS_HELP_STRING([--with-krb5-lib-dir=DIR],[Kerberos library path]),
934 if test "x$withval" != "xno" ; then
935 LDFLAGS="$LDFLAGS -L$withval"
942 AS_HELP_STRING([--without-ldap],[Disable LDAP query support]),
943 [ with_ldap=$withval ])
945 if test "x$with_ldap" = "xno" ; then
947 AC_MSG_NOTICE([Excluding LDAP Support])
949 dnl Do stuff to figure out where OpenLDAP is
952 AC_ARG_WITH(ldap-dir,
953 AS_HELP_STRING([--with-ldap-dir=DIR],[Root of LDAP lib/include path]),
955 if test "x$withval" != "xno" ; then
956 CPPFLAGS="$CPPFLAGS -I${withval}/include"
957 LDFLAGS="$LDFLAGS -L${withval}/lib"
961 AC_ARG_WITH(ldap-include-dir,
962 AS_HELP_STRING([--with-ldap-include-dir=DIR],[Directory containing LDAP include files]),
964 if test "x$withval" != "xno" ; then
965 CPPFLAGS="$CPPFLAGS -I$withval"
969 AC_ARG_WITH(ldap-lib-dir,
970 AS_HELP_STRING([--with-ldap-lib-dir=DIR],[LDAP library path]),
972 if test "x$withval" != "xno" ; then
973 LDFLAGS="$LDFLAGS -L$withval"
980 AS_HELP_STRING([--without-smime],[Disable S/MIME]),
981 [ with_smime=$withval ])
985 AS_HELP_STRING([--without-tcl],[Disable TCL, thus Web Alpine support]),
986 [ with_tcl=$withval ])
988 if test "x$with_tcl" = "xno" ; then
990 AC_MSG_NOTICE([Excluding TCL Support, and thus Web Alpine Support])
993 AS_HELP_STRING([--with-tcl-lib=LIBRARY],[Specific TCL Library, like \"tcl8.6\"]),
995 if test "x$withval" != "xno" ; then
996 alpine_TCLLIB=$withval
999 AC_ARG_WITH(tcl-include,
1000 AS_HELP_STRING([--with-tcl-include=DIR],[Directory containing TCL include files]),
1002 if test "x$withval" != "xno" ; then
1003 CPPFLAGS="$CPPFLAGS -I$withval"
1004 alpine_TCLINC=$withval
1009 AC_ARG_WITH(supplied-regex,
1010 AS_HELP_STRING([--with-supplied-regex],[Use regex library supplied with alpine]),
1011 [ alpine_REGEX=$withval ])
1013 AC_ARG_WITH(pthread,
1014 AS_HELP_STRING([--without-pthread],[Do NOT test for nor build with POSIX thread support]),
1015 [ with_pthread=$withval ])
1017 AC_ARG_WITH(system-mail-directory,
1018 AS_HELP_STRING([--with-system-mail-directory=DIR],[Directory where local mail is delivered]),
1020 if test "x$withval" != "xno" ; then
1021 alpine_with_local_maildir="$withval"
1025 AC_ARG_WITH(c-client-target,
1026 AS_HELP_STRING([--with-c-client-target=TARGET],[IMAP build target (see imap/Makefile)]),
1028 if test "x$withval" != "xno" ;then
1029 alpine_with_c_client_target="$withval"
1034 dnl Assume PAM is *not* required and only set the systems that need it.
1037 dnl HOST-OS SPECIFIC DEFINITIONS
1038 dnl Tests and assignments below are mostly to coax the appropriate
1039 dnl build from c-client. Most of this will go away when c-client
1040 dnl adopts configure
1042 *-linux-gnu*|*-k*bsd*-gnu*)
1043 alpine_path_delim="/"
1044 alpine_mode_readonly="(0600)"
1045 if test -f /etc/fedora-release ; then
1048 if test -d /etc/pki/tls ; then
1049 alpine_c_client_target="lfd"
1051 alpine_c_client_target="lrh"
1053 elif test -f /etc/mandrake-release ; then
1055 alpine_c_client_target="lmd"
1057 elif test -f /etc/redhat-release -o -f /etc/redhat_version ; then
1060 if test -d /etc/pki/tls ; then
1061 alpine_c_client_target="lr5"
1063 alpine_c_client_target="lrh"
1065 elif test -f /etc/debian_release -o -f /etc/debian_version ; then
1066 if test -d /etc/osso-af-init ; then
1068 alpine_c_client_target="ln8"
1071 alpine_c_client_target="ldb"
1074 elif test -f /etc/SuSE-release ; then
1076 alpine_c_client_target="lsu"
1080 AC_CHECK_LIB(pam, pam_start,
1082 alpine_c_client_target="lnp"
1086 if test -f /etc/shadow ; then
1087 alpine_c_client_target="slx"
1089 alpine_c_client_target="lnx"
1096 alpine_path_delim="/"
1097 alpine_mode_readonly="(0600)"
1098 LIBS="$LIBS -framework Carbon -framework ApplicationServices -framework Security"
1099 AM_CFLAGS="$AM_CFLAGS -Dbsd"
1100 dnl SEE include/system.h
1101 AC_DEFINE([OSX_TARGET],[1],[OSX TARGET])
1102 case "$alpine_os_credential_cache" in
1106 AC_DEFINE([APPLEKEYCHAIN], [1], [Use Apple OS X key chain for credential caching])
1109 AC_CHECK_LIB(pam, pam_start,
1111 AC_CHECK_HEADER([security/pam_appl.h],
1114 alpine_c_client_target="oxs"
1116 [ AC_CHECK_HEADER([pam/pam_appl.h],
1119 alpine_c_client_target="oxp"
1123 alpine_pam_none_reason="header files not found"
1128 alpine_c_client_target="osx"
1132 if test x$GCC = "xyes" ; then
1134 alpine_c_client_target="gso"
1137 alpine_c_client_target="soc"
1138 AC_DEFINE([__EXTENSIONS__], [1], [Enable extended pthread features on Solaris])
1140 alpine_path_delim="/"
1141 alpine_mode_readonly="(0600)"
1142 dnl possible other OS's need this.
1143 dnl Use autoconf 2.61's AC_USE_SYSTEM_EXTENSIONS at some point
1147 alpine_path_delim="/"
1148 alpine_mode_readonly="(0600)"
1149 alpine_c_client_target="s40"
1152 if test x$GCC = "xyes" ; then
1154 alpine_c_client_target="go5"
1157 alpine_c_client_target="sc5"
1159 alpine_path_delim="/"
1160 alpine_mode_readonly="(0600)"
1161 dnl possible other OS's need this.
1162 dnl Use autoconf 2.61's AC_USE_SYSTEM_EXTENSIONS at some point
1166 alpine_path_delim="/"
1167 alpine_mode_readonly="(0600)"
1168 alpine_c_client_target="nx3"
1172 alpine_path_delim="/"
1173 alpine_mode_readonly="(0600)"
1174 alpine_c_client_target="neb"
1178 alpine_path_delim="/"
1179 alpine_mode_readonly="(0600)"
1180 alpine_c_client_target="neb"
1184 alpine_path_delim="/"
1185 alpine_mode_readonly="(0600)"
1186 alpine_c_client_target="bsi"
1190 alpine_path_delim="/"
1191 alpine_mode_readonly="(0600)"
1192 alpine_c_client_target="bsf"
1193 LIBS="$LIBS $LIBINTL"
1197 alpine_path_delim="/"
1198 alpine_mode_readonly="(0600)"
1199 alpine_c_client_target="bso"
1200 LIBS="$LIBS $LIBINTL"
1204 alpine_path_delim="/"
1205 alpine_mode_readonly="(0600)"
1206 alpine_c_client_target="a52"
1210 alpine_path_delim="/"
1211 alpine_mode_readonly="(0600)"
1212 alpine_c_client_target="a41"
1216 alpine_path_delim="/"
1217 alpine_mode_readonly="(0600)"
1218 alpine_c_client_target="a32"
1220 *-*UNIX_SV | *-*-sysv5UnixWare7* | *-*OpenUNIX*)
1222 alpine_path_delim="/"
1223 alpine_mode_readonly="(0600)"
1224 alpine_c_client_target="uw2"
1228 alpine_path_delim="/"
1229 alpine_mode_readonly="(0600)"
1230 alpine_c_client_target="osf"
1234 alpine_path_delim="/"
1235 alpine_mode_readonly="(S_IREAD | S_IWRITE)"
1236 alpine_c_client_target="cyg"
1237 LIBS="$LIBS $LIBINTL"
1239 windows* | *-*-pw32*)
1241 alpine_path_delim="\\"
1242 alpine_mode_readonly="(S_IREAD | S_IWRITE)"
1243 alpine_c_client_target="wnt"
1244 AC_DEFINE([_WINDOWS], [1], [Windows is just too different])
1247 AC_MSG_ERROR(Unrecognized system: $host)
1253 AS_HELP_STRING([--without-ipv6],[Disable IPv6, primarily to work around resolver problems]),
1254 [ with_ipv6=$withval ])
1256 if test "x$with_ipv6" = "xno" ; then
1257 AC_MSG_NOTICE([Excluding IPv6 Support])
1258 c_client_specials="${c_client_specials}IP6=4 "
1261 c_client_ip6="touch imap/ip6"
1267 if test x$enable_dmalloc = "xyes" ; then
1268 if test "x$with_pthread" = "xyes" ; then
1269 dmalloc_lib=dmallocth
1274 AC_CHECK_LIB($dmalloc_lib,dmalloc_shutdown,,
1276 AC_MSG_ERROR($dmalloc_lib requested, but -ldmalloc not found)
1280 dnl which terminal cabability database
1281 AC_CHECK_LIB(tinfo, setupterm,
1283 alpine_termdata=info
1284 LIBS="$LIBS -ltinfo"
1287 AC_CHECK_LIB(ncurses, setupterm,
1289 alpine_termdata=info
1290 LIBS="$LIBS -lncurses"
1293 AC_CHECK_LIB(curses, setupterm,
1295 alpine_termdata=info
1296 LIBS="$LIBS -lcurses"
1299 AC_CHECK_LIB(termlib, tgetent,
1302 LIBS="$LIBS -ltermlib"
1305 AC_CHECK_LIB(termcap, tgetent,
1308 LIBS="$LIBS -ltermcap"
1311 AC_MSG_ERROR(Terminfo/termcap not found)
1317 case $alpine_termdata in
1319 AC_DEFINE(HAS_TERMINFO, [1], [Define if systems uses terminfo terminal database])
1322 AC_DEFINE(HAS_TERMCAP, [1], [Define if systems uses termcap terminal database])
1326 dnl is -ldl present? if so, add it
1327 AC_SEARCH_LIBS([dlopen], [dl dld],, [ alpine_DL="none" ])
1328 if test "x$alpine_DL" = "xnone" ; then
1329 AC_MSG_ERROR([No library containing dlopen found])
1333 dnl Crypto support is needed
1334 if test "x$alpine_SSLTYPE" != "xnone" ; then
1335 AC_SEARCH_LIBS(SSLeay,crypto,, [ alpine_CRYPTO="none" ])
1336 if test "x$alpine_CRYPTO" = "xnone" ; then
1337 AC_MSG_ERROR(crypto library NOT found)
1342 dnl provide SSL support?
1343 if test "x$alpine_SSLTYPE" != "xnone" ; then
1344 AC_SEARCH_LIBS(SSL_library_init,ssl,,[ alpine_SSLTYPE="none" ])
1346 if test "x$alpine_SSLTYPE" = "xnone" ; then
1347 AC_MSG_ERROR(No library containing SSL_library_init found in your path)
1351 AC_MSG_CHECKING([Openssl library version >= 1.0.0c])
1356 #include <openssl/ssl.h>
1359 if (OPENSSL_VERSION_NUMBER >= 0x1000003f)
1365 [ AC_MSG_RESULT(yes) ],
1366 [ alpine_SSLTYPE="none" ])
1368 if test "x$alpine_SSLTYPE" = "xnone" ; then
1369 AC_MSG_ERROR(Install openssl version >= 1.0.0c)
1372 AC_SEARCH_LIBS(TLSv1_2_client_method,ssl,
1373 [ alpine_c_client_cflags="$alpine_c_client_cflags -DTLSV1_2"
1374 AC_DEFINE([SSL_SUPPORTS_TLSV1_2], [1], [SSL Supports TLSV1.2])
1378 dnl provide LDAP support?
1379 if test "$alpine_with_ldap" = "yes" ; then
1381 AC_CHECK_LIB(lber, ber_alloc,
1385 AC_SEARCH_LIBS(ldap_init,ldap,
1390 AC_SEARCH_LIBS(ldap_open,ldap,
1396 if test "$alpine_has_ldap" = "yes" ; then
1397 AC_MSG_NOTICE([* * * Including LDAP Support])
1398 AC_DEFINE([ENABLE_LDAP], [], [Enable LDAP query support])
1400 dnl we use deprecated functions (ldap_get_values)
1401 dnl OpenLDAP 2.3.x doesn't define LDAP_DEPRECATED by default like 2.2.x
1402 AC_MSG_CHECKING([if we should define LDAP_DEPRECATED])
1410 if (LDAP_VENDOR_VERSION >= 20300)
1418 AC_DEFINE(LDAP_DEPRECATED, 1,
1419 [Define if you use OpenLDAP 2.3.x deprecated functions])
1426 AC_MSG_WARN([cross compiling: not checking])
1431 AC_MSG_NOTICE([Cannot find LDAP functions! Excluding LDAP support.])
1435 dnl PAM support is needed to build c-client in some linux, and hence Alpine.
1436 if test "x$alpine_PAM" != "xnone" ; then
1437 AC_SEARCH_LIBS(pam_start,pam,
1440 AC_CHECK_HEADER([security/pam_appl.h],
1444 dnl Only mac is incompatible, do not spread bad habits.
1445 [ AC_CHECK_HEADER([pam/pam_appl.h],
1448 if test "x$alpine_c_client_target" != "xoxp" ; then
1450 alpine_pam_none_reason="header files not in security/ directory"
1455 alpine_pam_none_reason="header files not found"
1461 alpine_pam_none_reason="library files not found"
1463 if test -n "$alpine_pam_none_reason" ; then
1464 AC_MSG_ERROR(No PAM support: $alpine_pam_none_reason)
1469 dnl provide KRB5 support?
1470 if test "x$alpine_GSSTYPE" != "xnone" ; then
1471 AC_SEARCH_LIBS(gss_init_sec_context,gss gssapi gssapi_krb5,
1475 AC_CHECK_HEADER([gssapi/gssapi_generic.h],,
1477 if test ! -d /usr/kerberos/include ; then
1478 alpine_GSSTYPE="none"
1479 alpine_gss_none_reason="header files not found"
1484 alpine_GSSTYPE="none"
1485 alpine_gss_none_reason="libraries not found"
1487 if test -n "$alpine_gss_none_reason" ; then
1488 AC_MSG_NOTICE([NOT including Kerberos Support: $alpine_gss_none_reason])
1492 dnl check for tcl libraries for Web Alpine (HACKY)
1493 if test -n "$WEB_BUILD" ; then
1494 TCL_VERSIONS_DOT="tcl8.6 tcl8.5 tcl8.4 tcl8.3"
1495 TCL_VERSIONS_NODOT="`echo ${TCL_VERSIONS_DOT} | ${SED} 's/\.//g'`"
1496 TCL_VERSIONS="${TCL_VERSIONS_DOT} ${TCL_VERSIONS_NODOT} tcl"
1497 AC_SEARCH_LIBS([Tcl_Eval],[$alpine_TCLLIB ${TCL_VERSIONS}],,
1502 dnl look for header file
1503 if test -n "$alpine_TCLINC" ; then
1504 AC_CHECK_HEADER($alpine_TCLINC/tcl.h,,
1508 if test -z "$WEB_BUILD" ; then
1509 AC_MSG_NOTICE([Tcl Include file NOT found])
1512 AC_CHECK_HEADER(tcl.h,,
1514 for base in /usr /usr/local ; do
1515 for dir in ${TCL_VERSIONS} ; do
1516 AC_CHECK_FILE([$base/include/$dir/tcl.h],
1520 if test "$found" = "yes" ; then
1521 CPPFLAGS="$CPPFLAGS -I$base/include/$dir"
1525 if test "$found" = "yes" ; then
1529 if test "$found" != "yes" ; then
1531 AC_MSG_NOTICE([header file tcl.h NOT found: Web Alpine will not be built])
1537 dnl Local or supplied regex?
1538 if test "x$alpine_REGEX" != "xyes" ; then
1539 AC_SEARCH_LIBS([regcomp],posix regexp regex re,,
1541 if test x$alpine_REGEX = "xno" ; then
1542 AC_MSG_ERROR(Unable to find system regex library)
1548 if test "x$alpine_REGEX" != "xyes" ; then
1549 AC_CHECK_HEADER([regex.h],,
1551 if test x$alpine_REGEX = "xno" ; then
1552 AC_MSG_ERROR(Unable to find system regex include file)
1558 AC_DEFINE(HAVE_REGEX_H,1,[Regular expression header file exists])
1559 if test "x$alpine_REGEX" = "xyes" ; then
1560 CPPFLAGS="$CPPFLAGS -I${top_builddir}/regex"
1561 LDFLAGS="$LDFLAGS -L${top_builddir}/regex"
1563 REGEX_MAKEFILE="$REGEX_BUILD/Makefile"
1566 if test "x$with_pthread" != "xno" ; then
1567 AC_MSG_CHECKING([for pthread support])
1570 AC_MSG_RESULT([yes])
1573 AC_MSG_NOTICE([WARNING: pthread support on OpenBSD is unstable!])
1574 AM_CFLAGS="$AM_CFLAGS -pthread"
1577 LIBS="$PTHREAD_LIBS $LIBS"
1578 AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS"
1580 AC_DEFINE([HAVE_PTHREAD], [1], [System has pthread support])
1586 AC_SEARCH_LIBS([nanosleep], [rt posix4],
1588 AC_DEFINE([HAVE_NANOSLEEP], [1], [Define if system supports subsecond, non-alarm sleep])
1601 AC_HEADER_TIOCGWINSZ
1603 AC_CHECK_HEADERS([unistd.h])
1605 AC_CHECK_HEADERS([errno.h \
1630 dnl terminal line discipline?
1631 AC_CHECK_HEADER([termios.h],
1632 AC_DEFINE(HAS_TERMIOS, [1], [Define if systems uses termios terminal control]),
1634 AC_CHECK_HEADER([termio.h],
1635 AC_DEFINE(HAS_TERMIO, [1], [Define if systems uses termio terminal control]),
1637 AC_CHECK_HEADER([sgtty.h],
1638 AC_DEFINE(HAS_SGTTY, [1], [Define if systems uses old BSD-style terminal control]),
1640 AC_MSG_ERROR(Unable to figure out terminal control method)
1648 AC_DIAGNOSE([obsolete],[your code may safely assume C89 semantics that RETSIGTYPE is void.
1649 Remove this warning and the `AC_CACHE_CHECK' when you adjust the code.])dnl
1650 AC_CACHE_CHECK([return type of signal handlers],[ac_cv_type_signal],[AC_COMPILE_IFELSE(
1651 [AC_LANG_PROGRAM([#include <sys/types.h>
1654 [return *(signal (0, 0)) (0) == 1;])],
1655 [ac_cv_type_signal=int],
1656 [ac_cv_type_signal=void])])
1657 AC_DEFINE_UNQUOTED([RETSIGTYPE],[$ac_cv_type_signal],[Define as the return type of signal handlers
1658 (`int' or `void').])
1666 AC_CHECK_TYPES([union wait])
1668 AC_CHECK_HEADERS([stdint.h], [uint16=uint16_t], [
1669 AC_CHECK_HEADERS([inttypes.h], [uint16=uint16_t], [
1670 AC_CHECK_HEADERS([sys/types.h], [uint16=u_int16_t], [
1671 AC_CHECK_SIZEOF(unsigned short)
1672 if test $ac_cv_sizeof_unsigned_short -eq 2 ; then
1673 uint16="unsigned short"
1675 AC_CHECK_SIZEOF(unsigned int)
1676 if $ac_cv_sizeof_unsigned_int -eq 2 ; then
1677 uint16="unsigned int"
1679 AC_MSG_ERROR(Unable to determine 16 bit integer type)
1685 AC_DEFINE_UNQUOTED([UINT16], $uint16, [System defined unsigned 16 bit integer])
1687 AC_CHECK_HEADERS([stdint.h], [uint32=uint32_t], [
1688 AC_CHECK_HEADERS([inttypes.h], [uint32=uint32_t], [
1689 AC_CHECK_HEADERS([sys/types.h], [uint32=u_int32_t], [
1690 AC_CHECK_SIZEOF(unsigned int)
1691 if test $ac_cv_sizeof_unsigned_int -eq 4 ; then
1692 uint32="unsigned int"
1694 AC_CHECK_SIZEOF(unsigned long)
1695 if $ac_cv_sizeof_unsigned_long -eq 4 ; then
1696 uint32="unsigned long"
1698 AC_MSG_ERROR(Unable to determine 32 bit integer type)
1704 AC_DEFINE_UNQUOTED([UINT32], $uint32, [System defined unsigned 32 bit integer])
1706 AC_CACHE_CHECK(argument pointer type of qsort compare function and base,
1707 ac_cv_func_qsort_argtype,
1708 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1714 extern sortf(const void *, const void *);
1717 const void *b; { return 0; }
1719 qsort(base, 2, sizeof(char *), sortf);
1720 ]])],[ac_cv_func_qsort_argtype=void],[ac_cv_func_qsort_argtype=char])
1722 AC_DEFINE_UNQUOTED([qsort_t], $ac_cv_func_qsort_argtype, [qsort compare function argument type])
1724 dnl check for "struct passwd" ?
1726 AC_FUNC_SELECT_ARGTYPES
1730 dnl CHECK FOR LIBRARY FUNCTIONS
1733 AC_CHECK_FUNCS([strchr \
1766 AC_SEARCH_LIBS([gethostname],[nsl])
1768 AC_SEARCH_LIBS([socket],[socket],,
1773 AC_SEARCH_LIBS([bind],[bind],,
1778 dnl check for POSIX signal interface
1779 AC_CHECK_FUNCS([sigaction sigemptyset sigaddset sigprocmask],
1781 AC_DEFINE([POSIX_SIGNALS], [], [Define if system supports POSIX signal interface])
1784 AC_CHECK_FUNCS([sigset sigrelse],
1786 AC_DEFINE([SYSV_SIGNALS], [], [Define if system supports SYSV signal interface])
1790 AC_SEARCH_LIBS([syslog], [bsd socket inet],
1792 AC_DEFINE([HAVE_SYSLOG], [1], [Define if system supplies syslog() logging])
1796 dnl set pico newmail check directory
1797 if test -n "$alpine_with_local_maildir" ; then
1798 alpine_local_maildir=$alpine_with_local_maildir
1799 elif test -d /var/spool/mail ; then
1800 alpine_local_maildir="/var/spool/mail"
1801 elif test -d /var/mail ; then
1802 alpine_local_maildir="/var/mail"
1804 alpine_local_maildir="/usr/spool/mail"
1807 dnl set c-client make target
1808 if test -n "$alpine_with_c_client_target" ; then
1809 alpine_c_client_target=$alpine_with_c_client_target
1812 AC_DEFINE_UNQUOTED([SYSTYPE], "$systype", [Pine-Centric Host Specifier])
1813 AC_DEFINE_UNQUOTED([C_FILESEP],'$alpine_path_delim',[File name separator as character constant])
1814 AC_DEFINE_UNQUOTED([S_FILESEP],"$alpine_path_delim",[File name separator as string constant])
1815 AC_DEFINE_UNQUOTED([MAILDIR],"$alpine_local_maildir",[Path to local inboxes for pico newmail check])
1816 AC_DEFINE_UNQUOTED([MODE_READONLY], $alpine_mode_readonly, [File mode used to set readonly access])
1818 dnl c-client make particulars
1819 AC_SUBST([C_CLIENT_TARGET], $alpine_c_client_target)
1820 AC_SUBST([C_CLIENT_WITH_IPV6], $c_client_ip6)
1821 if test "x$alpine_SSLTYPE" = "xnone" ; then
1822 AC_MSG_NOTICE([* * * NOT Including SSL Support])
1823 c_client_specials="${c_client_specials}SSLTYPE=none "
1825 dnl issue any warnings for common OpenSSL issues
1827 if test -n "$alpine_SSLCERTS" -a -d "$alpine_SSLCERTS" ; then
1828 certdir="$alpine_SSLCERTS"
1829 elif test -n "$alpine_SSLDIR" -a -d "${alpine_SSLDIR}/certs" ; then
1830 certdir="${alpine_SSLDIR}/certs"
1831 elif test -n "$alpine_SSLDIR" -a -d "${alpine_SSLDIR}/ssl/certs" ; then
1832 certdir="${alpine_SSLDIR}/ssl/certs"
1833 elif test -n "$alpine_SSLCERTS_ORIG" -a -d "$alpine_SSLCERTS_ORIG" ; then
1834 certdir="$alpine_SSLCERTS_ORIG"
1836 AC_MSG_NOTICE([SSL Problem: certificate directory not found])
1839 if test "x$with_smime" != "xno" ; then
1840 if test -n "$certdir" ; then
1841 AC_MSG_NOTICE([* * * S/MIME support enabled])
1842 AC_DEFINE([SMIME], [], [Enable S/MIME code])
1843 AC_DEFINE_UNQUOTED([SMIME_SSLCERTS],"$certdir",[Directory where S/MIME CACerts are located])
1847 if test ! -f ${certdir}/factory.pem ; then
1848 AC_MSG_NOTICE([* * * SSL file "${certdir}/factory.pem" is missing.])
1849 AC_MSG_NOTICE([* * * This might indicate that CA certs did not get properly])
1850 AC_MSG_NOTICE([* * * installed. If you get certificate validation failures])
1851 AC_MSG_NOTICE([* * * in Alpine, this might be the reason for them.])
1854 if test -z "`ls ${certdir} | $EGREP '^@<:@0-9A-Fa-f@:>@{8}\.@<:@0-9@:>@'`" ; then
1855 AC_MSG_NOTICE([* * * No 8-hexdigit symlinks in certificate directory "${certdir}".])
1856 AC_MSG_NOTICE([* * * This might indicate that CA certs did not get properly])
1857 AC_MSG_NOTICE([* * * installed. If you get certificate validation failures])
1858 AC_MSG_NOTICE([* * * in Alpine, this might be the reason for them.])
1861 if test -n "$alpine_SSLINCLUDE" ; then
1862 c_client_specials="${c_client_specials}SSLINCLUDE=$alpine_SSLINCLUDE "
1865 if test -n "$alpine_SSLLIB" ; then
1866 c_client_specials="${c_client_specials}SSLLIB=$alpine_SSLLIB "
1869 if test -n "$alpine_SSLDIR" ; then
1870 c_client_specials="${c_client_specials}SSLDIR=$alpine_SSLDIR "
1873 if test -n "$certdir" ; then
1874 c_client_specials="${c_client_specials}SSLCERTS=$certdir "
1877 if test -n "$alpine_SSLKEYS" ; then
1878 c_client_specials="${c_client_specials}SSLKEYS=$alpine_SSLKEYS "
1882 if test "x$alpine_GSSTYPE" != "xnone" ; then
1883 c_client_specials="${c_client_specials}EXTRAAUTHENTICATORS=gss "
1884 AC_MSG_NOTICE([* * * Including Kerberos5 functionality])
1887 if test -n "$CPPFLAGS" ; then
1888 alpine_c_client_cflags="$alpine_c_client_cflags ${CPPFLAGS}"
1890 if test -n "$CFLAGS" ; then
1891 alpine_c_client_cflags="$alpine_c_client_cflags ${CFLAGS}"
1894 if test -n "$alpine_c_client_cflags" ; then
1895 AC_SUBST(C_CLIENT_CFLAGS, EXTRACFLAGS=\"$alpine_c_client_cflags\")
1898 if test -n "$LDFLAGS" ; then
1899 alpine_c_client_ldflags="$alpine_c_client_ldflags ${LDFLAGS}"
1901 if test -n "$LIBS" ; then
1902 alpine_c_client_ldflags="$alpine_c_client_ldflags ${LIBS}"
1905 if test -n "$alpine_c_client_ldflags" ; then
1906 AC_SUBST(C_CLIENT_LDFLAGS, EXTRALDFLAGS=\"$alpine_c_client_ldflags\")
1909 if test -n "$alpine_c_client_gccoptlevel" ; then
1910 AC_SUBST(C_CLIENT_GCCOPTLEVEL, GCCOPTLEVEL=\"$alpine_c_client_gccoptlevel\")
1913 AC_SUBST([C_CLIENT_SPECIALS], $c_client_specials)
1915 dnl Deal with Web Alpine
1916 if test -z "$WEB_BUILD" ; then
1917 WEB_PUBCOOKIE_BUILD=
1918 AC_MSG_NOTICE([* * * TCL libraries could not be found.])
1919 AC_MSG_NOTICE([* * * WEB ALPINE COMPONENT WILL NOT BE BUILT.])
1921 if test -n "$WEB_PUBCOOKIE_BUILD" ; then
1922 if test "x$alpine_GSSTYPE" = "xnone" ; then
1923 WEB_PUBCOOKIE_BUILD=
1924 AC_MSG_NOTICE([* * * Kerberos5 support not found.])
1925 AC_MSG_NOTICE([* * * WEB ALPINE PUBCOOKIE COMPONENT WILL NOT BE BUILT.])
1926 elif test -z "$WEB_BINDIR" ; then
1927 WEB_PUBCOOKIE_BUILD=
1928 AC_MSG_NOTICE([* * * Web Alpine binary directory not provided.])
1929 AC_MSG_ERROR([* * * --with-pubcookie requires --with-web-bin=PATH.
1930 Please re-run configure with these options:
1931 --with-pubcookie --with-web-bin=/usr/local/libexec/alpine/bin])
1933 AC_DEFINE([PUBCOOKIE],[1],[Include support for UW Pubcookie Web Authentication])
1934 WEB_PUBCOOKIE_LIB=../pubcookie/libauthgssproxy.a
1935 WEB_PUBCOOKIE_LINK=gssapi_proxy.l
1940 AC_SUBST([REGEX_BUILD])
1942 AC_SUBST([WEB_BUILD])
1943 AC_SUBST([WEB_BINDIR])
1944 AC_SUBST([WEB_PUBCOOKIE_BUILD])
1945 AC_SUBST([WEB_PUBCOOKIE_LIB])
1946 AC_SUBST([WEB_PUBCOOKIE_LINK])
1948 AC_SUBST([AM_CFLAGS])
1949 AC_SUBST([AM_LDFLAGS])
1951 AC_CONFIG_FILES([m4/Makefile po/Makefile.in $REGEX_MAKEFILE \
1952 pith/osdep/Makefile pith/charconv/Makefile pith/Makefile \
1953 pico/osdep/Makefile pico/Makefile \
1954 alpine/osdep/Makefile alpine/Makefile \
1955 web/src/Makefile web/src/pubcookie/Makefile \
1956 web/src/alpined.d/Makefile \