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:14 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])
634 AC_DEFINE_UNQUOTED([DF_PUBLIC_CONTAINER], "PublicContainer", [Name of default public container])
635 AC_DEFINE_UNQUOTED([DF_PRIVATE_CONTAINER], "PrivateContainer", [Name of default private container])
636 AC_DEFINE_UNQUOTED([DF_CA_CONTAINER], "CAContainer", [Name of default certificate authority container])
639 AC_ARG_WITH(passfile,
640 AS_HELP_STRING([--with-passfile=FILENAME],[Password cache file (recommended when S/MIME is enabled and configured)]),
648 alpine_PASSFILE=$withval
654 dnl os-specific credential cache?
655 AC_ARG_WITH(local-password-cache,
656 AS_HELP_STRING([--without-local-password-cache],[Disable OS-specific password cache, if supported]),
658 alpine_os_credential_cache=$withval
661 dnl Particular os-specific credential cache?
662 AC_ARG_WITH(local-password-cache-method,
663 AS_HELP_STRING([--with-local-password-cache-method],[OS-specific credential cache (OSX=APPLEKEYCHAIN, Windows=WINCRED)]),
665 alpine_os_credential_cache_method=$withval
668 if test -n "$alpine_PASSFILE" ; then
669 case $alpine_os_credential_cache in
673 alpine_os_credential_cache="no"
674 AC_MSG_NOTICE([--with-passfile definition overrides OS-Specific password caching])
677 AC_DEFINE_UNQUOTED([PASSFILE], "$alpine_PASSFILE", [Password cache file (recommended if S/MIME is enabled and configured)])
681 AC_ARG_WITH(default-sshpath,
682 AS_HELP_STRING([--with-default-sshpath=FILENAME],[set default value of ssh command path (defining should cause ssh to be preferred to rsh)]),
690 AC_DEFINE_UNQUOTED([DF_SSHPATH], "$withval", [set default value of ssh command path (defining should cause ssh to be preferred to rsh)])
696 AC_ARG_WITH(default-sshcmd,
697 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")]),
705 AC_DEFINE_UNQUOTED([DF_SSHCMD], "$withval", [set default value of ssh command string (usually "%s %s -l %s exec /etc/r%sd")])
711 dnl Set SSLDIR for c-client make
713 AS_HELP_STRING([--without-ssl],[Disable SSL support (OpenSSL)]),
714 [ with_ssl=$withval ])
716 if test "x$with_ssl" = "xno" ; then
717 alpine_SSLTYPE="none"
719 dnl preload c-client default locations/options
722 if test -f /etc/fedora-release -o -f /etc/redhat-release -o -f /etc/redhat_version ; then
723 alpine_SSLTYPE="nopwd"
724 if test -d /etc/pki/tls ; then
725 alpine_SSLDIR="/etc/pki/tls"
727 alpine_SSLDIR="/usr/share/ssl"
729 alpine_SSLCERTS="$alpine_SSLDIR/certs"
730 alpine_SSLKEYS="$alpine_SSLDIR/private"
731 alpine_SSLINCLUDE="/usr/include/openssl"
732 alpine_SSLLIB="/usr/lib"
733 elif test -f /etc/mandrake-release ; then
734 alpine_SSLDIR="/usr/lib/ssl"
735 alpine_SSLCERTS="$alpine_SSLDIR/certs"
736 alpine_SSLKEYS="$alpine_SSLDIR/private"
737 alpine_SSLINCLUDE="/usr/include/openssl"
738 alpine_SSLLIB="/usr/lib"
739 elif test -f /etc/SuSE-release ; then
740 alpine_SSLTYPE="nopwd"
741 alpine_SSLDIR="/etc/ssl"
742 alpine_SSLCERTS="$alpine_SSLDIR/certs"
743 alpine_SSLKEYS="$alpine_SSLDIR/private"
744 alpine_SSLINCLUDE="/usr/include/openssl"
745 alpine_SSLLIB="/usr/lib"
746 elif test -d /etc/osso-af-init ; then
747 alpine_SSLTYPE="nopwd"
749 alpine_SSLCERTS="/usr/share/certs"
750 alpine_SSLINCLUDE="/usr/include/openssl"
751 alpine_SSLLIB="/usr/lib"
752 elif test -f /etc/debian_release -o -f /etc/debian_version ; then
753 if test ! -d /etc/osso-af-init ; then
754 alpine_SSLDIR="/etc/ssl"
755 alpine_SSLCERTS="$alpine_SSLDIR/certs"
756 alpine_SSLKEYS="$alpine_SSLDIR/private"
757 alpine_SSLINCLUDE="/usr/include/openssl"
758 alpine_SSLLIB="/usr/lib"
761 alpine_SSLTYPE="nopwd"
763 alpine_SSLCERTS="/etc/ssl/certs"
767 alpine_SSLTYPE="nopwd"
768 dnl Originally this is where certs are, and they might still be there, even
769 dnl after installing Homebrew, MacPorts or Fink. We will use it if we cannot
770 dnl find it anywhere else.
771 alpine_SSLCERTS_ORIG="/System/Library/OpenSSL/certs"
772 if test -d /usr/local/opt/openssl ; then
773 alpine_SSLDIR="/usr/local/opt/openssl"
774 alpine_SSLINCLUDE="$alpine_SSLDIR/include"
775 alpine_SSLLIB="$alpine_SSLDIR/lib"
776 alpine_SSLCERTS="/usr/local/etc/openssl"
777 alpine_SSLKEYS="$alpine_SSLDIR/private"
778 elif test -d /opt/local/etc/openssl ; then
779 alpine_SSLDIR="/opt/local"
780 alpine_SSLINCLUDE="$alpine_SSLDIR/include"
781 alpine_SSLLIB="$alpine_SSLDIR/lib"
782 alpine_SSLCERTS="/opt/local/etc/openssl/certs"
783 alpine_SSLKEYS="/opt/local/etc/openssl/private"
784 elif test -d /sw/etc/ssl ; then
785 alpine_SSLDIR="/sw/etc/ssl"
786 alpine_SSLINCLUDE="/sw/include"
787 alpine_SSLLIB="/sw/lib"
788 alpine_SSLCERTS="/sw/etc/ssl/certs"
789 alpine_SSLKEYS="/sw/etc/ssl/private"
790 elif test -d /System/Library/OpenSSL ; then
791 alpine_SSLDIR="/System/Library/OpenSSL"
792 alpine_SSLCERTS="$alpine_SSLDIR/certs"
793 alpine_SSLKEYS="$alpine_SSLDIR/private"
794 alpine_SSLLIB="/usr/lib"
795 alpine_SSLINCLUDE="/usr/include/openssl"
799 alpine_SSLDIR="/etc/openssl"
800 alpine_SSLCERTS="$alpine_SSLDIR/certs"
801 alpine_SSLKEYS="$alpine_SSLDIR/private"
802 alpine_SSLINCLUDE="/usr/include/openssl"
803 alpine_SSLLIB="/usr/lib"
806 alpine_SSLDIR="/etc/openssl"
807 alpine_SSLCERTS="$alpine_SSLDIR/certs"
808 alpine_SSLKEYS="$alpine_SSLDIR/private"
809 alpine_SSLINCLUDE="/usr/include/openssl"
810 alpine_SSLLIB="/usr/lib"
813 alpine_SSLTYPE="nopwd"
815 alpine_SSLCERTS="/etc/ssl/certs"
818 alpine_SSLDIR="/etc/ssl"
819 alpine_SSLCERTS="$alpine_SSLDIR/certs"
820 alpine_SSLKEYS="$alpine_SSLDIR/private"
821 alpine_SSLINCLUDE="/usr/include/openssl"
822 alpine_SSLLIB="/usr/lib"
825 alpine_SSLDIR="/etc/ssl"
826 alpine_SSLINCLUDE="/usr/include/openssl"
827 alpine_SSLLIB="/usr/lib"
828 alpine_SSLCERTS="/etc/ssl"
829 alpine_SSLKEYS="/etc/ssl/private"
832 alpine_SSLDIR="/usr/ssl"
833 alpine_SSLCERTS="$alpine_SSLDIR/certs"
834 alpine_SSLKEYS="$alpine_SSLDIR/certs"
835 alpine_SSLINCLUDE="/usr/include/openssl"
836 alpine_SSLLIB="/usr/lib"
838 *-sco-sysv* | *-sysv*UnixWare | *-sysv*OpenUNIX)
839 alpine_SSLTYPE="sco.nopwd"
840 alpine_SSLDIR="/usr/local/ssl"
843 if test -d /usr/sfw/include/openssl ; then
844 alpine_SSLDIR="/usr/sfw"
845 elif test -d /opt/csw/include/openssl ; then
846 alpine_SSLDIR="/opt/csw"
847 if test -d /opt/csw/ssl/certs ; then
848 alpine_SSLCERTS="/opt/csw/ssl/certs"
851 if test -z "$alpine_SSLCERTS" -a -d /etc/certs ; then
852 alpine_SSLCERTS="/etc/certs"
856 alpine_SSLTYPE="nopwd"
857 alpine_SSLDIR="/usr/local/ssl"
862 AS_HELP_STRING([--with-ssl-dir=DIR],[Root of SSL lib/include path]),
864 if test "x$withval" != "xno" ; then
865 alpine_SSLDIR=$withval
866 alpine_SSLINCLUDE=$alpine_SSLDIR/include
867 alpine_SSLLIB=$alpine_SSLDIR/lib
871 AC_ARG_WITH(ssl-certs-dir,
872 AS_HELP_STRING([--with-ssl-certs-dir=DIR],[Path to SSL certificate directory]),
874 if test "x$withval" != "xno" ; then
875 alpine_SSLCERTS=$withval
879 AC_ARG_WITH(ssl-include-dir,
880 AS_HELP_STRING([--with-ssl-include-dir=DIR],[SSL include file path]),
882 if test "x$withval" != "xno" ; then
883 alpine_SSLINCLUDE=$withval
887 AC_ARG_WITH(ssl-lib-dir,
888 AS_HELP_STRING([--with-ssl-lib-dir=DIR],[SSL library path]),
890 if test "x$withval" != "xno" ; then
891 alpine_SSLLIB=$withval
894 dnl setup globals so tests below work
895 if test -n "$alpine_SSLINCLUDE" ; then
896 CPPFLAGS="-I$alpine_SSLINCLUDE $CPPFLAGS"
897 elif test -n "$alpine_SSLDIR" ; then
898 CPPFLAGS="-I${alpine_SSLDIR}/include $CPPFLAGS"
900 if test -n "$alpine_SSLLIB" ; then
901 LDFLAGS="-L$alpine_SSLLIB $LDFLAGS"
902 elif test -n "$alpine_SSLDIR" ; then
903 LDFLAGS="-L${alpine_SSLDIR}/lib $LDFLAGS"
907 dnl Include Kerberos?
908 dnl Set GSSDIR for c-client make
910 AS_HELP_STRING([--without-krb5],[Disable Kerberos support]),
911 [ with_krb5=$withval ])
913 if test "x$with_krb5" = "xno" ; then
914 alpine_GSSTYPE="none"
918 AC_ARG_WITH(krb5-dir,
919 AS_HELP_STRING([--with-krb5-dir=DIR],[Root of Kerberos lib/include path]),
921 if test "x$withval" != "xno" ; then
922 CPPFLAGS="$CPPFLAGS -I${withval}/include"
923 LDFLAGS="$LDFLAGS -L${withval}/lib"
927 AC_ARG_WITH(krb5-include-dir,
928 AS_HELP_STRING([--with-krb5-include-dir=DIR],[Kerberos include file path]),
930 if test "x$withval" != "xno" ; then
931 CPPFLAGS="$CPPFLAGS -I$withval"
935 AC_ARG_WITH(krb5-lib-dir,
936 AS_HELP_STRING([--with-krb5-lib-dir=DIR],[Kerberos library path]),
938 if test "x$withval" != "xno" ; then
939 LDFLAGS="$LDFLAGS -L$withval"
946 AS_HELP_STRING([--without-ldap],[Disable LDAP query support]),
947 [ with_ldap=$withval ])
949 if test "x$with_ldap" = "xno" ; then
951 AC_MSG_NOTICE([Excluding LDAP Support])
953 dnl Do stuff to figure out where OpenLDAP is
956 AC_ARG_WITH(ldap-dir,
957 AS_HELP_STRING([--with-ldap-dir=DIR],[Root of LDAP lib/include path]),
959 if test "x$withval" != "xno" ; then
960 CPPFLAGS="$CPPFLAGS -I${withval}/include"
961 LDFLAGS="$LDFLAGS -L${withval}/lib"
965 AC_ARG_WITH(ldap-include-dir,
966 AS_HELP_STRING([--with-ldap-include-dir=DIR],[Directory containing LDAP include files]),
968 if test "x$withval" != "xno" ; then
969 CPPFLAGS="$CPPFLAGS -I$withval"
973 AC_ARG_WITH(ldap-lib-dir,
974 AS_HELP_STRING([--with-ldap-lib-dir=DIR],[LDAP library path]),
976 if test "x$withval" != "xno" ; then
977 LDFLAGS="$LDFLAGS -L$withval"
984 AS_HELP_STRING([--without-smime],[Disable S/MIME]),
985 [ with_smime=$withval ])
989 AS_HELP_STRING([--without-tcl],[Disable TCL, thus Web Alpine support]),
990 [ with_tcl=$withval ])
992 if test "x$with_tcl" = "xno" ; then
994 AC_MSG_NOTICE([Excluding TCL Support, and thus Web Alpine Support])
997 AS_HELP_STRING([--with-tcl-lib=LIBRARY],[Specific TCL Library, like \"tcl8.6\"]),
999 if test "x$withval" != "xno" ; then
1000 alpine_TCLLIB=$withval
1003 AC_ARG_WITH(tcl-include,
1004 AS_HELP_STRING([--with-tcl-include=DIR],[Directory containing TCL include files]),
1006 if test "x$withval" != "xno" ; then
1007 CPPFLAGS="$CPPFLAGS -I$withval"
1008 alpine_TCLINC=$withval
1013 AC_ARG_WITH(supplied-regex,
1014 AS_HELP_STRING([--with-supplied-regex],[Use regex library supplied with alpine]),
1015 [ alpine_REGEX=$withval ])
1017 AC_ARG_WITH(pthread,
1018 AS_HELP_STRING([--without-pthread],[Do NOT test for nor build with POSIX thread support]),
1019 [ with_pthread=$withval ])
1021 AC_ARG_WITH(system-mail-directory,
1022 AS_HELP_STRING([--with-system-mail-directory=DIR],[Directory where local mail is delivered]),
1024 if test "x$withval" != "xno" ; then
1025 alpine_with_local_maildir="$withval"
1029 AC_ARG_WITH(c-client-target,
1030 AS_HELP_STRING([--with-c-client-target=TARGET],[IMAP build target (see imap/Makefile)]),
1032 if test "x$withval" != "xno" ;then
1033 alpine_with_c_client_target="$withval"
1038 dnl Assume PAM is *not* required and only set the systems that need it.
1041 dnl HOST-OS SPECIFIC DEFINITIONS
1042 dnl Tests and assignments below are mostly to coax the appropriate
1043 dnl build from c-client. Most of this will go away when c-client
1044 dnl adopts configure
1046 *-linux-gnu*|*-k*bsd*-gnu*)
1047 alpine_path_delim="/"
1048 alpine_mode_readonly="(0600)"
1049 if test -f /etc/fedora-release ; then
1052 if test -d /etc/pki/tls ; then
1053 alpine_c_client_target="lfd"
1055 alpine_c_client_target="lrh"
1057 elif test -f /etc/mandrake-release ; then
1059 alpine_c_client_target="lmd"
1061 elif test -f /etc/redhat-release -o -f /etc/redhat_version ; then
1064 if test -d /etc/pki/tls ; then
1065 alpine_c_client_target="lr5"
1067 alpine_c_client_target="lrh"
1069 elif test -f /etc/debian_release -o -f /etc/debian_version ; then
1070 if test -d /etc/osso-af-init ; then
1072 alpine_c_client_target="ln8"
1075 alpine_c_client_target="ldb"
1078 elif test -f /etc/SuSE-release ; then
1080 alpine_c_client_target="lsu"
1084 AC_CHECK_LIB(pam, pam_start,
1086 alpine_c_client_target="lnp"
1090 if test -f /etc/shadow ; then
1091 alpine_c_client_target="slx"
1093 alpine_c_client_target="lnx"
1100 alpine_path_delim="/"
1101 alpine_mode_readonly="(0600)"
1102 LIBS="$LIBS -framework Carbon -framework ApplicationServices -framework Security"
1103 AM_CFLAGS="$AM_CFLAGS -Dbsd"
1104 dnl SEE include/system.h
1105 AC_DEFINE([OSX_TARGET],[1],[OSX TARGET])
1106 case "$alpine_os_credential_cache" in
1110 AC_DEFINE([APPLEKEYCHAIN], [1], [Use Apple OS X key chain for credential caching])
1113 AC_CHECK_LIB(pam, pam_start,
1115 AC_CHECK_HEADER([security/pam_appl.h],
1118 alpine_c_client_target="oxs"
1120 [ AC_CHECK_HEADER([pam/pam_appl.h],
1123 alpine_c_client_target="oxp"
1127 alpine_pam_none_reason="header files not found"
1132 alpine_c_client_target="osx"
1136 if test x$GCC = "xyes" ; then
1138 alpine_c_client_target="gso"
1141 alpine_c_client_target="soc"
1142 AC_DEFINE([__EXTENSIONS__], [1], [Enable extended pthread features on Solaris])
1144 alpine_path_delim="/"
1145 alpine_mode_readonly="(0600)"
1146 dnl possible other OS's need this.
1147 dnl Use autoconf 2.61's AC_USE_SYSTEM_EXTENSIONS at some point
1151 alpine_path_delim="/"
1152 alpine_mode_readonly="(0600)"
1153 alpine_c_client_target="s40"
1156 if test x$GCC = "xyes" ; then
1158 alpine_c_client_target="go5"
1161 alpine_c_client_target="sc5"
1163 alpine_path_delim="/"
1164 alpine_mode_readonly="(0600)"
1165 dnl possible other OS's need this.
1166 dnl Use autoconf 2.61's AC_USE_SYSTEM_EXTENSIONS at some point
1170 alpine_path_delim="/"
1171 alpine_mode_readonly="(0600)"
1172 alpine_c_client_target="nx3"
1176 alpine_path_delim="/"
1177 alpine_mode_readonly="(0600)"
1178 alpine_c_client_target="neb"
1182 alpine_path_delim="/"
1183 alpine_mode_readonly="(0600)"
1184 alpine_c_client_target="neb"
1188 alpine_path_delim="/"
1189 alpine_mode_readonly="(0600)"
1190 alpine_c_client_target="bsi"
1194 alpine_path_delim="/"
1195 alpine_mode_readonly="(0600)"
1196 alpine_c_client_target="bsf"
1197 LIBS="$LIBS $LIBINTL"
1201 alpine_path_delim="/"
1202 alpine_mode_readonly="(0600)"
1203 alpine_c_client_target="bso"
1204 LIBS="$LIBS $LIBINTL"
1208 alpine_path_delim="/"
1209 alpine_mode_readonly="(0600)"
1210 alpine_c_client_target="a52"
1214 alpine_path_delim="/"
1215 alpine_mode_readonly="(0600)"
1216 alpine_c_client_target="a41"
1220 alpine_path_delim="/"
1221 alpine_mode_readonly="(0600)"
1222 alpine_c_client_target="a32"
1224 *-*UNIX_SV | *-*-sysv5UnixWare7* | *-*OpenUNIX*)
1226 alpine_path_delim="/"
1227 alpine_mode_readonly="(0600)"
1228 alpine_c_client_target="uw2"
1232 alpine_path_delim="/"
1233 alpine_mode_readonly="(0600)"
1234 alpine_c_client_target="osf"
1238 alpine_path_delim="/"
1239 alpine_mode_readonly="(S_IREAD | S_IWRITE)"
1240 alpine_c_client_target="cyg"
1241 LIBS="$LIBS $LIBINTL"
1243 windows* | *-*-pw32*)
1245 alpine_path_delim="\\"
1246 alpine_mode_readonly="(S_IREAD | S_IWRITE)"
1247 alpine_c_client_target="wnt"
1248 AC_DEFINE([_WINDOWS], [1], [Windows is just too different])
1251 AC_MSG_ERROR(Unrecognized system: $host)
1257 AS_HELP_STRING([--without-ipv6],[Disable IPv6, primarily to work around resolver problems]),
1258 [ with_ipv6=$withval ])
1260 if test "x$with_ipv6" = "xno" ; then
1261 AC_MSG_NOTICE([Excluding IPv6 Support])
1262 c_client_specials="${c_client_specials}IP6=4 "
1265 c_client_ip6="touch imap/ip6"
1271 if test x$enable_dmalloc = "xyes" ; then
1272 if test "x$with_pthread" = "xyes" ; then
1273 dmalloc_lib=dmallocth
1278 AC_CHECK_LIB($dmalloc_lib,dmalloc_shutdown,,
1280 AC_MSG_ERROR($dmalloc_lib requested, but -ldmalloc not found)
1284 dnl which terminal cabability database
1285 AC_CHECK_LIB(tinfo, setupterm,
1287 alpine_termdata=info
1288 LIBS="$LIBS -ltinfo"
1291 AC_CHECK_LIB(ncurses, setupterm,
1293 alpine_termdata=info
1294 LIBS="$LIBS -lncurses"
1297 AC_CHECK_LIB(curses, setupterm,
1299 alpine_termdata=info
1300 LIBS="$LIBS -lcurses"
1303 AC_CHECK_LIB(termlib, tgetent,
1306 LIBS="$LIBS -ltermlib"
1309 AC_CHECK_LIB(termcap, tgetent,
1312 LIBS="$LIBS -ltermcap"
1315 AC_MSG_ERROR(Terminfo/termcap not found)
1321 case $alpine_termdata in
1323 AC_DEFINE(HAS_TERMINFO, [1], [Define if systems uses terminfo terminal database])
1326 AC_DEFINE(HAS_TERMCAP, [1], [Define if systems uses termcap terminal database])
1330 dnl is -ldl present? if so, add it
1331 AC_SEARCH_LIBS([dlopen], [dl dld],, [ alpine_DL="none" ])
1332 if test "x$alpine_DL" = "xnone" ; then
1333 AC_MSG_ERROR([No library containing dlopen found])
1337 dnl Crypto support is needed
1338 if test "x$alpine_SSLTYPE" != "xnone" ; then
1339 AC_SEARCH_LIBS(SSLeay,crypto,, [ alpine_CRYPTO="none" ])
1340 if test "x$alpine_CRYPTO" = "xnone" ; then
1341 AC_MSG_ERROR(crypto library NOT found)
1346 dnl provide SSL support?
1347 if test "x$alpine_SSLTYPE" != "xnone" ; then
1348 AC_SEARCH_LIBS(SSL_library_init,ssl,,[ alpine_SSLTYPE="none" ])
1350 if test "x$alpine_SSLTYPE" = "xnone" ; then
1351 AC_MSG_ERROR(No library containing SSL_library_init found in your path)
1355 AC_MSG_CHECKING([Openssl library version >= 1.0.0c])
1360 #include <openssl/ssl.h>
1363 if (OPENSSL_VERSION_NUMBER >= 0x1000003f)
1369 [ AC_MSG_RESULT(yes) ],
1370 [ alpine_SSLTYPE="none" ])
1372 if test "x$alpine_SSLTYPE" = "xnone" ; then
1373 AC_MSG_ERROR(Install openssl version >= 1.0.0c)
1376 AC_SEARCH_LIBS(TLSv1_2_client_method,ssl,
1377 [ alpine_c_client_cflags="$alpine_c_client_cflags -DTLSV1_2"
1378 AC_DEFINE([SSL_SUPPORTS_TLSV1_2], [1], [SSL Supports TLSV1.2])
1382 dnl provide LDAP support?
1383 if test "$alpine_with_ldap" = "yes" ; then
1385 AC_CHECK_LIB(lber, ber_alloc,
1389 AC_SEARCH_LIBS(ldap_init,ldap,
1394 AC_SEARCH_LIBS(ldap_open,ldap,
1400 if test "$alpine_has_ldap" = "yes" ; then
1401 AC_MSG_NOTICE([* * * Including LDAP Support])
1402 AC_DEFINE([ENABLE_LDAP], [], [Enable LDAP query support])
1404 dnl we use deprecated functions (ldap_get_values)
1405 dnl OpenLDAP 2.3.x doesn't define LDAP_DEPRECATED by default like 2.2.x
1406 AC_MSG_CHECKING([if we should define LDAP_DEPRECATED])
1414 if (LDAP_VENDOR_VERSION >= 20300)
1422 AC_DEFINE(LDAP_DEPRECATED, 1,
1423 [Define if you use OpenLDAP 2.3.x deprecated functions])
1430 AC_MSG_WARN([cross compiling: not checking])
1435 AC_MSG_NOTICE([Cannot find LDAP functions! Excluding LDAP support.])
1439 dnl PAM support is needed to build c-client in some linux, and hence Alpine.
1440 if test "x$alpine_PAM" != "xnone" ; then
1441 AC_SEARCH_LIBS(pam_start,pam,
1444 AC_CHECK_HEADER([security/pam_appl.h],
1448 dnl Only mac is incompatible, do not spread bad habits.
1449 [ AC_CHECK_HEADER([pam/pam_appl.h],
1452 if test "x$alpine_c_client_target" != "xoxp" ; then
1454 alpine_pam_none_reason="header files not in security/ directory"
1459 alpine_pam_none_reason="header files not found"
1465 alpine_pam_none_reason="library files not found"
1467 if test -n "$alpine_pam_none_reason" ; then
1468 AC_MSG_ERROR(No PAM support: $alpine_pam_none_reason)
1473 dnl provide KRB5 support?
1474 if test "x$alpine_GSSTYPE" != "xnone" ; then
1475 AC_SEARCH_LIBS(gss_init_sec_context,gss gssapi gssapi_krb5,
1479 AC_CHECK_HEADER([gssapi/gssapi_generic.h],,
1481 if test ! -d /usr/kerberos/include ; then
1482 alpine_GSSTYPE="none"
1483 alpine_gss_none_reason="header files not found"
1488 alpine_GSSTYPE="none"
1489 alpine_gss_none_reason="libraries not found"
1491 if test -n "$alpine_gss_none_reason" ; then
1492 AC_MSG_NOTICE([NOT including Kerberos Support: $alpine_gss_none_reason])
1496 dnl check for tcl libraries for Web Alpine (HACKY)
1497 if test -n "$WEB_BUILD" ; then
1498 TCL_VERSIONS_DOT="tcl8.6 tcl8.5 tcl8.4 tcl8.3"
1499 TCL_VERSIONS_NODOT="`echo ${TCL_VERSIONS_DOT} | ${SED} 's/\.//g'`"
1500 TCL_VERSIONS="${TCL_VERSIONS_DOT} ${TCL_VERSIONS_NODOT} tcl"
1501 AC_SEARCH_LIBS([Tcl_Eval],[$alpine_TCLLIB ${TCL_VERSIONS}],,
1506 dnl look for header file
1507 if test -n "$alpine_TCLINC" ; then
1508 AC_CHECK_HEADER($alpine_TCLINC/tcl.h,,
1512 if test -z "$WEB_BUILD" ; then
1513 AC_MSG_NOTICE([Tcl Include file NOT found])
1516 AC_CHECK_HEADER(tcl.h,,
1518 for base in /usr /usr/local ; do
1519 for dir in ${TCL_VERSIONS} ; do
1520 AC_CHECK_FILE([$base/include/$dir/tcl.h],
1524 if test "$found" = "yes" ; then
1525 CPPFLAGS="$CPPFLAGS -I$base/include/$dir"
1529 if test "$found" = "yes" ; then
1533 if test "$found" != "yes" ; then
1535 AC_MSG_NOTICE([header file tcl.h NOT found: Web Alpine will not be built])
1541 dnl Local or supplied regex?
1542 if test "x$alpine_REGEX" != "xyes" ; then
1543 AC_SEARCH_LIBS([regcomp],posix regexp regex re,,
1545 if test x$alpine_REGEX = "xno" ; then
1546 AC_MSG_ERROR(Unable to find system regex library)
1552 if test "x$alpine_REGEX" != "xyes" ; then
1553 AC_CHECK_HEADER([regex.h],,
1555 if test x$alpine_REGEX = "xno" ; then
1556 AC_MSG_ERROR(Unable to find system regex include file)
1562 AC_DEFINE(HAVE_REGEX_H,1,[Regular expression header file exists])
1563 if test "x$alpine_REGEX" = "xyes" ; then
1564 CPPFLAGS="$CPPFLAGS -I${top_builddir}/regex"
1565 LDFLAGS="$LDFLAGS -L${top_builddir}/regex"
1567 REGEX_MAKEFILE="$REGEX_BUILD/Makefile"
1570 if test "x$with_pthread" != "xno" ; then
1571 AC_MSG_CHECKING([for pthread support])
1574 AC_MSG_RESULT([yes])
1577 AC_MSG_NOTICE([WARNING: pthread support on OpenBSD is unstable!])
1578 AM_CFLAGS="$AM_CFLAGS -pthread"
1581 LIBS="$PTHREAD_LIBS $LIBS"
1582 AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS"
1584 AC_DEFINE([HAVE_PTHREAD], [1], [System has pthread support])
1590 AC_SEARCH_LIBS([nanosleep], [rt posix4],
1592 AC_DEFINE([HAVE_NANOSLEEP], [1], [Define if system supports subsecond, non-alarm sleep])
1605 AC_HEADER_TIOCGWINSZ
1607 AC_CHECK_HEADERS([unistd.h])
1609 AC_CHECK_HEADERS([errno.h \
1634 dnl terminal line discipline?
1635 AC_CHECK_HEADER([termios.h],
1636 AC_DEFINE(HAS_TERMIOS, [1], [Define if systems uses termios terminal control]),
1638 AC_CHECK_HEADER([termio.h],
1639 AC_DEFINE(HAS_TERMIO, [1], [Define if systems uses termio terminal control]),
1641 AC_CHECK_HEADER([sgtty.h],
1642 AC_DEFINE(HAS_SGTTY, [1], [Define if systems uses old BSD-style terminal control]),
1644 AC_MSG_ERROR(Unable to figure out terminal control method)
1652 AC_DIAGNOSE([obsolete],[your code may safely assume C89 semantics that RETSIGTYPE is void.
1653 Remove this warning and the `AC_CACHE_CHECK' when you adjust the code.])dnl
1654 AC_CACHE_CHECK([return type of signal handlers],[ac_cv_type_signal],[AC_COMPILE_IFELSE(
1655 [AC_LANG_PROGRAM([#include <sys/types.h>
1658 [return *(signal (0, 0)) (0) == 1;])],
1659 [ac_cv_type_signal=int],
1660 [ac_cv_type_signal=void])])
1661 AC_DEFINE_UNQUOTED([RETSIGTYPE],[$ac_cv_type_signal],[Define as the return type of signal handlers
1662 (`int' or `void').])
1670 AC_CHECK_TYPES([union wait])
1672 AC_CHECK_HEADERS([stdint.h], [uint16=uint16_t], [
1673 AC_CHECK_HEADERS([inttypes.h], [uint16=uint16_t], [
1674 AC_CHECK_HEADERS([sys/types.h], [uint16=u_int16_t], [
1675 AC_CHECK_SIZEOF(unsigned short)
1676 if test $ac_cv_sizeof_unsigned_short -eq 2 ; then
1677 uint16="unsigned short"
1679 AC_CHECK_SIZEOF(unsigned int)
1680 if $ac_cv_sizeof_unsigned_int -eq 2 ; then
1681 uint16="unsigned int"
1683 AC_MSG_ERROR(Unable to determine 16 bit integer type)
1689 AC_DEFINE_UNQUOTED([UINT16], $uint16, [System defined unsigned 16 bit integer])
1691 AC_CHECK_HEADERS([stdint.h], [uint32=uint32_t], [
1692 AC_CHECK_HEADERS([inttypes.h], [uint32=uint32_t], [
1693 AC_CHECK_HEADERS([sys/types.h], [uint32=u_int32_t], [
1694 AC_CHECK_SIZEOF(unsigned int)
1695 if test $ac_cv_sizeof_unsigned_int -eq 4 ; then
1696 uint32="unsigned int"
1698 AC_CHECK_SIZEOF(unsigned long)
1699 if $ac_cv_sizeof_unsigned_long -eq 4 ; then
1700 uint32="unsigned long"
1702 AC_MSG_ERROR(Unable to determine 32 bit integer type)
1708 AC_DEFINE_UNQUOTED([UINT32], $uint32, [System defined unsigned 32 bit integer])
1710 AC_CACHE_CHECK(argument pointer type of qsort compare function and base,
1711 ac_cv_func_qsort_argtype,
1712 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1718 extern sortf(const void *, const void *);
1721 const void *b; { return 0; }
1723 qsort(base, 2, sizeof(char *), sortf);
1724 ]])],[ac_cv_func_qsort_argtype=void],[ac_cv_func_qsort_argtype=char])
1726 AC_DEFINE_UNQUOTED([qsort_t], $ac_cv_func_qsort_argtype, [qsort compare function argument type])
1728 dnl check for "struct passwd" ?
1730 AC_FUNC_SELECT_ARGTYPES
1734 dnl CHECK FOR LIBRARY FUNCTIONS
1737 AC_CHECK_FUNCS([strchr \
1770 AC_SEARCH_LIBS([gethostname],[nsl])
1772 AC_SEARCH_LIBS([socket],[socket],,
1777 AC_SEARCH_LIBS([bind],[bind],,
1782 dnl check for POSIX signal interface
1783 AC_CHECK_FUNCS([sigaction sigemptyset sigaddset sigprocmask],
1785 AC_DEFINE([POSIX_SIGNALS], [], [Define if system supports POSIX signal interface])
1788 AC_CHECK_FUNCS([sigset sigrelse],
1790 AC_DEFINE([SYSV_SIGNALS], [], [Define if system supports SYSV signal interface])
1794 AC_SEARCH_LIBS([syslog], [bsd socket inet],
1796 AC_DEFINE([HAVE_SYSLOG], [1], [Define if system supplies syslog() logging])
1800 dnl set pico newmail check directory
1801 if test -n "$alpine_with_local_maildir" ; then
1802 alpine_local_maildir=$alpine_with_local_maildir
1803 elif test -d /var/spool/mail ; then
1804 alpine_local_maildir="/var/spool/mail"
1805 elif test -d /var/mail ; then
1806 alpine_local_maildir="/var/mail"
1808 alpine_local_maildir="/usr/spool/mail"
1811 dnl set c-client make target
1812 if test -n "$alpine_with_c_client_target" ; then
1813 alpine_c_client_target=$alpine_with_c_client_target
1816 AC_DEFINE_UNQUOTED([SYSTYPE], "$systype", [Pine-Centric Host Specifier])
1817 AC_DEFINE_UNQUOTED([C_FILESEP],'$alpine_path_delim',[File name separator as character constant])
1818 AC_DEFINE_UNQUOTED([S_FILESEP],"$alpine_path_delim",[File name separator as string constant])
1819 AC_DEFINE_UNQUOTED([MAILDIR],"$alpine_local_maildir",[Path to local inboxes for pico newmail check])
1820 AC_DEFINE_UNQUOTED([MODE_READONLY], $alpine_mode_readonly, [File mode used to set readonly access])
1822 dnl c-client make particulars
1823 AC_SUBST([C_CLIENT_TARGET], $alpine_c_client_target)
1824 AC_SUBST([C_CLIENT_WITH_IPV6], $c_client_ip6)
1825 if test "x$alpine_SSLTYPE" = "xnone" ; then
1826 AC_MSG_NOTICE([* * * NOT Including SSL Support])
1827 c_client_specials="${c_client_specials}SSLTYPE=none "
1829 dnl issue any warnings for common OpenSSL issues
1831 if test -n "$alpine_SSLCERTS" -a -d "$alpine_SSLCERTS" ; then
1832 certdir="$alpine_SSLCERTS"
1833 elif test -n "$alpine_SSLDIR" -a -d "${alpine_SSLDIR}/certs" ; then
1834 certdir="${alpine_SSLDIR}/certs"
1835 elif test -n "$alpine_SSLDIR" -a -d "${alpine_SSLDIR}/ssl/certs" ; then
1836 certdir="${alpine_SSLDIR}/ssl/certs"
1837 elif test -n "$alpine_SSLCERTS_ORIG" -a -d "$alpine_SSLCERTS_ORIG" ; then
1838 certdir="$alpine_SSLCERTS_ORIG"
1840 AC_MSG_NOTICE([SSL Problem: certificate directory not found])
1843 if test "x$with_smime" != "xno" ; then
1844 if test -n "$certdir" ; then
1845 AC_MSG_NOTICE([* * * S/MIME support enabled])
1846 AC_DEFINE([SMIME], [], [Enable S/MIME code])
1847 AC_DEFINE_UNQUOTED([SMIME_SSLCERTS],"$certdir",[Directory where S/MIME CACerts are located])
1851 if test ! -f ${certdir}/factory.pem ; then
1852 AC_MSG_NOTICE([* * * SSL file "${certdir}/factory.pem" is missing.])
1853 AC_MSG_NOTICE([* * * This might indicate that CA certs did not get properly])
1854 AC_MSG_NOTICE([* * * installed. If you get certificate validation failures])
1855 AC_MSG_NOTICE([* * * in Alpine, this might be the reason for them.])
1858 if test -z "`ls ${certdir} | $EGREP '^@<:@0-9A-Fa-f@:>@{8}\.@<:@0-9@:>@'`" ; then
1859 AC_MSG_NOTICE([* * * No 8-hexdigit symlinks in certificate directory "${certdir}".])
1860 AC_MSG_NOTICE([* * * This might indicate that CA certs did not get properly])
1861 AC_MSG_NOTICE([* * * installed. If you get certificate validation failures])
1862 AC_MSG_NOTICE([* * * in Alpine, this might be the reason for them.])
1865 if test -n "$alpine_SSLINCLUDE" ; then
1866 c_client_specials="${c_client_specials}SSLINCLUDE=$alpine_SSLINCLUDE "
1869 if test -n "$alpine_SSLLIB" ; then
1870 c_client_specials="${c_client_specials}SSLLIB=$alpine_SSLLIB "
1873 if test -n "$alpine_SSLDIR" ; then
1874 c_client_specials="${c_client_specials}SSLDIR=$alpine_SSLDIR "
1877 if test -n "$certdir" ; then
1878 c_client_specials="${c_client_specials}SSLCERTS=$certdir "
1881 if test -n "$alpine_SSLKEYS" ; then
1882 c_client_specials="${c_client_specials}SSLKEYS=$alpine_SSLKEYS "
1886 if test "x$alpine_GSSTYPE" != "xnone" ; then
1887 c_client_specials="${c_client_specials}EXTRAAUTHENTICATORS=gss "
1888 AC_MSG_NOTICE([* * * Including Kerberos5 functionality])
1891 if test -n "$CPPFLAGS" ; then
1892 alpine_c_client_cflags="$alpine_c_client_cflags ${CPPFLAGS}"
1894 if test -n "$CFLAGS" ; then
1895 alpine_c_client_cflags="$alpine_c_client_cflags ${CFLAGS}"
1898 if test -n "$alpine_c_client_cflags" ; then
1899 AC_SUBST(C_CLIENT_CFLAGS, EXTRACFLAGS=\"$alpine_c_client_cflags\")
1902 if test -n "$LDFLAGS" ; then
1903 alpine_c_client_ldflags="$alpine_c_client_ldflags ${LDFLAGS}"
1905 if test -n "$LIBS" ; then
1906 alpine_c_client_ldflags="$alpine_c_client_ldflags ${LIBS}"
1909 if test -n "$alpine_c_client_ldflags" ; then
1910 AC_SUBST(C_CLIENT_LDFLAGS, EXTRALDFLAGS=\"$alpine_c_client_ldflags\")
1913 if test -n "$alpine_c_client_gccoptlevel" ; then
1914 AC_SUBST(C_CLIENT_GCCOPTLEVEL, GCCOPTLEVEL=\"$alpine_c_client_gccoptlevel\")
1917 AC_SUBST([C_CLIENT_SPECIALS], $c_client_specials)
1919 dnl Deal with Web Alpine
1920 if test -z "$WEB_BUILD" ; then
1921 WEB_PUBCOOKIE_BUILD=
1922 AC_MSG_NOTICE([* * * TCL libraries could not be found.])
1923 AC_MSG_NOTICE([* * * WEB ALPINE COMPONENT WILL NOT BE BUILT.])
1925 if test -n "$WEB_PUBCOOKIE_BUILD" ; then
1926 if test "x$alpine_GSSTYPE" = "xnone" ; then
1927 WEB_PUBCOOKIE_BUILD=
1928 AC_MSG_NOTICE([* * * Kerberos5 support not found.])
1929 AC_MSG_NOTICE([* * * WEB ALPINE PUBCOOKIE COMPONENT WILL NOT BE BUILT.])
1930 elif test -z "$WEB_BINDIR" ; then
1931 WEB_PUBCOOKIE_BUILD=
1932 AC_MSG_NOTICE([* * * Web Alpine binary directory not provided.])
1933 AC_MSG_ERROR([* * * --with-pubcookie requires --with-web-bin=PATH.
1934 Please re-run configure with these options:
1935 --with-pubcookie --with-web-bin=/usr/local/libexec/alpine/bin])
1937 AC_DEFINE([PUBCOOKIE],[1],[Include support for UW Pubcookie Web Authentication])
1938 WEB_PUBCOOKIE_LIB=../pubcookie/libauthgssproxy.a
1939 WEB_PUBCOOKIE_LINK=gssapi_proxy.l
1944 AC_SUBST([REGEX_BUILD])
1946 AC_SUBST([WEB_BUILD])
1947 AC_SUBST([WEB_BINDIR])
1948 AC_SUBST([WEB_PUBCOOKIE_BUILD])
1949 AC_SUBST([WEB_PUBCOOKIE_LIB])
1950 AC_SUBST([WEB_PUBCOOKIE_LINK])
1952 AC_SUBST([AM_CFLAGS])
1953 AC_SUBST([AM_LDFLAGS])
1955 AC_CONFIG_FILES([m4/Makefile po/Makefile.in $REGEX_MAKEFILE \
1956 pith/osdep/Makefile pith/charconv/Makefile pith/Makefile \
1957 pico/osdep/Makefile pico/Makefile \
1958 alpine/osdep/Makefile alpine/Makefile \
1959 web/src/Makefile web/src/pubcookie/Makefile \
1960 web/src/alpined.d/Makefile \