Add support for tab-completion when selecting by rule
[alpine.git] / configure.ac
blob05b09b2e95371304f443bea81ca3ad0cd8574c71
1 dbl Process this file with autoconf to produce a configure script.
3 dnl /* ========================================================================
4 dnl  * Copyright 2013-2022 Eduardo Chappa
5 dnl  * Copyright 2006-2008 University of Washington
6 dnl  *
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
10 dnl  *
11 dnl  *     http://www.apache.org/licenses/LICENSE-2.0
12 dnl  *
13 dnl  * ========================================================================
14 dnl  */
16 AC_PREREQ([2.69])
18 AC_REVISION([Rev:29 by chappa@washington.edu])
20 dnl Alpine Version Number is in $srcdir/VERSION
21 AC_INIT([alpine],[m4_esyscmd(tr -d \\n < 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])
28 AM_MAINTAINER_MODE
30 AC_CANONICAL_HOST
32 AC_LANG(C)
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
39 dnl CHECK PROGRAMS
41 AC_PROG_CC
42 AX_PROG_CC_FOR_BUILD
43 AC_PROG_CC_STDC
44 AC_PROG_INSTALL
45 AC_PROG_MAKE_SET
46 AC_PROG_LN_S
47 AC_PROG_AWK
48 LT_INIT
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
69   AC_MSG_RESULT([yes])
70 else
71   AC_MSG_RESULT([no])
74 AC_ARG_WITH(dmalloc-dir,
75   AS_HELP_STRING([--with-dmalloc-dir=DIR],[Root of dmalloc lib/include path]),
76   [
77     if test "x$withval" != "xno" ; then
78       enable_dmalloc = "yes"
79       CPPFLAGS="$CPPFLAGS -I${withval}"
80       LDFLAGS="$LDFLAGS -L${withval}"
81     fi
82   ])
84 if test x$enable_dmalloc = "xyes" ; then
85   AC_DEFINE(ENABLE_DMALLOC, 1, [Define enable dmalloc debugging])
88 dnl set date and hostname
89 ALPINE_datestamp=`date`
90 AC_ARG_WITH(date-stamp,
91   AS_HELP_STRING([--with-date-stamp=DATE],[Set this as the date this program was built. Default: output of `date`]),
92   [ 
93     if test "x$withval" != "xno" ; then
94      ALPINE_datestamp=$withval
95     fi
96   ])
97 AC_SUBST([ALPINE_DATESTAMP], $ALPINE_datestamp)
99 ALPINE_hoststamp=`hostname`
100 AC_ARG_WITH(host-stamp,
101   AS_HELP_STRING([--with-host-stamp=HOST],[Set name of computer for compilation. Default: output of `hostname`]),
102   [ 
103     if test "x$withval" != "xno" ; then
104       ALPINE_hoststamp="$withval"
105     fi
106   ])
107 AC_SUBST([ALPINE_HOSTSTAMP], $ALPINE_hoststamp)
109 dnl Set default locale dir.
110 case $host in
111     *apple-darwin*)
112       if test -d /opt/local ; then
113         localedir="/opt/local/share/locale"
114       else
115         localedir="\${datadir}/locale"
116       fi
117       ;;
118     *-*-cygwin)
119         localedir="/usr/share"
120       ;;
121     *)  
122       localedir="\${datadir}/locale"
123       ;;
124 esac
126 AC_ARG_WITH(localedir,
127   AS_HELP_STRING([--with-localedir=DIR],[Name of gettext locale directory]),
128   [
129     case $withval in
130       yes)
131         ;;
132       no)
133         ;;
134       *)
135         localedir=$withval
136         ;;
137     esac
138   ])
139 AC_SUBST(localedir, "[$localedir]")
141 # Setup OS-Specific features
142 case "$host" in
143   *darwin*)
144     dnl OS X Universal Binary Support
145     AC_ARG_ENABLE(osx-universal-binaries,
146       AS_HELP_STRING([--enable-osx-universal-binaries],[Produce universal binaries under OS X [[default=no]]]))
147     if test "x$enable_osx_universal_binaries" = "xyes" ; then
148       if test "x$enable_dependency_tracking" != xno ; then
149         AC_MSG_ERROR([--enable-osx-universal-binary requires --disable-dependency-tracking.
150 Please re-run configure with these options:
151     --disable-dependency-tracking --enable-osx-universal-binary])
152       fi
153       if [test -d /Developer/SDKs/MacOSX10.5.sdk] ; then
154         alpine_sysroot=/Developer/SDKs/MacOSX10.5.sdk
155       elif [test -d /Developer/SDKs/MacOSX10.4u.sdk] ; then
156         alpine_sysroot=/Developer/SDKs/MacOSX10.4u.sdk
157       else
158         AC_MSG_ERROR([No suitable MacOSX SDK found.  Make sure Xcode tools are installed])
159       fi
160       ub_cflags="-isysroot $alpine_sysroot -arch ppc -arch i386"
161       ub_ldflags="-Wl,-syslibroot,$alpine_sysroot -arch ppc -arch i386"
162       AM_CFLAGS="$AM_CFLAGS $ub_cflags"
163       AM_LDFLAGS="$AM_LDFLAGS $ub_ldflags"
164       alpine_c_client_cflags="$alpine_c_client_cflags $ub_cflags"
165       alpine_c_client_ldflags="$alpine_c_client_ldflags $ub_ldflags"
166     fi
167     ;;
168 esac
170 AC_ARG_WITH(include-path,
171   AS_HELP_STRING([--with-include-path=PATHS],[Colon-separated list of directories used for include file search]),
172   [
173     case $withval in
174       no)
175         ;;
176       yes)
177         ;;
178       *)
179         new_cppflags="-I`echo ${withval} | ${SED} 's/:/ -I/g'`"
180         CPPFLAGS="$CPPFLAGS ${new_cppflags}"
181         alpine_c_client_cflags="$alpine_c_client_cflags ${new_cppflags}"
182         ;;
183     esac
184   ])
186 AC_ARG_WITH(lib-path,
187   AS_HELP_STRING([--with-lib-path=PATHS],[Colon-separated list of directories used for library search]),
188   [
189     case $withval in
190       no)
191         ;;
192       yes)
193         ;;
194       *)
195         new_ldflags="-L`echo ${withval} | ${SED} 's/:/ -L/g'`"
196         LDFLAGS="$LDFLAGS $new_ldflags"
197         alpine_c_client_ldflags="$alpine_c_client_ldflags ${new_ldflags}"
198         ;;
199     esac
200   ])
202 AC_ARG_WITH(pubcookie,
203   AS_HELP_STRING([--with-pubcookie],[Include support for UW-Pubcookie Web Authentication]),
204   [
205     if test "x$withval" != "xno" ; then
206       WEB_PUBCOOKIE_BUILD=web/src/pubcookie
207     fi
208   ])
211 AC_ARG_WITH(web-bin,
212   AS_HELP_STRING([--with-web-bin=PATH],[Directory to hold Web Alpine component binary files]),
213   [
214     case "$withval" in
215       no)
216         ;;
217       yes)
218         ;;
219       *)
220         WEB_BINDIR=$withval
221         ;;
222     esac
223   ])
225 dnl disable debug, turned on by default
226 AC_MSG_CHECKING([option: debugging is enabled])
227 AC_ARG_ENABLE(debug, AS_HELP_STRING([--disable-debug],[Exclude debug from the binary]))
228 if test x$enable_debug != "xno" ; then
229   AM_CFLAGS="$AM_CFLAGS -g"
230   AC_MSG_RESULT([yes])
231 else
232   AC_MSG_RESULT([no])
234 dnl we want debug messages to be compiled into the binary, but only write to a file
235 dnl upon user request.
236 AC_DEFINE([DEBUG], [1], [Compile in debugging])
237 AC_DEFINE([DEBUGJOURNAL], [1], [Display debug messages in journal])
240 dnl disable optimization, on by default
241 AC_MSG_CHECKING([option: optimization is enabled])
242 AC_ARG_ENABLE(optimization, AS_HELP_STRING([--disable-optimization],[Exclude optimizing compiler flags]))
243 if test x$enable_optimization != "xno" ; then
244   AC_MSG_RESULT([yes])
245 else
246   CFLAGS="`echo $CFLAGS | ${SED} 's/-O2//g'`"
247   C_FLAGS="`echo $AM_CFLAGS | ${SED} 's/-O2//g'`"
248   CFLAGS="$CFLAGS $C_FLAGS"
249   alpine_c_client_gccoptlevel="-O0"
250   AC_MSG_RESULT([no])
253 dnl disable mouse support
254 AC_MSG_CHECKING([option: mouse support enabled])
255 AC_ARG_ENABLE(mouse, AS_HELP_STRING([--disable-mouse],[Disable mouse support]))
256 if test x$enable_mouse != "xno" ; then
257   AC_DEFINE([MOUSE], [], [Compile in mouse support])
258   AC_MSG_RESULT([yes])
259 else
260    AC_MSG_RESULT([no])
263 dnl enable quotas
264 AC_MSG_CHECKING([option: quotas enabled])
265 AC_ARG_ENABLE(quotas, AS_HELP_STRING([--enable-quotas],[Enable disk quota checking on startup]))
266 if test x$enable_quotas = "xyes" ; then
267   AC_DEFINE([USE_QUOTAS], [], [Compile in quota check on startup])
268   AC_MSG_RESULT([yes])
269 else
270    AC_MSG_RESULT([no])
273 AC_MSG_CHECKING([option: From changing enabled])
274 AC_ARG_ENABLE(from_changing, AS_HELP_STRING([--disable-from-changing],[Disallow users changing From address]))
275 if test x$enable_from_changing != "xno" ; then
276   AC_MSG_RESULT([yes])
277 else
278   AC_DEFINE([NEVER_ALLOW_CHANGING_FROM], [], [Disallow users changing their From address])
279   AC_MSG_RESULT([no])
282 dnl enable background posting support
283 AC_MSG_CHECKING([option: background post enabled])
284 AC_ARG_ENABLE(background-post, AS_HELP_STRING([--disable-background-post],[Disable background posting]))
285 if test x$enable_background_post != "xno" ; then
286   AC_DEFINE([BACKGROUND_POST], [], [Enable background posting support])
287   AC_MSG_RESULT([yes])
288 else
289     AC_MSG_RESULT([no])
292 dnl enable keyboard locking support
293 AC_MSG_CHECKING([option: keyboard lock enabled])
294 AC_ARG_ENABLE(keyboard-lock, AS_HELP_STRING([--disable-keyboard-lock],[Disable keyboard locking]))
295 if test x$enable_keyboard_lock != "xno" ; then
296   AC_DEFINE([KEYBOARD_LOCK], [], [Enable keyboard lock support])
297   AC_MSG_RESULT([yes])
298 else
299   AC_MSG_RESULT([no])
302 dnl enable from encoding support
303 AC_MSG_CHECKING([option: from encoding enabled])
304 AC_ARG_ENABLE(from-encoding, AS_HELP_STRING([--enable-from-encoding],[Enable From encoding in sent messages]))
305 if test x$enable_from_encoding = "xyes" ; then
306   AC_DEFINE([ENCODE_FROMS], [], [Enable From address encoding in sent messages])
307   AC_MSG_RESULT([yes])
308 else
309   AC_MSG_RESULT([no])
312 dnl OPTION: name of local submission agent
313 dnl         Might not be sendmail, but it MUST speak SMTP on stdin/stdout
314 AC_ARG_WITH(smtp-msa,
315   AS_HELP_STRING([--with-smtp-msa=PATH],[Local Mail Submission Agent (sendmail)]),
316     [
317       case "$withval" in
318         no)
319           ;;
320         yes)
321           AC_PATH_PROG(SENDMAIL, sendmail, "", $PATH:/usr/sbin:/usr/lib)
322           ;;
323         *)
324           SENDMAIL=$withval
325           ;;
326       esac
327     ],
328     [
329           AC_PATH_PROG(SENDMAIL, sendmail, "", $PATH:/usr/sbin:/usr/lib)
330     ])
331 if test -n "$SENDMAIL" ; then
332     AC_DEFINE_UNQUOTED([SENDMAIL], "$SENDMAIL", [Local mail submission agent])
335 dnl OPTION: local msa arguments
336 smtp_msa_flags="-bs -odb -oem"
337 AC_ARG_WITH(smtp-msa-flags,
338   AS_HELP_STRING([--with-smtp-msa-flags=FLAGS],[MSA flags for SMTP on stdin/stdout (-bs -odb -oem)]),
339   [
340     if test "x$withval" != "xno" ; then
341       smtp_msa_flags=$withval
342     fi
343   ])
344 AC_DEFINE_UNQUOTED([SENDMAILFLAGS], "$smtp_msa_flags", [Local MSA flags for SMTP on stdin/stdout])
346 dnl OPTION: name of local news posting agent and flags
347 npa="inews"
348 AC_ARG_WITH(npa,
349   AS_HELP_STRING([--with-npa=PATH],[Posting agent when no nntp-servers defined (inews)]),
350     [
351       case "$withval" in
352         no)
353           ;;
354         yes)
355           AC_PATH_PROG(NPA_PROG, inews, "", $PATH:/usr/sbin:/usr/lib)
356           ;;
357         *)
358           NPA_PROG=$withval
359           ;;
360       esac
361     ],
362     [
363           AC_PATH_PROG(NPA_PROG, inews, "", $PATH:/usr/sbin:/usr/lib)
364     ])
366 npa_flags="-h"
367 AC_ARG_WITH(npa-flags,
368   AS_HELP_STRING([--with-npa-flags=FLAGS],[Flags to allow posting via local agent (-h)]),
369   [
370     if test "x$withval" != "xno" ; then
371       npa_flags=$withval
372     fi
373   ])
374 if test -n "$NPA_PROG" ; then
375   AC_DEFINE_UNQUOTED([SENDNEWS], "$NPA_PROG $npa_flags", [Posting agent to use when no nntp-servers defined])
378 dnl OPTION: password changing program
379 AC_ARG_WITH(password-prog,
380   AS_HELP_STRING([--with-password-prog=PATH],[Password change program (/bin/passwd)]),
381     [
382       case "$withval" in
383         no)
384           ;;
385         yes)
386           AC_PATH_PROG(PWPROG, passwd, "", $PATH:/usr/sbin:/usr/lib)
387           ;;
388         *)
389           AC_PATH_PROG(PWPROG, $withval, "", $PATH:/usr/sbin:/usr/lib)
390           ;;
391       esac
392     ],
393     [
394           AC_PATH_PROG(PWPROG, passwd, "", $PATH:/usr/sbin:/usr/lib)
395     ])
396 if test -n "$PWPROG" ; then
397     AC_DEFINE_UNQUOTED([PASSWD_PROG], "$PWPROG", [Program users use to change their password])
400 dnl OPTION: basic spell checking program
401 AC_ARG_WITH(simple-spellcheck,
402   AS_HELP_STRING([--with-simple-spellcheck=PROG],[Spellcheck program reads stdin, emits misspellings on stdout]),
403     [
404       if test "x$withval" != "xno" ; then
405         SPELLPROG=$withval
406       fi
407     ],
408     [
409       AC_CHECK_PROG([SPELLPROG], [hunspell], [hunspell], [])
410       if test -z "$SPELLPROG" ; then
411         AC_CHECK_PROG([SPELLPROG], [aspell], [aspell], [])
412         if test -z "$SPELLPROG" ; then
413           AC_CHECK_PROG([SPELLPROG], [ispell], [ispell], [])
414           if test -z "$SPELLPROG" ; then
415            SPELLPROG="spell"
416           fi
417         fi
418       fi
419     ])
421 if test "x$SPELLPROG" != "xno" ; then
422   AC_PATH_PROG(alpine_simple_spellcheck, $SPELLPROG)
423   if test -n "$alpine_simple_spellcheck" ; then
424     case "$SPELLPROG" in
425       hunspell)
426         alpine_simple_spellcheck="$alpine_simple_spellcheck -l"
427         ;;
428       aspell)
429         alpine_simple_spellcheck="$alpine_simple_spellcheck --dont-backup --mode=email list"
430         ;;
431       ispell)
432         alpine_simple_spellcheck="$alpine_simple_spellcheck -l"
433         ;;
434       *)
435         ;;
436     esac
437   fi
440 dnl OPTION: interactive spell checking program
441 AC_ARG_WITH(interactive-spellcheck,
442   AS_HELP_STRING([--with-interactive-spellcheck=PROG],[Interactive, filewise spell checker]),
443     [
444       if test "x$withval" != "xno" ; then
445         ISPELLPROG=$withval
446       fi
447     ],
448     [
449       AC_CHECK_PROG([ISPELLPROG], [hunspell], [hunspell], [])
450       if test -z "$ISPELLPROG" ; then
451         AC_CHECK_PROG([ISPELLPROG], [aspell], [aspell], [])
452         if test -z "$SPELLPROG" ; then
453           ISPELLPROG="ispell"
454         fi
455       fi
456     ])
458 if test "x$ISPELLPROG" != "xno" ; then
459   AC_PATH_PROG(alpine_interactive_spellcheck, $ISPELLPROG)
460   if test -n "$alpine_interactive_spellcheck" ; then
461     case "$ISPELLPROG" in
462       aspell)
463         alpine_interactive_spellcheck="$alpine_interactive_spellcheck --dont-backup --mode=email check"
464         ;;
465       *)
466         ;;
467     esac
468   fi
471 if test -n "$alpine_interactive_spellcheck" ; then
472     AC_DEFINE_UNQUOTED([DF_VAR_SPELLER], "$alpine_interactive_spellcheck", [Interactive, filewise spell checker])
475 if test -z "$alpine_simple_spellcheck" -a -n "$alpine_interactive_spellcheck" ; then
476   alpine_simple_spellcheck=test
478 AC_DEFINE_UNQUOTED([SPELLER], "$alpine_simple_spellcheck", [Simple spell checker: reads stdin, emits misspellings on stdout])
480 dnl OPTION: system-pinerc
481 dnl NOTE: historically we used /lib for the config dir.
482 dnl       don't ask, it was a long time ago. but, we can't
483 dnl       change it now without breaking compatibility
484 case "$prefix" in
485   NONE) dpv=/usr/local/lib/pine.conf ;;
486   *) dpv=${prefix}/lib/pine.conf ;;
487 esac
488 AC_ARG_WITH(system-pinerc,
489   AS_HELP_STRING([--with-system-pinerc=VALUE],[System pinerc (/usr/local/lib/pine.conf)]),
490     [
491       case "$withval" in
492         no)
493           ;;
494         yes)
495           ;;
496         *)
497           dpv=$withval
498           ;;
499       esac
500     ])
501 AC_DEFINE_UNQUOTED(SYSTEM_PINERC, "$dpv", [System pinerc])
503 dnl OPTION: system-fixed-pinerc
504 dnl NOTE: historically we used /lib for the config dir.
505 dnl       don't ask, it was a long time ago. but, we can't
506 dnl       change it now without breaking compatibility
507 case "$prefix" in
508   NONE) dpv=/usr/local/lib/pine.conf.fixed ;;
509   *) dpv=${prefix}/lib/pine.conf.fixed ;;
510 esac
511 AC_ARG_WITH(system-fixed-pinerc,
512   AS_HELP_STRING([--with-system-fixed-pinerc=VALUE],[System fixed pinerc (/usr/local/lib/pine.conf.fixed)]),
513     [
514       case "$withval" in
515         no)
516           ;;
517         yes)
518           ;;
519         *)
520           dpv=$withval
521           ;;
522       esac
523     ])
524 AC_DEFINE_UNQUOTED(SYSTEM_PINERC_FIXED, "$dpv", [System fixed pinerc])
526 dnl OPTION: local support information, file that contains information on
527 dnl         how to contact local support for Alpine.
528 dnl NOTE: historically we used /lib for the config dir.
529 dnl       don't ask, it was a long time ago. but, we can't
530 dnl       change it now without breaking compatibility
531 case "$prefix" in
532   NONE) dpv=/usr/local/lib/pine.info ;;
533   *) dpv=${prefix}/lib/pine.info ;;
534 esac
535 AC_ARG_WITH(local-support-info,
536   AS_HELP_STRING([--with-local-support-info=VALUE],[Local Support Info File (/usr/local/lib/pine.info)]),
537     [
538       case "$withval" in
539         no)
540           ;;
541         yes)
542           ;;
543         *)
544           dpv=$withval
545           ;;
546       esac
547     ])
548 AC_DEFINE_UNQUOTED(SYSTEM_PINE_INFO_PATH, "$dpv", [Local Support Info File])
550 dnl Function to simplify setting alpine/pico defaults
551 dnl usage: PINEVAR(configure-name, definition-name, definition-value, help)
552 AC_DEFUN([PINEVAR],
553   [
554     dpv=$3
555     AC_ARG_WITH($1,
556       AS_HELP_STRING([--with-$1=VALUE],[$4 ($3)]),
557       [
558         if test "x$withval" != "xno" ; then
559           dpv=$withval
560         fi
561       ])
562     AC_DEFINE_UNQUOTED($2, "$dpv", [Default configuration value])
563   ])
565 dnl Function to simplify setting pine/pico defaults
566 dnl usage: PINEVAR_UNQUOTED(configure-name, definition-name, definition-value, help)
567 AC_DEFUN([PINEVAR_UNQUOTED],
568   [
569     dpv=$3
570     AC_ARG_WITH($1,
571       AS_HELP_STRING([--with-$1=VALUE],[$4 ($3)]),
572       [
573         if test "x$withval" != "xno" ; then
574           dpv=$withval
575         fi
576       ])
577     AC_DEFINE_UNQUOTED($2, $dpv, [Default configuration value])
578   ])
580 PINEVAR(mailcheck-interval, DF_MAILCHECK, 150, [Specify default mail-check-interval])
581 PINEVAR_UNQUOTED(checkpoint-interval, CHECK_POINT_TIME, 420, [Specify default checkpoint-interval])
582 PINEVAR_UNQUOTED(checkpoint-frequency, CHECK_POINT_FREQ, 12, [State change count before checkpoint])
583 PINEVAR_UNQUOTED(display-rows, DEFAULT_LINES_ON_TERMINAL, 24, [Initial rows on display])
584 PINEVAR_UNQUOTED(display-columns, DEFAULT_COLUMNS_ON_TERMINAL, 80, [Initial columns on display])
585 PINEVAR_UNQUOTED(max-display-rows, MAX_SCREEN_ROWS, 200, [Maximum display rows])
586 PINEVAR_UNQUOTED(max-display-columns, MAX_SCREEN_COLS, 500, [Maximum display columns])
587 PINEVAR(fill-column, DF_FILLCOL, 74, [Default fill column])
588 PINEVAR_UNQUOTED(max_fill-column, MAX_FILLCOL, 80, [Maximum fill column])
589 PINEVAR_UNQUOTED(debug-level, DEFAULT_DEBUG, 2, [Specify default debug verbosity level])
590 PINEVAR_UNQUOTED(debug-files, NUMDEBUGFILES, 4, [Specify number of debug files])
591 PINEVAR(debug-file, DEBUGFILE, [.pine-debug], [Specify debug file name])
592 PINEVAR(forwarded-keyword, FORWARDED_FLAG, ["\$Forwarded"], [IMAP (c-client) keyword to store forwarded status])
593 PINEVAR(display-overlap, DF_OVERLAP, [2], [Lines preserved while paging])
594 PINEVAR(display-margin, DF_MARGIN, [0], [Lines visible while scrolling])
595 PINEVAR(default-fcc, DF_DEFAULT_FCC, [sent-mail], [Default sent mail folder])
596 PINEVAR(default-save-folder, DEFAULT_SAVE, [saved-messages], [Default save folder])
597 PINEVAR(default-legacy-postponed-folder, POSTPONED_MAIL, [postponed-mail], [Pre Pine 3.90 postponed folder])
598 PINEVAR(default-postponed-folder, POSTPONED_MSGS, [postponed-msgs], [Default postponed folder])
599 PINEVAR(default-trash-folder, TRASH_FOLDER, [Trash], [Default Trash folder for Web Alpine])
600 PINEVAR(default-interrupted-mail, INTERRUPTED_MAIL, [.pine-interrupted-mail], [Default folder for interrupted mail])
601 PINEVAR(default-dead-letter-folder, DEADLETTER, [dead.letter], [Default dead letter folder])
602 PINEVAR(default-mail-directory, DF_MAIL_DIRECTORY, [mail], [Default mail directory])
603 PINEVAR(default-inbox-name, INBOX_NAME, [INBOX], [Default inbox name])
604 PINEVAR(default-signature-file, DF_SIGNATURE_FILE, [.signature], [Default signature file])
605 PINEVAR(default-elm-style-save, DF_ELM_STYLE_SAVE, [no], [Default to Elm style save])
606 PINEVAR(default-header-in-reply, DF_HEADER_IN_REPLY, [no], [Include header in reply])
607 PINEVAR(default-old-style-reply, DF_OLD_STYLE_REPLY, [no], [Default to old style reply])
608 PINEVAR(default-use-only-domain-name, DF_USE_ONLY_DOMAIN_NAME, [no], [Default to using only the domain name])
609 PINEVAR(default-save-by-sender, DF_SAVE_BY_SENDER, [no], [Default to save by sender])
610 PINEVAR(default-sort-key, DF_SORT_KEY, [arrival], [Default sort key])
611 PINEVAR(default-addressbook-sort-rule, DF_AB_SORT_RULE, [fullname-with-lists-last], [Default addressbook sort rule])
612 PINEVAR(default-folder-sort-rule, DF_FLD_SORT_RULE, [alphabetical], [Default folder sort rule])
613 PINEVAR(default-saved-message-name-rule, DF_SAVED_MSG_NAME_RULE, [default-folder], [Default saved message name rule])
614 PINEVAR(default-fcc-rule, DF_FCC_RULE, [default-fcc], [Default fcc rule])
615 PINEVAR(default-standard-printer, DF_STANDARD_PRINTER, [lpr], [Default standard printern])
616 PINEVAR(default-ansi-printer, ANSI_PRINTER, [attached-to-ansi], [ANSI printer definition])
617 PINEVAR(default-addressbook, DF_ADDRESSBOOK, [.addressbook], [Default addressbook name])
618 PINEVAR(default-local-fullname, DF_LOCAL_FULLNAME, ["Local Support"], [Default local support fullname])
619 PINEVAR(default-local-address, DF_LOCAL_ADDRESS, [postmaster], [Default local support address])
620 PINEVAR(default-keyboard-lock-count, DF_KBLOCK_PASSWD_COUNT, [1], [Default keyboard lock count])
621 PINEVAR(default-remote-addressbook-history, DF_REMOTE_ABOOK_HISTORY, [3], [Default address book history count])
622 PINEVAR(default-html-directory, DF_HTML_DIRECTORY, [.alpine-html], [Default Directory to Temporarily Save HTML Messages])
623 PINEVAR(smime-public-cert-directory, DF_PUBLICCERT_DIR, [.alpine-smime/public], [Default Public Cert Directory])
624 PINEVAR(smime-private-key-directory, DF_PRIVATEKEY_DIR, [.alpine-smime/private], [Default Private Key Directory])
625 PINEVAR(smime-cacert-directory, DF_CACERT_DIR, [.alpine-smime/ca], [Default Cert Authority Directory])
626 PINEVAR_UNQUOTED(default-printer, DF_DEFAULT_PRINTER, [ANSI_PRINTER], [Default printer])
628 AC_DEFINE_UNQUOTED([DF_PUBLIC_CONTAINER], "PublicContainer", [Name of default public container])
629 AC_DEFINE_UNQUOTED([DF_PRIVATE_CONTAINER], "PrivateContainer", [Name of default private container])
630 AC_DEFINE_UNQUOTED([DF_CA_CONTAINER], "CAContainer", [Name of default certificate authority container])
631 AC_DEFINE_UNQUOTED([DEFAULT_SSLUSERCAPATH], ".alpine-certs", [Default directory for user trusted certificates])
632 AC_DEFINE_UNQUOTED([DEFAULT_SSLUSERCAFILE], ".alpine-certs/certs.pem", [Name of default container for user trusted certificates])
634 dnl set DF_SSHPATH?
635 AC_ARG_WITH(default-sshpath,
636   AS_HELP_STRING([--with-default-sshpath=FILENAME],[set default value of ssh command path (defining should cause ssh to be preferred to rsh)]),
637     [
638       case "$withval" in
639         no)
640           ;;
641         yes)
642           ;;
643         *)
644           AC_DEFINE_UNQUOTED([DF_SSHPATH], "$withval", [set default value of ssh command path (defining should cause ssh to be preferred to rsh)])
645           ;;
646       esac
647     ])
649 dnl set DF_SSHCMD?
650 AC_ARG_WITH(default-sshcmd,
651   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")]),
652     [
653       case "$withval" in
654         no)
655           ;;
656         yes)
657           ;;
658         *)
659           AC_DEFINE_UNQUOTED([DF_SSHCMD], "$withval", [set default value of ssh command string (usually "%s %s -l %s exec /etc/r%sd")])
660           ;;
661       esac
662     ])
664 dnl Include SSL?
665 dnl Set SSLDIR for c-client make
666 AC_ARG_WITH(ssl,
667   AS_HELP_STRING([--without-ssl],[Disable SSL support (OpenSSL)]),
668   [ with_ssl=$withval ])
670 if test "x$with_ssl" = "xno" ; then
671   alpine_SSLTYPE="none"
672 elif test -d /usr/local/ssl ; then
673 dnl When the system has openssl installed in its default location
674 dnl instead of the one used by the distribution assume that this
675 dnl is the one intended to be used.
676   alpine_SSLDIR="/usr/local/ssl"
677   alpine_SSLINCLUDE="$alpine_SSLDIR/include" 
678   alpine_SSLLIB="$alpine_SSLDIR/lib"
679   alpine_SSLCERTS="$alpine_SSLDIR/certs"
680   alpine_SSLTYPE="nopwd"
681 else
682   dnl preload c-client default locations/options
683   case $host in
684     *-linux*|*-k*bsd*-gnu*|*-gnu*)
685       if test -f /etc/fedora-release -o -f /etc/redhat-release -o -f /etc/redhat_version ; then  
686         alpine_SSLTYPE="nopwd"
687         if test -d /etc/pki/tls ; then  
688           alpine_SSLDIR="/etc/pki/tls"
689         else
690           alpine_SSLDIR="/usr/share/ssl"
691         fi
692         alpine_SSLCERTS="$alpine_SSLDIR/certs"
693         alpine_SSLKEYS="$alpine_SSLDIR/private"
694         alpine_SSLINCLUDE="/usr/include/openssl" 
695         alpine_SSLLIB="/usr/lib"
696       elif test -f /etc/mandrake-release ; then
697         alpine_SSLDIR="/usr/lib/ssl"
698         alpine_SSLCERTS="$alpine_SSLDIR/certs" 
699         alpine_SSLKEYS="$alpine_SSLDIR/private"
700         alpine_SSLINCLUDE="/usr/include/openssl" 
701         alpine_SSLLIB="/usr/lib"
702       elif test -f /etc/SuSE-release ; then
703         alpine_SSLTYPE="nopwd"
704         alpine_SSLDIR="/etc/ssl"
705         alpine_SSLCERTS="$alpine_SSLDIR/certs"
706         alpine_SSLKEYS="$alpine_SSLDIR/private"
707         alpine_SSLINCLUDE="/usr/include/openssl" 
708         alpine_SSLLIB="/usr/lib"
709       elif test -d /etc/osso-af-init ; then
710         alpine_SSLTYPE="nopwd"
711         alpine_SSLDIR="/usr"
712         alpine_SSLCERTS="/usr/share/certs"
713         alpine_SSLINCLUDE="/usr/include/openssl"
714         alpine_SSLLIB="/usr/lib"
715       elif test -f /etc/debian_release -o -f /etc/debian_version ; then
716         if test ! -d /etc/osso-af-init ; then
717            alpine_SSLDIR="/etc/ssl"
718            alpine_SSLCERTS="$alpine_SSLDIR/certs"
719            alpine_SSLKEYS="$alpine_SSLDIR/private"
720            alpine_SSLINCLUDE="/usr/include/openssl" 
721            alpine_SSLLIB="/usr/lib"
722         fi
723       elif test -f /etc/manjaro-release ; then
724            alpine_SSLDIR="/etc/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       else
730         alpine_SSLTYPE="nopwd"
731         alpine_SSLDIR="/usr"
732         alpine_SSLCERTS="/etc/ssl/certs"
733       fi
734       ;;
735     *-apple-darwin*)
736       alpine_SSLTYPE="nopwd"
737 dnl Originally this is where certs are, and they might still be there, even
738 dnl after installing Homebrew, MacPorts or Fink. We will use it if we cannot
739 dnl find it anywhere else.
740       alpine_SSLCERTS_ORIG="/System/Library/OpenSSL/certs"
741       if test -d /usr/local/opt/openssl ; then
742         alpine_SSLDIR="/usr/local/opt/openssl"
743         alpine_SSLINCLUDE="$alpine_SSLDIR/include"
744         alpine_SSLLIB="$alpine_SSLDIR/lib"
745         alpine_SSLCERTS="/usr/local/etc/openssl"
746         alpine_SSLKEYS="$alpine_SSLDIR/private"
747       elif test -d /opt/local/etc/openssl ; then
748         alpine_SSLDIR="/opt/local"
749         alpine_SSLINCLUDE="$alpine_SSLDIR/include"
750         alpine_SSLLIB="$alpine_SSLDIR/lib"
751         alpine_SSLCERTS="/opt/local/etc/openssl/certs"
752         alpine_SSLKEYS="/opt/local/etc/openssl/private"
753       elif test -d /sw/etc/ssl ; then
754         alpine_SSLDIR="/sw/etc/ssl"
755         alpine_SSLINCLUDE="/sw/include"
756         alpine_SSLLIB="/sw/lib"
757         alpine_SSLCERTS="/sw/etc/ssl/certs"
758         alpine_SSLKEYS="/sw/etc/ssl/private"
759       elif test -d /usr/local/ssl ; then
760         alpine_SSLDIR="/usr/local/ssl"
761       elif test -d /System/Library/OpenSSL ; then
762         alpine_SSLDIR="/System/Library/OpenSSL"
763         alpine_SSLCERTS="$alpine_SSLDIR/certs"
764         alpine_SSLKEYS="$alpine_SSLDIR/private"
765         alpine_SSLLIB="/usr/lib"
766         alpine_SSLINCLUDE="/usr/include/openssl"
767       fi
768       ;;
769     *-*-netbsd*)
770         alpine_SSLDIR="/etc/openssl"
771         alpine_SSLCERTS="$alpine_SSLDIR/certs"
772         alpine_SSLKEYS="$alpine_SSLDIR/private"
773         alpine_SSLINCLUDE="/usr/include/openssl"
774         alpine_SSLLIB="/usr/lib"
775       ;;
776     *-*-dragonfly*)
777         alpine_SSLDIR="/etc/openssl"
778         alpine_SSLCERTS="$alpine_SSLDIR/certs"
779         alpine_SSLKEYS="$alpine_SSLDIR/private"
780         alpine_SSLINCLUDE="/usr/include/openssl"
781         alpine_SSLLIB="/usr/lib"
782       ;;
783     *-openbsd*)
784         alpine_SSLTYPE="nopwd"
785         alpine_SSLDIR="/usr"
786         alpine_SSLCERTS="/etc/ssl/certs"
787       ;;
788     *-*-freebsd*)
789         alpine_SSLDIR="/etc/ssl"
790         alpine_SSLCERTS="$alpine_SSLDIR/certs"
791         alpine_SSLKEYS="$alpine_SSLDIR/private"
792         if test -d /usr/local/include/openssl ; then
793           alpine_SSLINCLUDE="/usr/local/include/openssl" 
794           alpine_SSLLIB="/usr/local/lib"
795         else
796           alpine_SSLINCLUDE="/usr/include/openssl" 
797           alpine_SSLLIB="/usr/lib"
798         fi
799       ;;
800     *-*-openbsd*)
801         alpine_SSLDIR="/etc/ssl"
802         alpine_SSLINCLUDE="/usr/include/openssl"
803         alpine_SSLLIB="/usr/lib"
804         alpine_SSLCERTS="/etc/ssl" 
805         alpine_SSLKEYS="/etc/ssl/private"
806       ;;
807     *-*-cygwin)
808         alpine_SSLDIR="/usr/ssl"
809         alpine_SSLCERTS="$alpine_SSLDIR/certs" 
810         alpine_SSLKEYS="$alpine_SSLDIR/certs"
811         alpine_SSLINCLUDE="/usr/include/openssl" 
812         alpine_SSLLIB="/usr/lib"
813       ;;
814     *-sco-sysv* | *-sysv*UnixWare | *-sysv*OpenUNIX)
815         alpine_SSLTYPE="sco.nopwd"
816         alpine_SSLDIR="/usr/local/ssl"
817       ;;
818     *-*-solaris*)
819       if test -d /usr/include/openssl ; then
820         alpine_SSLINCLUDE="/usr/include/openssl" 
821       elif test -d /usr/sfw/include/openssl ; then
822         alpine_SSLDIR="/usr/sfw"
823       elif test -d /opt/csw/include/openssl ; then
824         alpine_SSLDIR="/opt/csw"
825         if test -d /opt/csw/ssl/certs ; then
826           alpine_SSLCERTS="/opt/csw/ssl/certs"
827         fi
828       fi
829       if test -z "$alpine_SSLCERTS" -a -d /etc/certs ; then
830         alpine_SSLCERTS="/etc/certs"
831       fi
832       ;;
833     *)
834       alpine_SSLTYPE="nopwd"
835       alpine_SSLDIR="/usr/local/ssl"
836       ;;
837   esac
840 if test "x$alpine_SSLTYPE" != "xnone" ; then
841   AC_ARG_WITH(ssl-dir,
842     AS_HELP_STRING([--with-ssl-dir=DIR],[Root of SSL lib/include path]),
843     [
844       if test "x$withval" != "xno" ; then
845         alpine_SSLDIR=$withval
846         alpine_SSLINCLUDE=$alpine_SSLDIR/include
847         alpine_SSLLIB=$alpine_SSLDIR/lib
848       fi
849     ])
851   AC_ARG_WITH(ssl-certs-dir,
852     AS_HELP_STRING([--with-ssl-certs-dir=DIR],[Path to SSL certificate directory]),
853     [
854       if test "x$withval" != "xno" ; then
855         alpine_SSLCERTS=$withval
856       fi
857     ])
859   AC_ARG_WITH(ssl-include-dir,
860     AS_HELP_STRING([--with-ssl-include-dir=DIR],[SSL include file path]),
861     [
862       if test "x$withval" != "xno" ; then
863         alpine_SSLINCLUDE=$withval
864       fi
865     ])
867   AC_ARG_WITH(ssl-lib-dir,
868     AS_HELP_STRING([--with-ssl-lib-dir=DIR],[SSL library path]),
869     [
870       if test "x$withval" != "xno" ; then
871         alpine_SSLLIB=$withval
872       fi
873     ])
875   dnl setup globals so tests below work
876   if test -n "$alpine_SSLINCLUDE" ; then
877     CPPFLAGS="-I$alpine_SSLINCLUDE $CPPFLAGS"
878   elif test -n "$alpine_SSLDIR" ; then
879     CPPFLAGS="-I${alpine_SSLDIR}/include $CPPFLAGS"
880   fi
881   if test -n "$alpine_SSLLIB" ; then
882     LDFLAGS="-L$alpine_SSLLIB $LDFLAGS"
883   elif test -n "$alpine_SSLDIR" ; then
884     LDFLAGS="-L${alpine_SSLDIR}/lib $LDFLAGS"
885   fi
888 if test "x$alpine_SSLTYPE" != "xnone" ; then
889   alpine_default_SSLMIN="no_min"
890   alpine_default_SSLMAX="no_max"
891   alpine_default_RANGE="${alpine_default_SSLMIN},${alpine_default_SSLMAX}"
892   alpine_ENCRYPTION="$alpine_default_SSLMIN ssl3 tls1 tls1_1 tls1_2 tls1_3 $alpine_default_SSLMAX"
893   alpine_SSLMIN="$alpine_default_SSLMIN"
894   alpine_SSLMAX="$alpine_default_SSLMAX"
895   alpine_RANGE="$alpine_default_RANGE"
896   AC_ARG_WITH(encryption-minimum-version,
897     AS_HELP_STRING([--encryption-minimum-version=VERSION],[Minimum SSL encryption version. Default: no_min]),
898     [
899       if test "x$withval" != "xno" ; then
900         alpine_SSLMIN=$withval
901       fi
902     ])
903   AC_ARG_WITH(encryption-maximum-version,
904     AS_HELP_STRING([--encryption-maximum-version=VERSION],[Maximum SSL encryption version. Default: no_max]),
905     [
906       if test "x$withval" != "xno" ; then
907         alpine_SSLMAX=$withval
908       fi
909     ])
910   alpine_RANGE="$alpine_SSLMIN $alpine_SSLMAX"
911   for range in ${alpine_RANGE} ; do
912       for encryption in ${alpine_ENCRYPTION} ; do
913           if test "x$range" = "x$encryption" ; then
914              if test -z $alpine_min ; then
915                 alpine_min="yes"
916              else
917                 alpine_max="yes"
918              fi
919           fi
920       done
921   done
923   if test -z $alpine_max ; then
924      AC_MSG_ERROR(Unrecognized maximum encryption version: $alpine_max)
925   fi
927   if test -z $alpine_min ; then
928      AC_MSG_ERROR(Unrecognized minimum encryption version: $alpine_min)
929   fi
931   if test "x$alpine_SSLMIN" != "x$alpine_SSLMAX" ; then
932      alpine_RANGE_FEASIBLE=`echo "$alpine_ENCRYPTION" | sed "s/^.*$alpine_SSLMIN//" | grep "$alpine_SSLMAX"`
933      if test -n "$alpine_RANGE_FEASIBLE" ; then
934         alpine_RANGE="${alpine_SSLMIN},${alpine_SSLMAX}"
935      else
936         AC_MSG_WARN(Reversing order of minimum and maximum encryption)
937         alpine_RANGE="${alpine_SSLMAX},${alpine_SSLMIN}"
938      fi
939   else
940      if test "x$alpine_SSLMIN" = "x$alpine_default_SSLMIN" ; then
941         AC_MSG_WARN(Overriding maximum encryption to default)
942         alpine_SSLMAX="$alpine_default_SSLMAX"
943      fi
944      if test "x$alpine_SSLMAX" = "x$alpine_default_SSLMAX" ; then
945         AC_MSG_WARN(Overriding minimum encryption to default)
946         alpine_SSLMIN="$alpine_default_SSLMIN"
947      fi
948      alpine_RANGE="${alpine_SSLMIN},${alpine_SSLMAX}"
949   fi
950 PINEVAR(encryption-range, DF_ENCRYPTION_RANGE, [$alpine_RANGE] , [Default Encryption Range])
953 dnl Include Kerberos?
954 dnl Set GSSDIR for c-client make
955 AC_ARG_WITH(krb5,
956   AS_HELP_STRING([--without-krb5],[Disable Kerberos support]),
957   [ with_krb5=$withval ])
959 if test "x$with_krb5" = "xno" ; then
960   alpine_GSSTYPE="none"
961 else
962   alpine_GSSTYPE=
964   AC_ARG_WITH(krb5-dir,
965     AS_HELP_STRING([--with-krb5-dir=DIR],[Root of Kerberos lib/include path]),
966     [
967       if test "x$withval" != "xno" ; then
968         CPPFLAGS="$CPPFLAGS -I${withval}/include"
969         LDFLAGS="$LDFLAGS -L${withval}/lib"
970       fi
971     ])
973   AC_ARG_WITH(krb5-include-dir,
974     AS_HELP_STRING([--with-krb5-include-dir=DIR],[Kerberos include file path]),
975     [
976       if test "x$withval" != "xno" ; then
977         CPPFLAGS="$CPPFLAGS -I$withval"
978       fi
979     ])
981   AC_ARG_WITH(krb5-lib-dir,
982     AS_HELP_STRING([--with-krb5-lib-dir=DIR],[Kerberos library path]),
983     [
984       if test "x$withval" != "xno" ; then
985         LDFLAGS="$LDFLAGS -L$withval"
986       fi
987     ])
990 dnl Include LDAP?
991 AC_ARG_WITH(ldap,
992   AS_HELP_STRING([--without-ldap],[Disable LDAP query support]),
993   [ with_ldap=$withval ])
995 if test "x$with_ldap" = "xno" ; then
996   alpine_with_ldap=
997   AC_MSG_NOTICE([Excluding LDAP Support])
998 else
999   dnl Do stuff to figure out where OpenLDAP is
1001   case $host in
1002     *-*-freebsd*)
1003         alpine_LDAPDIR="/usr/local"
1004         alpine_LDAPINCLUDE="${alpine_LDAPDIR}/include"
1005         alpine_LDAPLIB="${alpine_LDAPDIR}/lib"
1006         ;;
1007   esac;
1009   alpine_with_ldap=yes
1011   AC_ARG_WITH(ldap-dir,
1012     AS_HELP_STRING([--with-ldap-dir=DIR],[Root of LDAP lib/include path]),
1013     [
1014       if test "x$withval" != "xno" ; then 
1015         alpine_LDAPDIR="${withval}"
1016         alpine_LDAPINCLUDE="${alpine_LDAPDIR}/include"
1017         alpine_LDAPLIB="${alpine_LDAPDIR}/lib"
1018       fi
1019     ])
1021   AC_ARG_WITH(ldap-include-dir,
1022     AS_HELP_STRING([--with-ldap-include-dir=DIR],[Directory containing LDAP include files]),
1023     [
1024       if test "x$withval" != "xno" ; then
1025         alpine_LDAPINCLUDE="$withval"
1026       fi
1027     ])
1029   AC_ARG_WITH(ldap-lib-dir,
1030     AS_HELP_STRING([--with-ldap-lib-dir=DIR],[LDAP library path]),
1031     [
1032       if test "x$withval" != "xno" ; then
1033         alpine_LDAPLIB="${withval}"
1034       fi
1035     ])
1037    if test -n "$alpine_LDAPINCLUDE" ; then
1038         CPPFLAGS="$CPPFLAGS -I${alpine_LDAPINCLUDE}/include"
1039    fi
1040    if test -n "$alpine_LDAPLIB" ; then
1041         LDFLAGS="$LDFLAGS -L${alpine_LDAPLIB}/lib"
1042    fi
1045 dnl Include SMIME?
1046 AC_ARG_WITH(smime,
1047   AS_HELP_STRING([--without-smime],[Disable S/MIME]),
1048   [ with_smime=$withval ])
1050 dnl Include TCL?
1051 AC_ARG_WITH(tcl,
1052   AS_HELP_STRING([--without-tcl],[Disable TCL, thus Web Alpine support]),
1053   [ with_tcl=$withval ])
1055 if test "x$with_tcl" = "xno" ; then
1056   WEB_BUILD=
1057   AC_MSG_NOTICE([Excluding TCL Support, and thus Web Alpine Support])
1058 else
1059   AC_ARG_WITH(tcl-lib-dir,
1060     AS_HELP_STRING([--with-tcl-lib-dir=PATH],[Specific TCL Librar dir, like \"/usr/opt/tcl86/lib\"]),
1061     [
1062       if test "x$withval" != "xno" ; then 
1063         alpine_TCLLIBDIR=$withval
1064         if test -n "$alpine_TCLLIBDIR" ; then
1065            LDFLAGS="-L$alpine_TCLLIBDIR $LDFLAGS"
1066         fi
1067       fi
1068     ])
1069   AC_ARG_WITH(tcl-lib,
1070     AS_HELP_STRING([--with-tcl-lib=LIBRARY],[Specific TCL Library, like \"tcl8.6\"]),
1071     [
1072       if test "x$withval" != "xno" ; then 
1073         alpine_TCLLIB=$withval
1074       fi
1075     ])
1076   AC_ARG_WITH(tcl-include,
1077     AS_HELP_STRING([--with-tcl-include=DIR],[Directory containing TCL include files]),
1078     [
1079       if test "x$withval" != "xno" ; then
1080         CPPFLAGS="$CPPFLAGS -I$withval"
1081         alpine_TCLINC=$withval
1082       fi
1083     ])
1086 AC_ARG_WITH(supplied-regex,
1087   AS_HELP_STRING([--with-supplied-regex],[Use regex library supplied with alpine]),
1088   [ alpine_REGEX=$withval ])
1090 AC_ARG_WITH(pthread,
1091   AS_HELP_STRING([--without-pthread],[Do NOT test for nor build with POSIX thread support]),
1092   [ with_pthread=$withval ])
1094 AC_ARG_WITH(system-mail-directory,
1095   AS_HELP_STRING([--with-system-mail-directory=DIR],[Directory where local mail is delivered]),
1096   [
1097     if test "x$withval" != "xno" ; then
1098       alpine_with_local_maildir="$withval"
1099     fi
1100   ])
1102 AC_ARG_WITH(c-client-target,
1103   AS_HELP_STRING([--with-c-client-target=TARGET],[IMAP build target (see imap/Makefile)]),
1104   [
1105     if test "x$withval" != "xno" ;then
1106       alpine_with_c_client_target="$withval"
1107     fi
1108   ])
1111 dnl Do not build bundled tools (Default)
1112 alpine_c_client_bundled="no"
1113 AC_ARG_WITH(bundled-tools,
1114   AS_HELP_STRING([--with-bundled-tools],[ Build additional tools (mtest, imapd, etc.) Default: --with-bundled-tools=no]),
1115   [ 
1116     if test "x$withval" = "xyes" ; then
1117      alpine_c_client_bundled=""
1118     fi
1119   ])
1121 dnl os-specific credential cache?
1122 AC_ARG_WITH(local-password-cache,
1123  AS_HELP_STRING([--without-local-password-cache],[Disable OS-specific password cache, if supported]),
1124    [
1125      alpine_os_credential_cache=$withval
1126    ])
1128 dnl Particular os-specific credential cache?
1129 AC_ARG_WITH(local-password-cache-method,
1130  AS_HELP_STRING([--with-local-password-cache-method],[OS-specific credential cache (OSX=APPLEKEYCHAIN, Windows=WINCRED)]),
1131    [
1132      alpine_os_credential_cache_method=$withval
1133    ])
1135 alpine_cache_os_method="no"
1137 dnl Assume PAM is *not* required and only set the systems that need it.
1138 alpine_PAM="none"
1140 dnl HOST-OS SPECIFIC DEFINITIONS
1141 dnl Tests and assignments below are mostly to coax the appropriate
1142 dnl build from c-client.  Most of this will go away when c-client
1143 dnl adopts configure
1144 case "$host" in
1145   *-linux*|*-k*bsd*-gnu*|*-gnu*)
1146     alpine_path_delim="/"
1147     alpine_mode_readonly="(0600)"
1148     if test -f /etc/fedora-release ; then  
1149       systype="LFD"
1150       alpine_PAM="yes"
1151       alpine_SYSTEM_PASSFILE=".alpine.passfile"
1152       if test -d /etc/pki/tls ; then  
1153         alpine_c_client_target="lfd"
1154       else
1155         alpine_c_client_target="lrh"
1156       fi
1157     elif test -f /etc/mandrake-release ; then
1158       systype="LMD"
1159       alpine_c_client_target="lmd"
1160       alpine_PAM="yes"
1161     elif test -f /etc/redhat-release -o -f /etc/redhat_version ; then
1162       systype="LRH"
1163       alpine_PAM="yes"
1164       alpine_SYSTEM_PASSFILE=".alpine.passfile"
1165       if test -d /etc/pki/tls ; then
1166         alpine_c_client_target="lr5"
1167       else
1168         alpine_c_client_target="lrh"
1169       fi
1170     elif test -f /etc/debian_release -o -f /etc/debian_version ; then
1171       if test -d /etc/osso-af-init ; then
1172         systype="LN8"
1173         alpine_c_client_target="ln8"
1174       else
1175         systype="DEB"
1176         alpine_c_client_target="ldb"
1177         alpine_PAM="yes"
1178         alpine_SYSTEM_PASSFILE=".pine-passfile"
1179       fi
1180     elif test -f /etc/SuSE-release -o -f /etc/SUSE-brand ; then
1181       systype="LSU"
1182       alpine_c_client_target="lsu"
1183       alpine_PAM="yes"
1184       alpine_SYSTEM_PASSFILE=".pinepw"
1185     else
1186       systype="LNX"
1187       if test -z "$alpine_c_client_bundled" ; then
1188         AC_CHECK_LIB(pam, am_start,
1189         [
1190           alpine_c_client_target="lnp"
1191           alpine_PAM="yes"
1192         ],
1193         [
1194           if test -f /etc/shadow ; then
1195             alpine_c_client_target="slx"
1196           else
1197             alpine_c_client_target="lnx"
1198           fi
1199         ])
1200       else
1201           if test -f /etc/shadow ; then
1202             alpine_c_client_target="slx"
1203           else
1204             alpine_c_client_target="lnx"
1205           fi
1206       fi
1207     fi
1208     ;;
1209   *-apple-darwin*)
1210     systype="OSX"
1211     alpine_path_delim="/"
1212     alpine_mode_readonly="(0600)"
1213     LIBS="$LIBS -framework Carbon -framework ApplicationServices -framework Security"
1214     AM_CFLAGS="$AM_CFLAGS -Dbsd"
1215     dnl SEE include/system.h
1216     AC_DEFINE([OSX_TARGET],[1],[OSX TARGET])
1217     case "$alpine_os_credential_cache" in
1218       no)
1219         ;;
1220       *)
1221         AC_DEFINE([APPLEKEYCHAIN], [1], [Use Apple OS X key chain for credential caching])
1222         alpine_cache_os_method="yes"
1223         ;;
1224     esac
1225     if test -z "$alpine_c_client_bundled" ; then
1226       AC_CHECK_LIB(pam, pam_start,
1227       [
1228         AC_CHECK_HEADER([security/pam_appl.h],
1229         [
1230           alpine_PAM="yes"
1231           alpine_c_client_target="oxs"
1232         ],
1233         [       AC_CHECK_HEADER([pam/pam_appl.h],
1234                 [
1235                    alpine_PAM="yes"
1236                    alpine_c_client_target="oxp" 
1237                 ],
1238                 [
1239                   alpine_PAM="none"
1240                   alpine_pam_none_reason="header files not found"
1241                 ])
1242         ])
1243       ],
1244       [
1245         alpine_c_client_target="osx"
1246       ])
1247     else
1248         alpine_c_client_target="osx"
1249     fi
1250     ;;
1251   *-*-solaris*)
1252     if test x$GCC = "xyes" ; then
1253       systype="GSO"
1254       alpine_c_client_target="gso"
1255       CFLAGS="$CFLAGS -D__USE_LEGACY_PROTOTYPES__"
1256     else
1257       systype="SOC"
1258       alpine_c_client_target="soc"
1259       AC_DEFINE([__EXTENSIONS__], [1], [Enable extended pthread features on Solaris])
1260     fi
1261     alpine_path_delim="/"
1262     alpine_mode_readonly="(0600)"
1263     dnl possible other OS's need this.
1264     dnl Use autoconf 2.61's AC_USE_SYSTEM_EXTENSIONS at some point
1265     ;;
1266   *-*-sunos4*)
1267     systype="SUN"
1268     alpine_path_delim="/"
1269     alpine_mode_readonly="(0600)"
1270     alpine_c_client_target="s40"
1271     ;;
1272   *-*-sco3.2v5*)
1273     if test x$GCC = "xyes" ; then
1274       systype="GO5"
1275       alpine_c_client_target="go5"
1276     else
1277       systype="SC5"
1278       alpine_c_client_target="sc5"
1279     fi
1280     alpine_path_delim="/"
1281     alpine_mode_readonly="(0600)"
1282     dnl possible other OS's need this.
1283     dnl Use autoconf 2.61's AC_USE_SYSTEM_EXTENSIONS at some point
1284     ;;
1285   *-next-*)
1286     systype="NXT"
1287     alpine_path_delim="/"
1288     alpine_mode_readonly="(0600)"
1289     alpine_c_client_target="nx3"
1290     ;;
1291   *-*-netbsd*)
1292     systype="NEB"
1293     alpine_path_delim="/"
1294     alpine_mode_readonly="(0600)"
1295     alpine_c_client_target="neb"
1296     ;;
1297   *-*-hpux9*)
1298     systype="HPP"
1299     alpine_path_delim="/"
1300     alpine_mode_readonly="(0600)"
1301     alpine_c_client_target="gh9"
1302     ;;
1303   *-*-dragonfly*)
1304     systype="DFB"
1305     alpine_path_delim="/"
1306     alpine_mode_readonly="(0600)"
1307     alpine_c_client_target="neb"
1308     ;;
1309   *-*-bsdi*)
1310     systype="BSI"
1311     alpine_path_delim="/"
1312     alpine_mode_readonly="(0600)"
1313     alpine_c_client_target="bsi"
1314     ;;
1315   *-*-freebsd*)
1316     systype="BSF"
1317     alpine_path_delim="/"
1318     alpine_mode_readonly="(0600)"
1319     alpine_c_client_target="bsf"
1320     LIBS="$LIBS $LIBINTL"
1321     ;;
1322   *-*-openbsd*)
1323     systype="BSO"
1324     alpine_path_delim="/"
1325     alpine_mode_readonly="(0600)"
1326     alpine_c_client_target="bso"
1327     LIBS="$LIBS $LIBINTL"
1328     ;;
1329   *-*-aix5*)
1330     systype="A52"
1331     alpine_path_delim="/"
1332     alpine_mode_readonly="(0600)"
1333     alpine_c_client_target="a52"
1334     ;;
1335   *-*-aix4*)
1336     systype="A41"
1337     alpine_path_delim="/"
1338     alpine_mode_readonly="(0600)"
1339     alpine_c_client_target="a41"
1340     ;;
1341   *-*-aix3*)
1342     systype="A32"
1343     alpine_path_delim="/"
1344     alpine_mode_readonly="(0600)"
1345     alpine_c_client_target="a32"
1346     ;;
1347   *-*UNIX_SV | *-*-sysv5UnixWare7* | *-*OpenUNIX*)
1348     systype="UW2"
1349     alpine_path_delim="/"
1350     alpine_mode_readonly="(0600)"
1351     alpine_c_client_target="uw2"
1352     ;;
1353   *-*-osf5*)
1354     systype="OSF"
1355     alpine_path_delim="/"
1356     alpine_mode_readonly="(0600)"
1357     alpine_c_client_target="osf"
1358     ;;
1359   *-*-cygwin)
1360     systype="CYG"
1361     alpine_path_delim="/"
1362     alpine_mode_readonly="(S_IREAD | S_IWRITE)"
1363     alpine_c_client_target="cyg"
1364     LIBS="$LIBS $LIBINTL"
1365     ;;
1366   windows* | *-*-pw32*)
1367     systype="WNT"
1368     alpine_path_delim="\\"
1369     alpine_mode_readonly="(S_IREAD | S_IWRITE)"
1370     alpine_c_client_target="wnt"
1371     AC_DEFINE([_WINDOWS], [1], [Windows is just too different])
1372     ;;
1373   *)
1374     AC_MSG_ERROR(Unrecognized system: $host)
1375     ;;
1376 esac
1378 dnl set PASSFILE?
1379 AC_ARG_WITH(passfile,
1380   AS_HELP_STRING([--with-passfile=FILENAME],[Password cache file (recommended when S/MIME is enabled and configured)]),
1381     [
1382       case "$withval" in
1383         no)
1384           ;;
1385         yes)
1386           ;;
1387         *)
1388           alpine_PASSFILE=$withval
1389           ;;
1390       esac
1391     ])
1394 if test -z "$alpine_PASSFILE" -a "alpine_cache_os_method" = "no" ; then
1395   if test -z "$alpine_SYSTEM_PASSFILE" ; then
1396      alpine_PASSFILE=".alpine.pwd"
1397   else
1398      alpine_PASSFILE="$alpine_SYSTEM_PASSFILE"
1399   fi
1400   AC_MSG_NOTICE([* * * Setting up $alpine_PASSFILE as default password file])
1403 if test -n "$alpine_PASSFILE" ; then
1404   case $alpine_os_credential_cache in
1405     no)
1406       ;;
1407     *)
1408       alpine_os_credential_cache="no"
1409       AC_MSG_NOTICE([--with-passfile definition overrides OS-Specific password caching])
1410       ;;
1411   esac
1412   AC_DEFINE_UNQUOTED([PASSFILE], "$alpine_PASSFILE", [Password cache file (recommended if S/MIME is enabled and configured)])
1415 dnl Without IPv6?
1416 AC_ARG_WITH(ipv6,
1417   AS_HELP_STRING([--without-ipv6],[Disable IPv6, primarily to work around resolver problems]),
1418   [ with_ipv6=$withval ])
1420 if test "x$with_ipv6" = "xno" ; then
1421   AC_MSG_NOTICE([Excluding IPv6 Support])
1422   c_client_specials="${c_client_specials}IP6=4 "
1423   c_client_ip6="true"
1424 else
1425   c_client_ip6="touch imap/ip6"
1429 dnl CHECK LIBRARIES
1431 if test x$enable_dmalloc = "xyes" ; then
1432   if test "x$with_pthread" = "xyes" ; then
1433     dmalloc_lib=dmallocth
1434   else
1435     dmalloc_lib=dmalloc
1436   fi
1438   AC_CHECK_LIB($dmalloc_lib,dmalloc_shutdown,,
1439     [
1440       AC_MSG_ERROR($dmalloc_lib requested, but -ldmalloc not found)
1441     ])
1444 dnl which terminal cabability database
1445 AC_CHECK_LIB(tinfo, setupterm,
1446   [
1447     alpine_termdata=info
1448     LIBS="$LIBS -ltinfo"
1449   ],
1450   [
1451     AC_CHECK_LIB(ncurses, setupterm,
1452       [
1453         alpine_termdata=info
1454         LIBS="$LIBS -lncurses"
1455       ],
1456       [
1457         AC_CHECK_LIB(curses, setupterm,
1458           [
1459             alpine_termdata=info
1460             LIBS="$LIBS -lcurses"
1461           ],
1462           [
1463             AC_CHECK_LIB(termlib, tgetent,
1464               [
1465                 alpine_termdata=cap
1466                 LIBS="$LIBS -ltermlib"
1467               ],
1468               [
1469                 AC_CHECK_LIB(termcap, tgetent,
1470                   [
1471                     alpine_termdata=cap
1472                     LIBS="$LIBS -ltermcap"
1473                   ],
1474                   [
1475                     AC_MSG_ERROR(Terminfo/termcap not found)
1476                   ])
1477               ])
1478           ])
1479       ])
1480   ])
1481 case $alpine_termdata in
1482   info)
1483     AC_DEFINE(HAS_TERMINFO, [1], [Define if systems uses terminfo terminal database])
1484     ;;
1485   cap)
1486     AC_DEFINE(HAS_TERMCAP, [1], [Define if systems uses termcap terminal database])
1487     ;;
1488 esac
1490 dnl check if user want us to add dl or ldl before we actually test for it
1491 alpine_dlopen="yes"
1492 AC_ARG_WITH(dlopen,
1493  AS_HELP_STRING([--without-dlopen],[Do not test for dlopen because this system does not need it]),
1494    [
1495      alpine_dlopen=$withval
1496    ])
1498 dnl is -ldl present? if so, add it
1499 if test "x$alpine_dlopen" != "xno" ; then
1500   AC_SEARCH_LIBS([dlopen], [dl dld],, [ alpine_DL="none" ])
1501   if test "x$alpine_DL" = "xnone" ; then
1502     AC_MSG_ERROR([No library containing dlopen found])
1503     exit 1      
1504   fi
1506 dnl Check if openssl = LibreSSL
1507 if test "x$alpine_SSLTYPE" != "xnone" ; then
1508   AC_MSG_CHECKING([if OpenSSL is LibreSSL])
1509   AC_TRY_COMPILE([
1510 #include <stdio.h>
1511 #include <stdlib.h>
1512 #if HAVE_STDINT_H
1513 #include <stdint.h>
1514 #endif /* HAVE_STDINT_H */
1515 #include <openssl/ssl.h>
1516         ],[
1517 #if OPENSSL_VERSION_NUMBER != 0x20000000L
1518 #error
1519 #endif
1520         ],
1521         [ AC_MSG_RESULT(yes)
1522           alpine_SSLPROVIDER="libressl"
1523         ],
1524         [ AC_MSG_RESULT(no)
1525         ],
1526         [ AC_MSG_WARN([cross compiling: not checking])])
1529 dnl Check Openssl/LibreSSL version first
1530 if test "x$alpine_SSLTYPE" != "xnone" -a "x$alpine_SSLPROVIDER" != "xlibressl" ; then
1531   AC_MSG_CHECKING([Openssl library version >= 1.0.0c])
1532   AC_TRY_COMPILE([
1533 #include <stdio.h>
1534 #include <stdlib.h>
1535 #if HAVE_STDINT_H
1536 #include <stdint.h>
1537 #endif /* HAVE_STDINT_H */
1538 #include <openssl/ssl.h>
1539         ],[
1540 #if OPENSSL_VERSION_NUMBER < 0x1000003fL
1541 #error
1542 #endif
1543         ],
1544         [ AC_MSG_RESULT(yes) 
1545           alpine_SSLPROVIDER="openssl"
1546         ],
1547         [ alpine_SSLTYPE="none" ],
1548         [ AC_MSG_WARN([cross compiling: not checking])])
1550     if test "x$alpine_SSLTYPE" = "xnone" ; then
1551         AC_MSG_ERROR([Install development/header files for your current version of openssl (minimum required version is 1.0.0c)])
1552         exit 1
1553     fi
1556 dnl Now check if we are working with version 1.1.0 of openssl
1557 if test "x$alpine_SSLTYPE" != "xnone" -a "x$alpine_SSLPROVIDER" != "xlibressl" ; then
1558   AC_MSG_CHECKING([Openssl library version >= 1.1.0])
1559   AC_TRY_COMPILE([
1560 #include <stdio.h>
1561 #include <stdlib.h>
1562 #if HAVE_STDINT_H
1563 #include <stdint.h>
1564 #endif /* HAVE_STDINT_H */
1565 #include <openssl/ssl.h>
1566         ],[
1567 #if OPENSSL_VERSION_NUMBER < 0x10100000L
1568 #error
1569 #endif
1570         ],
1571         [ AC_MSG_RESULT(yes)
1572           alpine_SSLVERSION="new"
1573           CFLAGS="$CFLAGS -DOPENSSL_1_1_0 -DOPENSSL_API_COMPAT=0x10100000L"
1574         ],
1575         [ AC_MSG_RESULT(no)
1576           alpine_SSLVERSION="old" ],
1577         [ AC_MSG_WARN([cross compiling: not checking])])
1580 dnl Crypto support is needed 
1581 if test "x$alpine_SSLTYPE" != "xnone" ; then
1582   if test "x$alpine_SSLVERSION" = "xold" ; then
1583      AC_SEARCH_LIBS(SSLeay,crypto,, [ alpine_CRYPTO="none" ])
1584   else
1585      AC_SEARCH_LIBS(OpenSSL_version_num,crypto,, [ alpine_CRYPTO="none" ])
1586   fi
1587   if test "x$alpine_CRYPTO" = "xnone" ; then
1588      AC_MSG_ERROR(crypto library NOT found)
1589      exit 1
1590   fi
1591   case $host in
1592     *-*-cygwin)
1593         AC_CHECK_HEADER(crypto.h, , [ alpine_CRYPTO_DEVEL="none" ])
1594         if test "x$alpine_CRYPTO_DEVEL" = "xnone" ; then
1595            AC_MSG_ERROR(crypto library file crypto.h NOT found. Install corresponding libcrypt-devel package)
1596            exit 1
1597         fi
1598         ;;
1599     *)  ;;
1600    esac
1603 dnl provide SSL support?
1604 if test "x$alpine_SSLTYPE" != "xnone" ; then
1605   if test "x$alpine_SSLVERSION" = "xold" ; then
1606      AC_SEARCH_LIBS(SSL_library_init,ssl,,[ alpine_SSLTYPE="none" ])
1607      if test "x$alpine_SSLTYPE" = "xnone" ; then
1608         AC_MSG_ERROR(No library containing SSL_library_init found in your path)
1609         exit 1
1610      fi
1611   else
1612      AC_SEARCH_LIBS(OPENSSL_init_ssl,ssl,, [ alpine_SSLTYPE="none" ])
1613      if test "x$aalpiLlpine_SSLTYPE" = "xnone" ; then
1614         AC_MSG_ERROR(No library containing OPENSSL_init_ssl found in your path)
1615         exit 1
1616      fi
1617   fi
1620 dnl provide LDAP support?
1621 if test "$alpine_with_ldap" = "yes" ; then
1622   alpine_has_ldap=
1623   AC_CHECK_LIB(lber, ber_alloc,
1624     [
1625       LIBS="$LIBS -llber"
1626     ])
1627   AC_SEARCH_LIBS(ldap_initialize,ldap,
1628     [
1629       alpine_has_ldap=yes
1630     ],
1631     [
1632       AC_SEARCH_LIBS(ldap_open,ldap,
1633         [
1634           alpine_has_ldap=yes
1635         ])
1636     ])
1638   if test "$alpine_has_ldap" = "yes" ; then
1639     AC_MSG_NOTICE([* * * Including LDAP Support])
1640     AC_DEFINE([ENABLE_LDAP], [], [Enable LDAP query support])
1641   fi
1644 dnl PAM support is needed to build c-client in some linux, and hence Alpine.
1645 if test -z "$alpine_c_client_bundled" ; then
1646   if test "x$alpine_PAM" != "xnone" ; then
1647      AC_SEARCH_LIBS(pam_start,pam,
1648       [
1649         LIBS="$LIBS -lpam"
1650         AC_CHECK_HEADER([security/pam_appl.h],
1651         [
1652           alpine_PAM="yes"
1653         ],
1654         dnl Only mac is incompatible, do not spread bad habits.
1655         [ AC_CHECK_HEADER([pam/pam_appl.h],
1656           [
1657                 alpine_PAM="yes"
1658                 if test "x$alpine_c_client_target" != "xoxp" ; then
1659                    alpine_PAM="none"
1660                    alpine_pam_none_reason="header files not in security/ directory"
1661                 fi
1662           ],
1663           [
1664                 alpine_PAM="none"
1665                 alpine_pam_none_reason="header files not found"
1666           ])
1667         ])
1668       ],
1669       [
1670         alpine_PAM="none"
1671         alpine_pam_none_reason="library files not found"
1672       ])
1673     if test -n "$alpine_pam_none_reason" ; then
1674        AC_MSG_ERROR(Trying to build bundled tools but could not find libpam. Install it first and try again, or do not use --with-bundled-tools)
1675     fi
1676   fi
1679 if test -n "$alpine_c_client_bundled" ; then
1680      AC_SEARCH_LIBS(crypt,crypt,,
1681       [
1682        AC_MSG_ERROR([crypt library not found.])
1683       ])
1686 AC_SUBST([C_CLIENT_BUNDLED], $alpine_c_client_bundled)
1688 dnl provide KRB5 support?
1689 if test "x$alpine_GSSTYPE" != "xnone" ; then
1690   OLDLIBS="$LIBS"
1691   AC_SEARCH_LIBS(gss_init_sec_context,gss gssapi gssapi_krb5,
1692     [
1693       dnl MIT-based?
1694       LIBS="$LIBS -lkrb5"
1695       AC_CHECK_HEADER([gssapi/gssapi_generic.h],,
1696         [
1697           if test ! -d /usr/kerberos/include ; then
1698             alpine_GSSTYPE="none"
1699             alpine_gss_none_reason="header files not found"
1700             LIBS="$OLDLIBS"
1701           fi
1702         ])
1703     ],
1704     [
1705       alpine_GSSTYPE="none"
1706       alpine_gss_none_reason="libraries not found"
1707     ])
1708   if test -n "$alpine_gss_none_reason" ; then
1709     AC_MSG_NOTICE([NOT including Kerberos Support: $alpine_gss_none_reason])
1710   fi
1713 dnl Include NTLM?
1714 AC_ARG_WITH(ntlm,
1715   AC_HELP_STRING([--without-ntlm],[Disable NTLM client support]),
1716   [with_ntlm=$withval])
1718 dnl provide NTLM support?
1719 if test "x$with_ntlm" = "xno" ; then
1720   alpine_NTLM="none"
1721 else
1722   alpine_NTLM=
1724   AC_SEARCH_LIBS(buildSmbNtlmAuthRequest, ntlm, 
1725      [
1726         AC_CHECK_HEADER([ntlm.h],
1727         [
1728             extra_auth_ntlm=ntl
1729             AC_MSG_NOTICE([including NTLM support])
1730         ],
1731         [
1732             alpine_NTLM="none"
1733             alpine_ntlm_none_reason="header file ntlm.h not found"
1734         ])
1735      ],
1736      [
1737         alpine_NTLM="none"
1738         alpine_ntlm_none_reason="ntlm library not found"
1739      ])
1740   if test -n "$alpine_ntlm_none_reason" ; then
1741      AC_MSG_NOTICE([NOT including NTLM Support: $alpine_ntlm_none_reason])
1742   fi
1745 dnl check for tcl libraries for Web Alpine (HACKY)
1746 if test -n "$WEB_BUILD" ; then
1747 TCL_VERSIONS_DOT="tcl8.6 tcl8.5 tcl8.4 tcl8.3"
1748 TCL_VERSIONS_NODOT="`echo ${TCL_VERSIONS_DOT} | ${SED} 's/\.//g'`"
1749 TCL_VERSIONS="${TCL_VERSIONS_DOT} ${TCL_VERSIONS_NODOT} tcl"
1750   dnl look for header file
1751   if test -n "$alpine_TCLINC" ; then
1752     AC_CHECK_HEADER($alpine_TCLINC/tcl.h,,
1753       [
1754         WEB_BUILD=
1755       ])
1756     if test -z "$WEB_BUILD" ; then
1757       AC_MSG_NOTICE([Tcl Include file NOT found])
1758     fi
1759   else
1760     AC_CHECK_HEADER(tcl.h,,
1761       [
1762         for base in /usr /usr/local ; do
1763          for dir in ${TCL_VERSIONS} ; do
1764           if test -f $base/include/$dir/tcl.h ; then
1765             CPPFLAGS="$CPPFLAGS -I$base/include/$dir"
1766             found=yes
1767             break
1768           fi
1769          done
1770          if test "x$found" = "xyes" ; then
1771             break
1772          fi
1773         done
1774         if test "$found" != "yes" ; then
1775             WEB_BUILD=
1776             AC_MSG_NOTICE([header file tcl.h NOT found: Web Alpine will not be built])
1777         fi
1778       ])
1779   fi
1780   if test -n "$WEB_BUILD" ; then
1781     AC_SEARCH_LIBS([Tcl_Eval],[$alpine_TCLLIB ${TCL_VERSIONS}],,
1782       [
1783         WEB_BUILD=
1784       ])
1785     fi
1788 dnl Local or supplied regex?
1789 if test "x$alpine_REGEX" != "xyes" ; then
1790   AC_SEARCH_LIBS([regcomp],posix regexp regex re,,
1791     [
1792       if test x$alpine_REGEX = "xno" ; then
1793         AC_MSG_ERROR(Unable to find system regex library)
1794       else
1795         alpine_REGEX=yes
1796       fi
1797     ])
1799 if test "x$alpine_REGEX" != "xyes" ; then
1800   AC_CHECK_HEADER([regex.h],,
1801     [
1802       if test x$alpine_REGEX = "xno" ; then
1803         AC_MSG_ERROR(Unable to find system regex include file)
1804       else
1805         alpine_REGEX=yes
1806       fi
1807     ])
1809 AC_DEFINE(HAVE_REGEX_H,1,[Regular expression header file exists])
1810 if test "x$alpine_REGEX" = "xyes" ; then
1811   CPPFLAGS="$CPPFLAGS -I${top_builddir}/regex"
1812   LDFLAGS="$LDFLAGS -L${top_builddir}/regex"
1813   REGEX_BUILD=regex
1814   REGEX_MAKEFILE="$REGEX_BUILD/Makefile"
1817 if test "x$with_pthread" != "xno" ; then
1818   AC_MSG_CHECKING([for pthread support])
1819   ACX_PTHREAD(
1820     [
1821       AC_MSG_RESULT([yes])
1822       case "$target" in
1823           *openbsd*)
1824             AC_MSG_NOTICE([WARNING: pthread support on OpenBSD is unstable!])
1825             AM_CFLAGS="$AM_CFLAGS -pthread"
1826             ;;
1827       esac
1828       LIBS="$PTHREAD_LIBS $LIBS"
1829       AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS"
1830       CC="$PTHREAD_CC"
1831       AC_DEFINE([HAVE_PTHREAD], [1], [System has pthread support])
1832     ],
1833     [
1834       AC_MSG_RESULT([no])
1835     ])
1837   AC_SEARCH_LIBS([nanosleep], [rt posix4],
1838     [
1839       AC_DEFINE([HAVE_NANOSLEEP], [1], [Define if system supports subsecond, non-alarm sleep])
1840     ])
1845 dnl CHECK HEADERS
1847 AC_HEADER_STDC
1848 AC_HEADER_DIRENT
1849 AC_HEADER_STAT
1850 AC_HEADER_SYS_WAIT
1851 AC_HEADER_TIME
1852 AC_HEADER_TIOCGWINSZ
1854 AC_CHECK_HEADERS([unistd.h])
1856 AC_CHECK_HEADERS([errno.h \
1857                   ctype.h \
1858                   fcntl.h \
1859                   signal.h \
1860                   setjmp.h \
1861                   memory.h \
1862                   sys/ioctl.h \
1863                   sys/param.h \
1864                   sys/socket.h \
1865                   sys/uio.h \
1866                   sys/un.h \
1867                   limits.h \
1868                   wchar.h \
1869                   sys/poll.h \
1870                   stropts.h \
1871                   netdb.h \
1872                   syslog.h \
1873                   sys/syslog.h \
1874                   locale.h \
1875                   langinfo.h \
1876                   utime.h \
1877                   sys/utime.h \
1878                   pthread.h \
1879                   pwd.h \
1880                   assert.h])
1882 dnl terminal line discipline?
1883 AC_CHECK_HEADER([termios.h],
1884   AC_DEFINE(HAS_TERMIOS, [1], [Define if systems uses termios terminal control]),
1885   [
1886     AC_CHECK_HEADER([termio.h],
1887       AC_DEFINE(HAS_TERMIO, [1], [Define if systems uses termio terminal control]),
1888       [
1889         AC_CHECK_HEADER([sgtty.h],
1890           AC_DEFINE(HAS_SGTTY, [1], [Define if systems uses old BSD-style terminal control]),
1891         [
1892           AC_MSG_ERROR(Unable to figure out terminal control method)
1893         ])
1894       ])
1895   ])
1898 dnl CHECK TYPEDEFS
1900 AC_DIAGNOSE([obsolete],[your code may safely assume C89 semantics that RETSIGTYPE is void.
1901 Remove this warning and the `AC_CACHE_CHECK' when you adjust the code.])dnl
1902 AC_CACHE_CHECK([return type of signal handlers],[ac_cv_type_signal],[AC_COMPILE_IFELSE(
1903 [AC_LANG_PROGRAM([#include <sys/types.h>
1904 #include <signal.h>
1906                  [return *(signal (0, 0)) (0) == 1;])],
1907                    [ac_cv_type_signal=int],
1908                    [ac_cv_type_signal=void])])
1909 AC_DEFINE_UNQUOTED([RETSIGTYPE],[$ac_cv_type_signal],[Define as the return type of signal handlers
1910                     (`int' or `void').])
1912 AC_TYPE_SIZE_T
1913 AC_TYPE_MODE_T
1914 AC_TYPE_PID_T
1915 AC_TYPE_UID_T
1916 AC_STRUCT_TM
1918 AC_CHECK_TYPES([union wait])
1920 AC_CHECK_HEADERS([stdint.h], [uint16=uint16_t], [
1921   AC_CHECK_HEADERS([inttypes.h], [uint16=uint16_t], [
1922     AC_CHECK_HEADERS([sys/types.h], [uint16=u_int16_t], [
1923       AC_CHECK_SIZEOF(unsigned short)
1924       if test $ac_cv_sizeof_unsigned_short -eq 2 ; then
1925         uint16="unsigned short"
1926       else
1927         AC_CHECK_SIZEOF(unsigned int)
1928         if $ac_cv_sizeof_unsigned_int -eq 2 ; then
1929           uint16="unsigned int"
1930         else
1931           AC_MSG_ERROR(Unable to determine 16 bit integer type)
1932         fi
1933       fi
1934     ])
1935   ])
1937 AC_DEFINE_UNQUOTED([UINT16], $uint16, [System defined unsigned 16 bit integer])
1939 AC_CHECK_HEADERS([stdint.h], [uint32=uint32_t], [
1940   AC_CHECK_HEADERS([inttypes.h], [uint32=uint32_t], [
1941     AC_CHECK_HEADERS([sys/types.h], [uint32=u_int32_t], [
1942       AC_CHECK_SIZEOF(unsigned int)
1943       if test $ac_cv_sizeof_unsigned_int -eq 4 ; then
1944         uint32="unsigned int"
1945       else
1946         AC_CHECK_SIZEOF(unsigned long)
1947         if $ac_cv_sizeof_unsigned_long -eq 4 ; then
1948           uint32="unsigned long"
1949         else
1950           AC_MSG_ERROR(Unable to determine 32 bit integer type)
1951         fi
1952       fi
1953     ])
1954   ])
1956 AC_DEFINE_UNQUOTED([UINT32], $uint32, [System defined unsigned 32 bit integer])
1958 if test -z "$SUINT32" ; then
1959    SUINT32="$uint32"
1962 AC_DEFINE_UNQUOTED([SUINT32], $SUINT32, [System defined for shorter than unsigned 32 bit integer])
1964 AC_CACHE_CHECK(argument pointer type of qsort compare function and base,
1965 ac_cv_func_qsort_argtype,
1966 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1967 #if     HAVE_STDLIB_H
1968 #include "stdlib.h"
1969 #endif
1971 extern void *base;
1972 extern sortf(const void *, const void *);
1973 int sortf(a, b)
1974   const void *a;
1975   const void *b; { return 0; }
1976 ]], [[
1977 qsort(base, 2, sizeof(char *), sortf);
1978 ]])],[ac_cv_func_qsort_argtype=void],[ac_cv_func_qsort_argtype=char])
1980 AC_DEFINE_UNQUOTED([qsort_t], $ac_cv_func_qsort_argtype, [qsort compare function argument type])
1982 dnl check for "struct passwd" ?
1984 AC_FUNC_SELECT_ARGTYPES
1986 AC_FUNC_STRCOLL
1988 dnl CHECK FOR LIBRARY FUNCTIONS
1990 AC_FUNC_FORK
1991 AC_CHECK_FUNCS([strchr \
1992                 memcpy \
1993                 strtol \
1994                 strtoul \
1995                 select \
1996                 poll \
1997                 qsort \
1998                 getuid \
1999                 getpwuid \
2000                 getpwnam \
2001                 gettimeofday \
2002                 tmpfile \
2003                 uname \
2004                 rename \
2005                 read \
2006                 signal \
2007                 setjmp \
2008                 chown \
2009                 wait4 \
2010                 waitpid \
2011                 wait \
2012                 srandom \
2013                 popen \
2014                 pclose \
2015                 fsync \
2016                 truncate \
2017                 listen \
2018                 wcwidth \
2019                 mbstowcs \
2020                 wcrtomb \
2021                 wctomb \
2022                 putenv \
2023                 setenv])
2025 AC_SEARCH_LIBS([gethostname],[nsl])
2027 AC_SEARCH_LIBS([socket],[socket],,
2028   [
2029     WEB_BUILD=
2030   ])
2032 AC_SEARCH_LIBS([bind],[bind],,
2033   [
2034     WEB_BUILD=
2035   ])
2037 dnl check for POSIX signal interface
2038 AC_CHECK_FUNCS([sigaction sigemptyset sigaddset sigprocmask],
2039   [
2040     AC_DEFINE([POSIX_SIGNALS], [], [Define if system supports POSIX signal interface])
2041   ],
2042   [
2043     AC_CHECK_FUNCS([sigset sigrelse],
2044       [
2045         AC_DEFINE([SYSV_SIGNALS], [], [Define if system supports SYSV signal interface])
2046       ])
2047   ])
2049 AC_SEARCH_LIBS([syslog], [bsd socket inet],
2050   [
2051     AC_DEFINE([HAVE_SYSLOG], [1], [Define if system supplies syslog() logging])
2052   ])
2055 dnl set pico newmail check directory
2056 if test -n "$alpine_with_local_maildir" ; then
2057     alpine_local_maildir=$alpine_with_local_maildir
2058 elif test -d /var/spool/mail ; then
2059     alpine_local_maildir="/var/spool/mail"
2060 elif test -d /var/mail ; then
2061     alpine_local_maildir="/var/mail"
2062 else
2063     alpine_local_maildir="/usr/spool/mail"
2066 dnl set c-client make target
2067 if test -n "$alpine_with_c_client_target" ; then
2068     alpine_c_client_target=$alpine_with_c_client_target
2071 AC_DEFINE_UNQUOTED([SYSTYPE], "$systype", [Pine-Centric Host Specifier])
2072 AC_DEFINE_UNQUOTED([C_FILESEP],'$alpine_path_delim',[File name separator as character constant])
2073 AC_DEFINE_UNQUOTED([S_FILESEP],"$alpine_path_delim",[File name separator as string constant])
2074 AC_DEFINE_UNQUOTED([MAILDIR],"$alpine_local_maildir",[Path to local inboxes for pico newmail check])
2075 AC_DEFINE_UNQUOTED([MODE_READONLY], $alpine_mode_readonly, [File mode used to set readonly access])
2076 AC_DEFINE_UNQUOTED([HTML_EXT],"html",[Default extension for html files])
2078 dnl c-client make particulars
2079 AC_SUBST([C_CLIENT_TARGET], $alpine_c_client_target)
2080 AC_SUBST([C_CLIENT_WITH_IPV6], $c_client_ip6)
2081 if test "x$alpine_SSLTYPE" = "xnone" ; then 
2082   AC_MSG_NOTICE([* * *  NOT Including SSL Support])
2083   c_client_specials="${c_client_specials}SSLTYPE=none "
2084 else
2085   dnl issue any warnings for common OpenSSL issues
2087   if test -n "$alpine_SSLCERTS" -a -d "$alpine_SSLCERTS" ; then
2088     certdir="$alpine_SSLCERTS"
2089   elif test -n "$alpine_SSLDIR" -a -d "${alpine_SSLDIR}/certs" ; then
2090     certdir="${alpine_SSLDIR}/certs"
2091   elif test -n "$alpine_SSLDIR" -a -d "${alpine_SSLDIR}/ssl/certs" ; then
2092     certdir="${alpine_SSLDIR}/ssl/certs"
2093   elif test -n "$alpine_SSLCERTS_ORIG" -a -d "$alpine_SSLCERTS_ORIG" ; then
2094     certdir="$alpine_SSLCERTS_ORIG"
2095   elif test -n "$alpine_SSLCERTS" ; then
2096     certdir="$alpine_SSLCERTS"
2097   else
2098     AC_MSG_NOTICE([SSL Problem: certificate directory not found])
2099   fi
2101   if test "x$with_smime" != "xno" ; then
2102     if test -n "$certdir" ; then
2103       AC_MSG_NOTICE([* * * S/MIME support enabled])
2104       AC_DEFINE([SMIME], [], [Enable S/MIME code])
2105       AC_DEFINE_UNQUOTED([SMIME_SSLCERTS],"$certdir",[Directory where S/MIME CACerts are located])
2106     fi
2107   fi
2110   SSL_CERT_LINK="no"
2111   if test -z "`ls ${certdir} | $EGREP '^@<:@0-9A-Fa-f@:>@{8}\.@<:@0-9@:>@'`" ; then
2112      SSL_BUNDLE_EXISTS="no"
2113      SSL_PEM="factory.pem ca-bundle.pem cert.pem ca-bundle.crt ca-root-nss.crt"
2114      for SSL_BUNDLE in $SSL_PEM
2115      do
2116        if test -f ${certdir}/${SSL_BUNDLE} ; then
2117           SSL_BUNDLE_EXISTS="yes"
2118        fi
2119      done
2120   else
2121      SSL_CERT_LINK="yes"
2122   fi
2124   if test "x$SSL_BUNDLE_EXISTS" = "xno" -a "x$SSL_CERT_LINK" = "xno" ; then
2125      AC_MSG_NOTICE([* * * No certificates found in "${certdir}".])
2126      AC_MSG_NOTICE([* * *   This might indicate that CA certs did not get properly])
2127      AC_MSG_NOTICE([* * *   installed.  If you get certificate validation failures])
2128      AC_MSG_NOTICE([* * *   in Alpine, this might be the reason for them.])
2129   fi
2131   if test -n "$alpine_SSLINCLUDE" ; then
2132     c_client_specials="${c_client_specials}SSLINCLUDE=$alpine_SSLINCLUDE "
2133   fi
2135   if test -n "$alpine_SSLLIB" ; then
2136     c_client_specials="${c_client_specials}SSLLIB=$alpine_SSLLIB "
2137   fi
2139   if test -n "$alpine_SSLDIR" ; then
2140     c_client_specials="${c_client_specials}SSLDIR=$alpine_SSLDIR "
2141   fi
2143   if test -n "$certdir" ; then
2144     c_client_specials="${c_client_specials}SSLCERTS=$certdir "
2145   fi
2147   if test -n "$alpine_SSLKEYS" ; then
2148       c_client_specials="${c_client_specials}SSLKEYS=$alpine_SSLKEYS "
2149   fi
2152 extra_auth_gss=
2153 if test "x$alpine_GSSTYPE" != "xnone" ; then
2154   extra_auth_gss=gss
2155   AC_MSG_NOTICE([* * * Including Kerberos5 functionality])
2158 extra_auth_ntlm=
2159 if test "x$alpine_NTLM" != "xnone" ; then
2160   extra_auth_ntlm=ntl
2161   AC_MSG_NOTICE([* * * Including NTLM Authenticator])
2164 if test -n "$CPPFLAGS" ; then
2165   alpine_c_client_cflags="$alpine_c_client_cflags ${CPPFLAGS}"
2167 if test -n "$CFLAGS" ; then
2168   alpine_c_client_cflags="$alpine_c_client_cflags ${CFLAGS}"
2171 if test -n "$alpine_c_client_cflags" ; then
2172   AC_SUBST(C_CLIENT_CFLAGS, EXTRACFLAGS=\"$alpine_c_client_cflags\")
2175 if test -n "$LDFLAGS" ; then
2176   alpine_c_client_ldflags="$alpine_c_client_ldflags ${LDFLAGS}"
2178 if test -n "$LIBS" ; then
2179   alpine_c_client_ldflags="$alpine_c_client_ldflags ${LIBS}"
2182 if test -n "$alpine_c_client_ldflags" ; then
2183   AC_SUBST(C_CLIENT_LDFLAGS, EXTRALDFLAGS=\"$alpine_c_client_ldflags\")
2186 if test -n "$alpine_c_client_gccoptlevel" ; then
2187   AC_SUBST(C_CLIENT_GCCOPTLEVEL, GCCOPTLEVEL=\"$alpine_c_client_gccoptlevel\")
2190 c_client_auths="$extra_auth_gss $extra_auth_ntlm"
2191 AC_SUBST([C_CLIENT_AUTHS], $c_client_auths)
2193 AC_SUBST([C_CLIENT_SPECIALS], $c_client_specials)
2195 dnl Deal with Web Alpine
2196 if test -z "$WEB_BUILD" ; then
2197   WEB_PUBCOOKIE_BUILD=
2198   AC_MSG_NOTICE([* * * TCL libraries could not be found.])
2199   AC_MSG_NOTICE([* * * WEB ALPINE COMPONENT WILL NOT BE BUILT.])
2200 else
2201   if test -n "$WEB_PUBCOOKIE_BUILD" ; then
2202     if test "x$alpine_GSSTYPE" = "xnone" ; then
2203       WEB_PUBCOOKIE_BUILD=
2204       AC_MSG_NOTICE([* * * Kerberos5 support not found.])
2205       AC_MSG_NOTICE([* * * WEB ALPINE PUBCOOKIE COMPONENT WILL NOT BE BUILT.])
2206     elif test -z "$WEB_BINDIR" ; then
2207       WEB_PUBCOOKIE_BUILD=
2208       AC_MSG_NOTICE([* * * Web Alpine binary directory not provided.])
2209         AC_MSG_ERROR([* * * --with-pubcookie requires --with-web-bin=PATH.
2210         Please re-run configure with these options:
2211         --with-pubcookie --with-web-bin=/usr/local/libexec/alpine/bin])
2212     else
2213       AC_DEFINE([PUBCOOKIE],[1],[Include support for UW Pubcookie Web Authentication])
2214       WEB_PUBCOOKIE_LIB=../pubcookie/libauthgssproxy.a
2215       WEB_PUBCOOKIE_LINK=gssapi_proxy.l
2216     fi
2217   fi
2220 AC_SUBST([REGEX_BUILD])
2222 AC_SUBST([WEB_BUILD])
2223 AC_SUBST([WEB_BINDIR])
2224 AC_SUBST([WEB_PUBCOOKIE_BUILD])
2225 AC_SUBST([WEB_PUBCOOKIE_LIB])
2226 AC_SUBST([WEB_PUBCOOKIE_LINK])
2228 AC_SUBST([AM_CFLAGS])
2229 AC_SUBST([AM_LDFLAGS])
2231 AC_CONFIG_FILES([m4/Makefile po/Makefile.in $REGEX_MAKEFILE \
2232           pith/osdep/Makefile pith/charconv/Makefile pith/Makefile \
2233           pico/osdep/Makefile pico/Makefile \
2234           alpine/osdep/Makefile alpine/Makefile \
2235           web/src/Makefile web/src/pubcookie/Makefile \
2236           web/src/alpined.d/Makefile \
2237           Makefile])
2238 AC_OUTPUT