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