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