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