* new version 2.20.17
[alpine.git] / configure.ac
blobfafa819c9cbb6f834112db5b4300fb69ece22bc8
1 dnl Process this file with autoconf to produce a configure script.
3 dnl /* ========================================================================
4 dnl  * Copyright 2013-2016 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:18 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
137 AC_ARG_WITH(localedir,
138   AS_HELP_STRING([--with-localedir=DIR],[Name of gettext locale directory]),
139   [
140     case $withval in
141       yes)
142         ;;
143       no)
144         ;;
145       *)
146         localedir=$withval
147         ;;
148     esac
149   ])
150 AC_SUBST(localedir, "[$localedir]")
152 # Setup OS-Specific features
153 case "$host" in
154   *darwin*)
155     dnl OS X Universal Binary Support
156     AC_ARG_ENABLE(osx-universal-binaries,
157       AS_HELP_STRING([--enable-osx-universal-binaries],[Produce universal binaries under OS X [[default=no]]]))
158     if test "x$enable_osx_universal_binaries" = "xyes" ; then
159       if test "x$enable_dependency_tracking" != xno ; then
160         AC_MSG_ERROR([--enable-osx-universal-binary requires --disable-dependency-tracking.
161 Please re-run configure with these options:
162     --disable-dependency-tracking --enable-osx-universal-binary])
163       fi
164       if [test -d /Developer/SDKs/MacOSX10.5.sdk] ; then
165         alpine_sysroot=/Developer/SDKs/MacOSX10.5.sdk
166       elif [test -d /Developer/SDKs/MacOSX10.4u.sdk] ; then
167         alpine_sysroot=/Developer/SDKs/MacOSX10.4u.sdk
168       else
169         AC_MSG_ERROR([No suitable MacOSX SDK found.  Make sure Xcode tools are installed])
170       fi
171       ub_cflags="-isysroot $alpine_sysroot -arch ppc -arch i386"
172       ub_ldflags="-Wl,-syslibroot,$alpine_sysroot -arch ppc -arch i386"
173       AM_CFLAGS="$AM_CFLAGS $ub_cflags"
174       AM_LDFLAGS="$AM_LDFLAGS $ub_ldflags"
175       alpine_c_client_cflags="$alpine_c_client_cflags $ub_cflags"
176       alpine_c_client_ldflags="$alpine_c_client_ldflags $ub_ldflags"
177     fi
178     ;;
179 esac
181 AC_ARG_WITH(include-path,
182   AS_HELP_STRING([--with-include-path=PATHS],[Colon-separated list of directories used for include file search]),
183   [
184     case $withval in
185       no)
186         ;;
187       yes)
188         ;;
189       *)
190         new_cppflags="-I`echo ${withval} | ${SED} 's/:/ -I/g'`"
191         CPPFLAGS="$CPPFLAGS ${new_cppflags}"
192         alpine_c_client_cflags="$alpine_c_client_cflags ${new_cppflags}"
193         ;;
194     esac
195   ])
197 AC_ARG_WITH(lib-path,
198   AS_HELP_STRING([--with-lib-path=PATHS],[Colon-separated list of directories used for library search]),
199   [
200     case $withval in
201       no)
202         ;;
203       yes)
204         ;;
205       *)
206         new_ldflags="-L`echo ${withval} | ${SED} 's/:/ -L/g'`"
207         LDFLAGS="$LDFLAGS $new_ldflags"
208         alpine_c_client_ldflags="$alpine_c_client_ldflags ${new_ldflags}"
209         ;;
210     esac
211   ])
213 AC_ARG_WITH(pubcookie,
214   AS_HELP_STRING([--with-pubcookie],[Include support for UW-Pubcookie Web Authentication]),
215   [
216     if test "x$withval" != "xno" ; then
217       WEB_PUBCOOKIE_BUILD=web/src/pubcookie
218     fi
219   ])
222 AC_ARG_WITH(web-bin,
223   AS_HELP_STRING([--with-web-bin=PATH],[Directory to hold Web Alpine component binary files]),
224   [
225     case "$withval" in
226       no)
227         ;;
228       yes)
229         ;;
230       *)
231         WEB_BINDIR=$withval
232         ;;
233     esac
234   ])
236 dnl disable debug, turned on by default
237 AC_MSG_CHECKING([option: debugging is enabled])
238 AC_ARG_ENABLE(debug, AS_HELP_STRING([--disable-debug],[Exclude debug messages from source]))
239 if test x$enable_debug != "xno" ; then
240   AM_CFLAGS="$AM_CFLAGS -g"
241   AC_DEFINE([DEBUG], [1], [Compile in debugging])
242   AC_DEFINE([DEBUGJOURNAL], [1], [Display debug messages in journal])
243   AC_MSG_RESULT([yes])
244 else
245 dnl ??? set AM_CFLAGS to optimize ???
246   AC_MSG_RESULT([no])
249 dnl disable optimization, on by default
250 AC_MSG_CHECKING([option: optimization is enabled])
251 AC_ARG_ENABLE(optimization, AS_HELP_STRING([--disable-optimization],[Exclude optimizing compiler flags]))
252 if test x$enable_optimization != "xno" ; then
253   AC_MSG_RESULT([yes])
254 else
255   CFLAGS="`echo $AM_CFLAGS | ${SED} 's/-O2//'`"
256   alpine_c_client_gccoptlevel="-O0"
257   AC_MSG_RESULT([no])
260 dnl disable mouse support
261 AC_MSG_CHECKING([option: mouse support enabled])
262 AC_ARG_ENABLE(mouse, AS_HELP_STRING([--disable-mouse],[Disable mouse support]))
263 if test x$enable_mouse != "xno" ; then
264   AC_DEFINE([MOUSE], [], [Compile in mouse support])
265   AC_MSG_RESULT([yes])
266 else
267    AC_MSG_RESULT([no])
270 dnl enable quotas
271 AC_MSG_CHECKING([option: quotas enabled])
272 AC_ARG_ENABLE(quotas, AS_HELP_STRING([--enable-quotas],[Enable disk quota checking on startup]))
273 if test x$enable_quotas = "xyes" ; then
274   AC_DEFINE([USE_QUOTAS], [], [Compile in quota check on startup])
275   AC_MSG_RESULT([yes])
276 else
277    AC_MSG_RESULT([no])
280 AC_MSG_CHECKING([option: From changing enabled])
281 AC_ARG_ENABLE(from_changing, AS_HELP_STRING([--disable-from-changing],[Disallow users changing From addresss]))
282 if test x$enable_from_changing != "xno" ; then
283   AC_MSG_RESULT([yes])
284 else
285   AC_DEFINE([NEVER_ALLOW_CHANGING_FROM], [], [Disallow users changing their From address])
286   AC_MSG_RESULT([no])
289 dnl enable background posting support
290 AC_MSG_CHECKING([option: background post enabled])
291 AC_ARG_ENABLE(background-post, AS_HELP_STRING([--disable-background-post],[Disable background posting]))
292 if test x$enable_background_post != "xno" ; then
293   AC_DEFINE([BACKGROUND_POST], [], [Enable background posting support])
294   AC_MSG_RESULT([yes])
295 else
296     AC_MSG_RESULT([no])
299 dnl enable keyboard locking support
300 AC_MSG_CHECKING([option: keyboard lock enabled])
301 AC_ARG_ENABLE(keyboard-lock, AS_HELP_STRING([--disable-keyboard-lock],[Disable keyboard locking]))
302 if test x$enable_keyboard_lock != "xno" ; then
303   AC_DEFINE([KEYBOARD_LOCK], [], [Enable keyboard lock support])
304   AC_MSG_RESULT([yes])
305 else
306   AC_MSG_RESULT([no])
309 dnl enable from encoding support
310 AC_MSG_CHECKING([option: from encoding enabled])
311 AC_ARG_ENABLE(from-encoding, AS_HELP_STRING([--enable-from-encoding],[Enable From encoding in sent messages]))
312 if test x$enable_from_encoding = "xyes" ; then
313   AC_DEFINE([ENCODE_FROMS], [], [Enable From address encoding in sent messages])
314   AC_MSG_RESULT([yes])
315 else
316   AC_MSG_RESULT([no])
319 dnl OPTION: name of local submission agent
320 dnl         Might not be sendmail, but it MUST speak SMTP on stdin/stdout
321 AC_ARG_WITH(smtp-msa,
322   AS_HELP_STRING([--with-smtp-msa=PATH],[Local Mail Submission Agent (sendmail)]),
323     [
324       case "$withval" in
325         no)
326           ;;
327         yes)
328           AC_PATH_PROG(SENDMAIL, sendmail, "", $PATH:/usr/sbin:/usr/lib)
329           ;;
330         *)
331           SENDMAIL=$withval
332           ;;
333       esac
334     ],
335     [
336           AC_PATH_PROG(SENDMAIL, sendmail, "", $PATH:/usr/sbin:/usr/lib)
337     ])
338 if test -n "$SENDMAIL" ; then
339     AC_DEFINE_UNQUOTED([SENDMAIL], "$SENDMAIL", [Local mail submission agent])
342 dnl OPTION: local msa arguments
343 smtp_msa_flags="-bs -odb -oem"
344 AC_ARG_WITH(smtp-msa-flags,
345   AS_HELP_STRING([--with-smtp-msa-flags=FLAGS],[MSA flags for SMTP on stdin/stdout (-bs -odb -oem)]),
346   [
347     if test "x$withval" != "xno" ; then
348       smtp_msa_flags=$withval
349     fi
350   ])
351 AC_DEFINE_UNQUOTED([SENDMAILFLAGS], "$smtp_msa_flags", [Local MSA flags for SMTP on stdin/stdout])
353 dnl OPTION: name of local news posting agent and flags
354 npa="inews"
355 AC_ARG_WITH(npa,
356   AS_HELP_STRING([--with-npa=PATH],[Posting agent when no nntp-servers defined (inews)]),
357     [
358       case "$withval" in
359         no)
360           ;;
361         yes)
362           AC_PATH_PROG(NPA_PROG, inews, "", $PATH:/usr/sbin:/usr/lib)
363           ;;
364         *)
365           NPA_PROG=$withval
366           ;;
367       esac
368     ],
369     [
370           AC_PATH_PROG(NPA_PROG, inews, "", $PATH:/usr/sbin:/usr/lib)
371     ])
373 npa_flags="-h"
374 AC_ARG_WITH(npa-flags,
375   AS_HELP_STRING([--with-npa-flags=FLAGS],[Flags to allow posting via local agent (-h)]),
376   [
377     if test "x$withval" != "xno" ; then
378       npa_flags=$withval
379     fi
380   ])
381 if test -n "$NPA_PROG" ; then
382   AC_DEFINE_UNQUOTED([SENDNEWS], "$NPA_PROG $npa_flags", [Posting agent to use when no nntp-servers defined])
385 dnl OPTION: password changing program
386 AC_ARG_WITH(password-prog,
387   AS_HELP_STRING([--with-password-prog=PATH],[Password change program (/bin/passwd)]),
388     [
389       case "$withval" in
390         no)
391           ;;
392         yes)
393           AC_PATH_PROG(PWPROG, passwd, "", $PATH:/usr/sbin:/usr/lib)
394           ;;
395         *)
396           AC_PATH_PROG(PWPROG, $withval, "", $PATH:/usr/sbin:/usr/lib)
397           ;;
398       esac
399     ],
400     [
401           AC_PATH_PROG(PWPROG, passwd, "", $PATH:/usr/sbin:/usr/lib)
402     ])
403 if test -n "$PWPROG" ; then
404     AC_DEFINE_UNQUOTED([PASSWD_PROG], "$PWPROG", [Program users use to change their password])
407 dnl OPTION: basic spell checking program
408 AC_ARG_WITH(simple-spellcheck,
409   AS_HELP_STRING([--with-simple-spellcheck=PROG],[Spellcheck program reads stdin, emits misspellings on stdout]),
410     [
411       if test "x$withval" != "xno" ; then
412         SPELLPROG=$withval
413       fi
414     ],
415     [
416       AC_CHECK_PROG([SPELLPROG], [hunspell], [hunspell], [])
417       if test -z "$SPELLPROG" ; then
418         AC_CHECK_PROG([SPELLPROG], [aspell], [aspell], [])
419         if test -z "$SPELLPROG" ; then
420           AC_CHECK_PROG([SPELLPROG], [ispell], [ispell], [])
421           if test -z "$SPELLPROG" ; then
422            SPELLPROG="spell"
423           fi
424         fi
425       fi
426     ])
428 if test "x$SPELLPROG" != "xno" ; then
429   AC_PATH_PROG(alpine_simple_spellcheck, $SPELLPROG)
430   if test -n "$alpine_simple_spellcheck" ; then
431     case "$SPELLPROG" in
432       hunspell)
433         alpine_simple_spellcheck="$alpine_simple_spellcheck -l"
434         ;;
435       aspell)
436         alpine_simple_spellcheck="$alpine_simple_spellcheck --dont-backup --mode=email list"
437         ;;
438       ispell)
439         alpine_simple_spellcheck="$alpine_simple_spellcheck -l"
440         ;;
441       *)
442         ;;
443     esac
444   fi
447 dnl OPTION: interactive spell checking program
448 AC_ARG_WITH(interactive-spellcheck,
449   AS_HELP_STRING([--with-interactive-spellcheck=PROG],[Interactive, filewise spell checker]),
450     [
451       if test "x$withval" != "xno" ; then
452         ISPELLPROG=$withval
453       fi
454     ],
455     [
456       AC_CHECK_PROG([ISPELLPROG], [hunspell], [hunspell], [])
457       if test -z "$ISPELLPROG" ; then
458         AC_CHECK_PROG([ISPELLPROG], [aspell], [aspell], [])
459         if test -z "$SPELLPROG" ; then
460           ISPELLPROG="ispell"
461         fi
462       fi
463     ])
465 if test "x$ISPELLPROG" != "xno" ; then
466   AC_PATH_PROG(alpine_interactive_spellcheck, $ISPELLPROG)
467   if test -n "$alpine_interactive_spellcheck" ; then
468     case "$ISPELLPROG" in
469       aspell)
470         alpine_interactive_spellcheck="$alpine_interactive_spellcheck --dont-backup --mode=email check"
471         ;;
472       *)
473         ;;
474     esac
475   fi
478 if test -n "$alpine_interactive_spellcheck" ; then
479     AC_DEFINE_UNQUOTED([DF_VAR_SPELLER], "$alpine_interactive_spellcheck", [Interactive, filewise spell checker])
482 if test -z "$alpine_simple_spellcheck" -a -n "$alpine_interactive_spellcheck" ; then
483   alpine_simple_spellcheck=test
485 AC_DEFINE_UNQUOTED([SPELLER], "$alpine_simple_spellcheck", [Simple spell checker: reads stdin, emits misspellings on stdout])
487 dnl OPTION: system-pinerc
488 dnl NOTE: historically we used /lib for the config dir.
489 dnl       don't ask, it was a long time ago. but, we can't
490 dnl       change it now without breaking compatibility
491 case "$prefix" in
492   NONE) dpv=/usr/local/lib/pine.conf ;;
493   *) dpv=${prefix}/lib/pine.conf ;;
494 esac
495 AC_ARG_WITH(system-pinerc,
496   AS_HELP_STRING([--with-system-pinerc=VALUE],[System pinerc (/usr/local/lib/pine.conf)]),
497     [
498       case "$withval" in
499         no)
500           ;;
501         yes)
502           ;;
503         *)
504           dpv=$withval
505           ;;
506       esac
507     ])
508 AC_DEFINE_UNQUOTED(SYSTEM_PINERC, "$dpv", [System pinerc])
510 dnl OPTION: system-fixed-pinerc
511 dnl NOTE: historically we used /lib for the config dir.
512 dnl       don't ask, it was a long time ago. but, we can't
513 dnl       change it now without breaking compatibility
514 case "$prefix" in
515   NONE) dpv=/usr/local/lib/pine.conf.fixed ;;
516   *) dpv=${prefix}/lib/pine.conf.fixed ;;
517 esac
518 AC_ARG_WITH(system-fixed-pinerc,
519   AS_HELP_STRING([--with-system-fixed-pinerc=VALUE],[System fixed pinerc (/usr/local/lib/pine.conf.fixed)]),
520     [
521       case "$withval" in
522         no)
523           ;;
524         yes)
525           ;;
526         *)
527           dpv=$withval
528           ;;
529       esac
530     ])
531 AC_DEFINE_UNQUOTED(SYSTEM_PINERC_FIXED, "$dpv", [System fixed pinerc])
533 dnl OPTION: local support information, file that contains information on
534 dnl         how to contact local support for Alpine.
535 dnl NOTE: historically we used /lib for the config dir.
536 dnl       don't ask, it was a long time ago. but, we can't
537 dnl       change it now without breaking compatibility
538 case "$prefix" in
539   NONE) dpv=/usr/local/lib/pine.info ;;
540   *) dpv=${prefix}/lib/pine.info ;;
541 esac
542 AC_ARG_WITH(local-support-info,
543   AS_HELP_STRING([--with-local-support-info=VALUE],[Local Support Info File (/usr/local/lib/pine.info)]),
544     [
545       case "$withval" in
546         no)
547           ;;
548         yes)
549           ;;
550         *)
551           dpv=$withval
552           ;;
553       esac
554     ])
555 AC_DEFINE_UNQUOTED(SYSTEM_PINE_INFO_PATH, "$dpv", [Local Support Info File])
557 dnl Function to simplify setting alpine/pico defaults
558 dnl usage: PINEVAR(configure-name, definition-name, definition-value, help)
559 AC_DEFUN([PINEVAR],
560   [
561     dpv=$3
562     AC_ARG_WITH($1,
563       AS_HELP_STRING([--with-$1=VALUE],[$4 ($3)]),
564       [
565         if test "x$withval" != "xno" ; then
566           dpv=$withval
567         fi
568       ])
569     AC_DEFINE_UNQUOTED($2, "$dpv", [Default configuration value])
570   ])
572 dnl Function to simplify setting pine/pico defaults
573 dnl usage: PINEVAR_UNQUOTED(configure-name, definition-name, definition-value, help)
574 AC_DEFUN([PINEVAR_UNQUOTED],
575   [
576     dpv=$3
577     AC_ARG_WITH($1,
578       AS_HELP_STRING([--with-$1=VALUE],[$4 ($3)]),
579       [
580         if test "x$withval" != "xno" ; then
581           dpv=$withval
582         fi
583       ])
584     AC_DEFINE_UNQUOTED($2, $dpv, [Default configuration value])
585   ])
587 PINEVAR(mailcheck-interval, DF_MAILCHECK, 150, [Specify default mail-check-interval])
588 PINEVAR_UNQUOTED(checkpoint-interval, CHECK_POINT_TIME, 420, [Specify default checkpoint-interval])
589 PINEVAR_UNQUOTED(checkpoint-frequency, CHECK_POINT_FREQ, 12, [State change count before checkpoint])
590 PINEVAR_UNQUOTED(display-rows, DEFAULT_LINES_ON_TERMINAL, 24, [Initial rows on display])
591 PINEVAR_UNQUOTED(display-columns, DEFAULT_COLUMNS_ON_TERMINAL, 80, [Initial columns on display])
592 PINEVAR_UNQUOTED(max-display-rows, MAX_SCREEN_ROWS, 200, [Maximum display rows])
593 PINEVAR_UNQUOTED(max-display-columns, MAX_SCREEN_COLS, 500, [Maximum display columns])
594 PINEVAR(fill-column, DF_FILLCOL, 74, [Default fill column])
595 PINEVAR_UNQUOTED(max_fill-column, MAX_FILLCOL, 80, [Maximum fill column])
596 PINEVAR_UNQUOTED(debug-level, DEFAULT_DEBUG, 2, [Specify default debug verbosity level])
597 PINEVAR_UNQUOTED(debug-files, NUMDEBUGFILES, 4, [Specify number of debug files])
598 PINEVAR(debug-file, DEBUGFILE, [.pine-debug], [Specify debug file name])
599 PINEVAR(forwarded-keyword, FORWARDED_FLAG, ["\$Forwarded"], [IMAP (c-client) keyword to store forwarded status])
600 PINEVAR(display-overlap, DF_OVERLAP, [2], [Lines preserved while paging])
601 PINEVAR(display-margin, DF_MARGIN, [0], [Lines visible while scrolling])
602 PINEVAR(default-fcc, DF_DEFAULT_FCC, [sent-mail], [Default sent mail folder])
603 PINEVAR(default-save-folder, DEFAULT_SAVE, [saved-messages], [Default save folder])
604 PINEVAR(default-legacy-postponed-folder, POSTPONED_MAIL, [postponed-mail], [Pre Pine 3.90 postponed folder])
605 PINEVAR(default-postponed-folder, POSTPONED_MSGS, [postponed-msgs], [Default postponed folder])
606 PINEVAR(default-trash-folder, TRASH_FOLDER, [Trash], [Default Trash folder for Web Alpine])
607 PINEVAR(default-interrupted-mail, INTERRUPTED_MAIL, [.pine-interrupted-mail], [Default folder for interrupted mail])
608 PINEVAR(default-dead-letter-folder, DEADLETTER, [dead.letter], [Default dead letter folder])
609 PINEVAR(default-mail-directory, DF_MAIL_DIRECTORY, [mail], [Default mail directory])
610 PINEVAR(default-inbox-name, INBOX_NAME, [INBOX], [Default inbox name])
611 PINEVAR(default-signature-file, DF_SIGNATURE_FILE, [.signature], [Default signature file])
612 PINEVAR(default-elm-style-save, DF_ELM_STYLE_SAVE, [no], [Default to Elm style save])
613 PINEVAR(default-header-in-reply, DF_HEADER_IN_REPLY, [no], [Include header in reply])
614 PINEVAR(default-old-style-reply, DF_OLD_STYLE_REPLY, [no], [Default to old style reply])
615 PINEVAR(default-use-only-domain-name, DF_USE_ONLY_DOMAIN_NAME, [no], [Default to using only the domain name])
616 PINEVAR(default-save-by-sender, DF_SAVE_BY_SENDER, [no], [Default to save by sender])
617 PINEVAR(default-sort-key, DF_SORT_KEY, [arrival], [Default sort key])
618 PINEVAR(default-addressbook-sort-rule, DF_AB_SORT_RULE, [fullname-with-lists-last], [Default addressbook sort rule])
619 PINEVAR(default-folder-sort-rule, DF_FLD_SORT_RULE, [alphabetical], [Default folder sort rule])
620 PINEVAR(default-saved-message-name-rule, DF_SAVED_MSG_NAME_RULE, [default-folder], [Default saved message name rule])
621 PINEVAR(default-fcc-rule, DF_FCC_RULE, [default-fcc], [Default fcc rule])
622 PINEVAR(default-standard-printer, DF_STANDARD_PRINTER, [lpr], [Default standard printern])
623 PINEVAR(default-ansi-printer, ANSI_PRINTER, [attached-to-ansi], [ANSI printer definition])
624 PINEVAR(default-addressbook, DF_ADDRESSBOOK, [.addressbook], [Default addressbook name])
625 PINEVAR(default-local-fullname, DF_LOCAL_FULLNAME, ["Local Support"], [Default local support fullname])
626 PINEVAR(default-local-address, DF_LOCAL_ADDRESS, [postmaster], [Default local support address])
627 PINEVAR(default-keyboard-lock-count, DF_KBLOCK_PASSWD_COUNT, [1], [Default keyboard lock count])
628 PINEVAR(default-remote-addressbook-history, DF_REMOTE_ABOOK_HISTORY, [3], [Default address book history count])
629 PINEVAR(smime-public-cert-directory, DF_PUBLICCERT_DIR, [.alpine-smime/public], [Default Public Cert Directory])
630 PINEVAR(smime-private-key-directory, DF_PRIVATEKEY_DIR, [.alpine-smime/private], [Default Private Key Directory])
631 PINEVAR(smime-cacert-directory, DF_CACERT_DIR, [.alpine-smime/ca], [Default Cert Authority Directory])
632 PINEVAR_UNQUOTED(default-printer, DF_DEFAULT_PRINTER, [ANSI_PRINTER], [Default printer])
634 AC_DEFINE_UNQUOTED([DF_PUBLIC_CONTAINER], "PublicContainer", [Name of default public container])
635 AC_DEFINE_UNQUOTED([DF_PRIVATE_CONTAINER], "PrivateContainer", [Name of default private container])
636 AC_DEFINE_UNQUOTED([DF_CA_CONTAINER], "CAContainer", [Name of default certificate authority container])
638 dnl set PASSFILE?
639 AC_ARG_WITH(passfile,
640   AS_HELP_STRING([--with-passfile=FILENAME],[Password cache file (recommended when S/MIME is enabled and configured)]),
641     [
642       case "$withval" in
643         no)
644           ;;
645         yes)
646           ;;
647         *)
648           alpine_PASSFILE=$withval
649           ;;
650       esac
651     ])
654 dnl os-specific credential cache?
655 AC_ARG_WITH(local-password-cache,
656  AS_HELP_STRING([--without-local-password-cache],[Disable OS-specific password cache, if supported]),
657    [
658      alpine_os_credential_cache=$withval
659    ])
661 dnl Particular os-specific credential cache?
662 AC_ARG_WITH(local-password-cache-method,
663  AS_HELP_STRING([--with-local-password-cache-method],[OS-specific credential cache (OSX=APPLEKEYCHAIN, Windows=WINCRED)]),
664    [
665      alpine_os_credential_cache_method=$withval
666    ])
668 if test -n "$alpine_PASSFILE" ; then
669   case $alpine_os_credential_cache in
670     no)
671       ;;
672     *)
673       alpine_os_credential_cache="no"
674       AC_MSG_NOTICE([--with-passfile definition overrides OS-Specific password caching])
675       ;;
676   esac
677   AC_DEFINE_UNQUOTED([PASSFILE], "$alpine_PASSFILE", [Password cache file (recommended if S/MIME is enabled and configured)])
680 dnl set DF_SSHPATH?
681 AC_ARG_WITH(default-sshpath,
682   AS_HELP_STRING([--with-default-sshpath=FILENAME],[set default value of ssh command path (defining should cause ssh to be preferred to rsh)]),
683     [
684       case "$withval" in
685         no)
686           ;;
687         yes)
688           ;;
689         *)
690           AC_DEFINE_UNQUOTED([DF_SSHPATH], "$withval", [set default value of ssh command path (defining should cause ssh to be preferred to rsh)])
691           ;;
692       esac
693     ])
695 dnl set DF_SSHCMD?
696 AC_ARG_WITH(default-sshcmd,
697   AS_HELP_STRING([--with-default-sshcmd=PERCENT_S_STRING],[set default value of ssh command string (usually "%s %s -l %s exec /etc/r%sd")]),
698     [
699       case "$withval" in
700         no)
701           ;;
702         yes)
703           ;;
704         *)
705           AC_DEFINE_UNQUOTED([DF_SSHCMD], "$withval", [set default value of ssh command string (usually "%s %s -l %s exec /etc/r%sd")])
706           ;;
707       esac
708     ])
710 dnl Include SSL?
711 dnl Set SSLDIR for c-client make
712 AC_ARG_WITH(ssl,
713   AS_HELP_STRING([--without-ssl],[Disable SSL support (OpenSSL)]),
714   [ with_ssl=$withval ])
716 if test "x$with_ssl" = "xno" ; then
717   alpine_SSLTYPE="none"
718 elif test -d /usr/local/ssl ; then
719 dnl When the system has openssl installed in its default location
720 dnl instead of the one used by the distribution assume that this
721 dnl is the one intended to be used.
722   alpine_SSLDIR="/usr/local/ssl"
723   alpine_SSLINCLUDE="$alpine_SSLDIR/include" 
724   alpine_SSLLIB="$alpine_SSLDIR/lib"
725 else
726   dnl preload c-client default locations/options
727   case $host in
728     *-linux-gnu*|*-k*bsd*-gnu*|*-gnu*)
729       if test -f /etc/fedora-release -o -f /etc/redhat-release -o -f /etc/redhat_version ; then  
730         alpine_SSLTYPE="nopwd"
731         if test -d /etc/pki/tls ; then  
732           alpine_SSLDIR="/etc/pki/tls"
733         else
734           alpine_SSLDIR="/usr/share/ssl"
735         fi
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/mandrake-release ; then
741         alpine_SSLDIR="/usr/lib/ssl"
742         alpine_SSLCERTS="$alpine_SSLDIR/certs" 
743         alpine_SSLKEYS="$alpine_SSLDIR/private"
744         alpine_SSLINCLUDE="/usr/include/openssl" 
745         alpine_SSLLIB="/usr/lib"
746       elif test -f /etc/SuSE-release ; then
747         alpine_SSLTYPE="nopwd"
748         alpine_SSLDIR="/etc/ssl"
749         alpine_SSLCERTS="$alpine_SSLDIR/certs"
750         alpine_SSLKEYS="$alpine_SSLDIR/private"
751         alpine_SSLINCLUDE="/usr/include/openssl" 
752         alpine_SSLLIB="/usr/lib"
753       elif test -d /etc/osso-af-init ; then
754         alpine_SSLTYPE="nopwd"
755         alpine_SSLDIR="/usr"
756         alpine_SSLCERTS="/usr/share/certs"
757         alpine_SSLINCLUDE="/usr/include/openssl"
758         alpine_SSLLIB="/usr/lib"
759       elif test -f /etc/debian_release -o -f /etc/debian_version ; then
760         if test ! -d /etc/osso-af-init ; then
761            alpine_SSLDIR="/etc/ssl"
762            alpine_SSLCERTS="$alpine_SSLDIR/certs"
763            alpine_SSLKEYS="$alpine_SSLDIR/private"
764            alpine_SSLINCLUDE="/usr/include/openssl" 
765            alpine_SSLLIB="/usr/lib"
766         fi
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
927 dnl Include Kerberos?
928 dnl Set GSSDIR for c-client make
929 AC_ARG_WITH(krb5,
930   AS_HELP_STRING([--without-krb5],[Disable Kerberos support]),
931   [ with_krb5=$withval ])
933 if test "x$with_krb5" = "xno" ; then
934   alpine_GSSTYPE="none"
935 else
936   alpine_GSSTYPE=
938   AC_ARG_WITH(krb5-dir,
939     AS_HELP_STRING([--with-krb5-dir=DIR],[Root of Kerberos lib/include path]),
940     [
941       if test "x$withval" != "xno" ; then
942         CPPFLAGS="$CPPFLAGS -I${withval}/include"
943         LDFLAGS="$LDFLAGS -L${withval}/lib"
944       fi
945     ])
947   AC_ARG_WITH(krb5-include-dir,
948     AS_HELP_STRING([--with-krb5-include-dir=DIR],[Kerberos include file path]),
949     [
950       if test "x$withval" != "xno" ; then
951         CPPFLAGS="$CPPFLAGS -I$withval"
952       fi
953     ])
955   AC_ARG_WITH(krb5-lib-dir,
956     AS_HELP_STRING([--with-krb5-lib-dir=DIR],[Kerberos library path]),
957     [
958       if test "x$withval" != "xno" ; then
959         LDFLAGS="$LDFLAGS -L$withval"
960       fi
961     ])
964 dnl Include LDAP?
965 AC_ARG_WITH(ldap,
966   AS_HELP_STRING([--without-ldap],[Disable LDAP query support]),
967   [ with_ldap=$withval ])
969 if test "x$with_ldap" = "xno" ; then
970   alpine_with_ldap=
971   AC_MSG_NOTICE([Excluding LDAP Support])
972 else
973   dnl Do stuff to figure out where OpenLDAP is
975   alpine_with_ldap=yes
976   AC_ARG_WITH(ldap-dir,
977     AS_HELP_STRING([--with-ldap-dir=DIR],[Root of LDAP lib/include path]),
978     [
979       if test "x$withval" != "xno" ; then 
980         CPPFLAGS="$CPPFLAGS -I${withval}/include"
981         LDFLAGS="$LDFLAGS -L${withval}/lib"
982       fi
983     ])
985   AC_ARG_WITH(ldap-include-dir,
986     AS_HELP_STRING([--with-ldap-include-dir=DIR],[Directory containing LDAP include files]),
987     [
988       if test "x$withval" != "xno" ; then
989         CPPFLAGS="$CPPFLAGS -I$withval"
990       fi
991     ])
993   AC_ARG_WITH(ldap-lib-dir,
994     AS_HELP_STRING([--with-ldap-lib-dir=DIR],[LDAP library path]),
995     [
996       if test "x$withval" != "xno" ; then
997         LDFLAGS="$LDFLAGS -L$withval"
998       fi
999     ])
1002 dnl Include SMIME?
1003 AC_ARG_WITH(smime,
1004   AS_HELP_STRING([--without-smime],[Disable S/MIME]),
1005   [ with_smime=$withval ])
1007 dnl Include TCL?
1008 AC_ARG_WITH(tcl,
1009   AS_HELP_STRING([--without-tcl],[Disable TCL, thus Web Alpine support]),
1010   [ with_tcl=$withval ])
1012 if test "x$with_tcl" = "xno" ; then
1013   WEB_BUILD=
1014   AC_MSG_NOTICE([Excluding TCL Support, and thus Web Alpine Support])
1015 else
1016   AC_ARG_WITH(tcl-lib,
1017     AS_HELP_STRING([--with-tcl-lib=LIBRARY],[Specific TCL Library, like \"tcl8.6\"]),
1018     [
1019       if test "x$withval" != "xno" ; then 
1020         alpine_TCLLIB=$withval
1021       fi
1022     ])
1023   AC_ARG_WITH(tcl-include,
1024     AS_HELP_STRING([--with-tcl-include=DIR],[Directory containing TCL include files]),
1025     [
1026       if test "x$withval" != "xno" ; then
1027         CPPFLAGS="$CPPFLAGS -I$withval"
1028         alpine_TCLINC=$withval
1029       fi
1030     ])
1033 AC_ARG_WITH(supplied-regex,
1034   AS_HELP_STRING([--with-supplied-regex],[Use regex library supplied with alpine]),
1035   [ alpine_REGEX=$withval ])
1037 AC_ARG_WITH(pthread,
1038   AS_HELP_STRING([--without-pthread],[Do NOT test for nor build with POSIX thread support]),
1039   [ with_pthread=$withval ])
1041 AC_ARG_WITH(system-mail-directory,
1042   AS_HELP_STRING([--with-system-mail-directory=DIR],[Directory where local mail is delivered]),
1043   [
1044     if test "x$withval" != "xno" ; then
1045       alpine_with_local_maildir="$withval"
1046     fi
1047   ])
1049 AC_ARG_WITH(c-client-target,
1050   AS_HELP_STRING([--with-c-client-target=TARGET],[IMAP build target (see imap/Makefile)]),
1051   [
1052     if test "x$withval" != "xno" ;then
1053       alpine_with_c_client_target="$withval"
1054     fi
1055   ])
1058 dnl Assume PAM is *not* required and only set the systems that need it.
1059 alpine_PAM="none"
1061 dnl HOST-OS SPECIFIC DEFINITIONS
1062 dnl Tests and assignments below are mostly to coax the appropriate
1063 dnl build from c-client.  Most of this will go away when c-client
1064 dnl adopts configure
1065 case "$host" in
1066   *-linux-gnu*|*-k*bsd*-gnu*|*-gnu*)
1067     alpine_path_delim="/"
1068     alpine_mode_readonly="(0600)"
1069     if test -f /etc/fedora-release ; then  
1070       systype="LFD"
1071       alpine_PAM="yes"
1072       if test -d /etc/pki/tls ; then  
1073         alpine_c_client_target="lfd"
1074       else
1075         alpine_c_client_target="lrh"
1076       fi
1077     elif test -f /etc/mandrake-release ; then
1078       systype="LMD"
1079       alpine_c_client_target="lmd"
1080       alpine_PAM="yes"
1081     elif test -f /etc/redhat-release -o -f /etc/redhat_version ; then
1082       systype="LRH"
1083       alpine_PAM="yes"
1084       if test -d /etc/pki/tls ; then  
1085         alpine_c_client_target="lr5"
1086       else
1087         alpine_c_client_target="lrh"
1088       fi
1089     elif test -f /etc/debian_release -o -f /etc/debian_version ; then
1090       if test -d /etc/osso-af-init ; then
1091         systype="LN8"
1092         alpine_c_client_target="ln8"
1093       else
1094         systype="DEB"
1095         alpine_c_client_target="ldb"
1096         alpine_PAM="yes"
1097       fi
1098     elif test -f /etc/SuSE-release ; then
1099       systype="LSU"
1100       alpine_c_client_target="lsu"
1101       alpine_PAM="yes"
1102     else
1103       systype="LNX"
1104       AC_CHECK_LIB(pam, pam_start,
1105         [
1106           alpine_c_client_target="lnp"
1107           alpine_PAM="yes"
1108         ],
1109         [
1110           if test -f /etc/shadow ; then
1111             alpine_c_client_target="slx"
1112           else
1113             alpine_c_client_target="lnx"
1114           fi
1115         ])
1116     fi
1117     ;;
1118   *-apple-darwin*)
1119     systype="OSX"
1120     alpine_path_delim="/"
1121     alpine_mode_readonly="(0600)"
1122     LIBS="$LIBS -framework Carbon -framework ApplicationServices -framework Security"
1123     AM_CFLAGS="$AM_CFLAGS -Dbsd"
1124     dnl SEE include/system.h
1125     AC_DEFINE([OSX_TARGET],[1],[OSX TARGET])
1126     case "$alpine_os_credential_cache" in
1127       no)
1128         ;;
1129       *)
1130         AC_DEFINE([APPLEKEYCHAIN], [1], [Use Apple OS X key chain for credential caching])
1131         ;;
1132     esac
1133     AC_CHECK_LIB(pam, pam_start,
1134       [
1135         AC_CHECK_HEADER([security/pam_appl.h],
1136         [
1137           alpine_PAM="yes"
1138           alpine_c_client_target="oxs"
1139         ],
1140         [       AC_CHECK_HEADER([pam/pam_appl.h],
1141                 [
1142                    alpine_PAM="yes"
1143                    alpine_c_client_target="oxp" 
1144                 ],
1145                 [
1146                   alpine_PAM="none"
1147                   alpine_pam_none_reason="header files not found"
1148                 ])
1149         ])
1150       ],
1151       [
1152         alpine_c_client_target="osx"
1153       ])
1154     ;;
1155   *-*-solaris*)
1156     if test x$GCC = "xyes" ; then
1157       systype="GSO"
1158       alpine_c_client_target="gso"
1159       CFLAGS="$CFLAGS -D__USE_LEGACY_PROTOTYPES__"
1160     else
1161       systype="SOC"
1162       alpine_c_client_target="soc"
1163       AC_DEFINE([__EXTENSIONS__], [1], [Enable extended pthread features on Solaris])
1164     fi
1165     alpine_path_delim="/"
1166     alpine_mode_readonly="(0600)"
1167     dnl possible other OS's need this.
1168     dnl Use autoconf 2.61's AC_USE_SYSTEM_EXTENSIONS at some point
1169     ;;
1170   *-*-sunos4*)
1171     systype="SUN"
1172     alpine_path_delim="/"
1173     alpine_mode_readonly="(0600)"
1174     alpine_c_client_target="s40"
1175     ;;
1176   *-*-sco3.2v5*)
1177     if test x$GCC = "xyes" ; then
1178       systype="GO5"
1179       alpine_c_client_target="go5"
1180     else
1181       systype="SC5"
1182       alpine_c_client_target="sc5"
1183     fi
1184     alpine_path_delim="/"
1185     alpine_mode_readonly="(0600)"
1186     dnl possible other OS's need this.
1187     dnl Use autoconf 2.61's AC_USE_SYSTEM_EXTENSIONS at some point
1188     ;;
1189   *-next-*)
1190     systype="NXT"
1191     alpine_path_delim="/"
1192     alpine_mode_readonly="(0600)"
1193     alpine_c_client_target="nx3"
1194     ;;
1195   *-*-netbsd*)
1196     systype="NEB"
1197     alpine_path_delim="/"
1198     alpine_mode_readonly="(0600)"
1199     alpine_c_client_target="neb"
1200     ;;
1201   *-*-dragonfly*)
1202     systype="DFB"
1203     alpine_path_delim="/"
1204     alpine_mode_readonly="(0600)"
1205     alpine_c_client_target="neb"
1206     ;;
1207   *-*-bsdi*)
1208     systype="BSI"
1209     alpine_path_delim="/"
1210     alpine_mode_readonly="(0600)"
1211     alpine_c_client_target="bsi"
1212     ;;
1213   *-*-freebsd*)
1214     systype="BSF"
1215     alpine_path_delim="/"
1216     alpine_mode_readonly="(0600)"
1217     alpine_c_client_target="bsf"
1218     LIBS="$LIBS $LIBINTL"
1219     ;;
1220   *-*-openbsd*)
1221     systype="BSO"
1222     alpine_path_delim="/"
1223     alpine_mode_readonly="(0600)"
1224     alpine_c_client_target="bso"
1225     LIBS="$LIBS $LIBINTL"
1226     ;;
1227   *-*-aix5*)
1228     systype="A52"
1229     alpine_path_delim="/"
1230     alpine_mode_readonly="(0600)"
1231     alpine_c_client_target="a52"
1232     ;;
1233   *-*-aix4*)
1234     systype="A41"
1235     alpine_path_delim="/"
1236     alpine_mode_readonly="(0600)"
1237     alpine_c_client_target="a41"
1238     ;;
1239   *-*-aix3*)
1240     systype="A32"
1241     alpine_path_delim="/"
1242     alpine_mode_readonly="(0600)"
1243     alpine_c_client_target="a32"
1244     ;;
1245   *-*UNIX_SV | *-*-sysv5UnixWare7* | *-*OpenUNIX*)
1246     systype="UW2"
1247     alpine_path_delim="/"
1248     alpine_mode_readonly="(0600)"
1249     alpine_c_client_target="uw2"
1250     ;;
1251   *-*-osf5*)
1252     systype="OSF"
1253     alpine_path_delim="/"
1254     alpine_mode_readonly="(0600)"
1255     alpine_c_client_target="osf"
1256     ;;
1257   *-*-cygwin)
1258     systype="CYG"
1259     alpine_path_delim="/"
1260     alpine_mode_readonly="(S_IREAD | S_IWRITE)"
1261     alpine_c_client_target="cyg"
1262     LIBS="$LIBS $LIBINTL"
1263     ;;
1264   windows* | *-*-pw32*)
1265     systype="WNT"
1266     alpine_path_delim="\\"
1267     alpine_mode_readonly="(S_IREAD | S_IWRITE)"
1268     alpine_c_client_target="wnt"
1269     AC_DEFINE([_WINDOWS], [1], [Windows is just too different])
1270     ;;
1271   *)
1272     AC_MSG_ERROR(Unrecognized system: $host)
1273     ;;
1274 esac
1276 dnl Without IPv6?
1277 AC_ARG_WITH(ipv6,
1278   AS_HELP_STRING([--without-ipv6],[Disable IPv6, primarily to work around resolver problems]),
1279   [ with_ipv6=$withval ])
1281 if test "x$with_ipv6" = "xno" ; then
1282   AC_MSG_NOTICE([Excluding IPv6 Support])
1283   c_client_specials="${c_client_specials}IP6=4 "
1284   c_client_ip6="true"
1285 else
1286   c_client_ip6="touch imap/ip6"
1290 dnl CHECK LIBRARIES
1292 if test x$enable_dmalloc = "xyes" ; then
1293   if test "x$with_pthread" = "xyes" ; then
1294     dmalloc_lib=dmallocth
1295   else
1296     dmalloc_lib=dmalloc
1297   fi
1299   AC_CHECK_LIB($dmalloc_lib,dmalloc_shutdown,,
1300     [
1301       AC_MSG_ERROR($dmalloc_lib requested, but -ldmalloc not found)
1302     ])
1305 dnl which terminal cabability database
1306 AC_CHECK_LIB(tinfo, setupterm,
1307   [
1308     alpine_termdata=info
1309     LIBS="$LIBS -ltinfo"
1310   ],
1311   [
1312     AC_CHECK_LIB(ncurses, setupterm,
1313       [
1314         alpine_termdata=info
1315         LIBS="$LIBS -lncurses"
1316       ],
1317       [
1318         AC_CHECK_LIB(curses, setupterm,
1319           [
1320             alpine_termdata=info
1321             LIBS="$LIBS -lcurses"
1322           ],
1323           [
1324             AC_CHECK_LIB(termlib, tgetent,
1325               [
1326                 alpine_termdata=cap
1327                 LIBS="$LIBS -ltermlib"
1328               ],
1329               [
1330                 AC_CHECK_LIB(termcap, tgetent,
1331                   [
1332                     alpine_termdata=cap
1333                     LIBS="$LIBS -ltermcap"
1334                   ],
1335                   [
1336                     AC_MSG_ERROR(Terminfo/termcap not found)
1337                   ])
1338               ])
1339           ])
1340       ])
1341   ])
1342 case $alpine_termdata in
1343   info)
1344     AC_DEFINE(HAS_TERMINFO, [1], [Define if systems uses terminfo terminal database])
1345     ;;
1346   cap)
1347     AC_DEFINE(HAS_TERMCAP, [1], [Define if systems uses termcap terminal database])
1348     ;;
1349 esac
1351 dnl is -ldl present? if so, add it
1352 AC_SEARCH_LIBS([dlopen], [dl dld],, [ alpine_DL="none" ])
1353 if test "x$alpine_DL" = "xnone" ; then
1354     AC_MSG_ERROR([No library containing dlopen found])
1355     exit 1      
1358 dnl Check if openssl = LibreSSL
1359 if test "x$alpine_SSLTYPE" != "xnone" ; then
1360   AC_MSG_CHECKING([if OpenSSL is LibreSSL])
1361   AC_RUN_IFELSE(
1362         [AC_LANG_SOURCE([[
1363 #include <stdio.h>
1364 #include <stdlib.h>
1365 #if HAVE_STDINT_H
1366 #include <stdint.h>
1367 #endif /* HAVE_STDINT_H */
1368 #include <openssl/ssl.h>
1369 int main(void) {
1371         if (LIBRESSL_VERSION_NUMBER >= 0x20000000L)
1372                 exit(0);
1374         exit(2);
1376         ]])],
1377         [ AC_MSG_RESULT(yes)
1378           alpine_SSLPROVIDER="libressl"
1379         ],
1380         [ AC_MSG_RESULT(no)
1381         ],
1382         [ AC_MSG_WARN([cross compiling: not checking])])
1385 dnl Check Openssl/LibreSSL version first
1386 if test "x$alpine_SSLTYPE" != "xnone" -a "x$alpine_SSLPROVIDER" != "xlibressl" ; then
1387   AC_MSG_CHECKING([Openssl library version >= 1.0.0c])
1388   AC_RUN_IFELSE(
1389         [AC_LANG_SOURCE([[
1390 #include <stdio.h>
1391 #include <stdlib.h>
1392 #if HAVE_STDINT_H
1393 #include <stdint.h>
1394 #endif /* HAVE_STDINT_H */
1395 #include <openssl/ssl.h>
1396 int main(void) {
1398         if (OPENSSL_VERSION_NUMBER >= 0x1000003fL)
1399                 exit(0);
1401         exit(2);
1403         ]])],
1404         [ AC_MSG_RESULT(yes) 
1405           alpine_SSLPROVIDER="openssl"
1406         ],
1407         [ alpine_SSLTYPE="none" ],
1408         [ AC_MSG_WARN([cross compiling: not checking])])
1410     if test "x$alpine_SSLTYPE" = "xnone" ; then
1411         AC_MSG_ERROR(Install openssl version >= 1.0.0c)
1412         exit 1
1413     fi
1416 dnl Now check if we are working with version 1.1.0 of openssl
1417 if test "x$alpine_SSLTYPE" != "xnone" -a "x$alpine_SSLPROVIDER" != "xlibressl" ; then
1418   AC_MSG_CHECKING([Openssl library version >= 1.1.0])
1419   AC_RUN_IFELSE(
1420         [AC_LANG_SOURCE([[
1421 #include <stdio.h>
1422 #include <stdlib.h>
1423 #if HAVE_STDINT_H
1424 #include <stdint.h>
1425 #endif /* HAVE_STDINT_H */
1426 #include <openssl/ssl.h>
1427 int main(void) {
1429         if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
1430                 exit(0);
1432         exit(2);
1434         ]])],
1435         [ AC_MSG_RESULT(yes)
1436           alpine_SSLVERSION="new"
1437           CFLAGS="$CFLAGS -DOPENSSL_1_1_0 -DOPENSSL_API_COMPAT=0x10100000L"
1438         ],
1439         [ AC_MSG_RESULT(no)
1440           alpine_SSLVERSION="old" ],
1441         [ AC_MSG_WARN([cross compiling: not checking])])
1444 dnl Crypto support is needed 
1445 if test "x$alpine_SSLTYPE" != "xnone" ; then
1446   if test "x$alpine_SSLVERSION" = "xold" -o "x$alpine_SSLPROVIDER" = "xlibressl" ; then
1447      AC_SEARCH_LIBS(SSLeay,crypto,, [ alpine_CRYPTO="none" ])
1448   else
1449      AC_SEARCH_LIBS(OpenSSL_version_num,crypto,, [ alpine_CRYPTO="none" ])
1450   fi
1451   if test "x$alpine_CRYPTO" = "xnone" ; then
1452      AC_MSG_ERROR(crypto library NOT found)
1453      exit 1
1454   fi
1457 if test "x$alpine_SSLTYPE" != "xnone" ; then
1458     if test "x$alpine_SSLVERSION" = "xold" -o "x$alpine_SSLPROVIDER" = "xlibressl" ; then
1459         AC_SEARCH_LIBS(TLSv1_2_client_method,ssl,
1460         [ alpine_c_client_cflags="$alpine_c_client_cflags -DTLSV1_2"
1461           AC_DEFINE([SSL_SUPPORTS_TLSV1_2], [1], [SSL Supports TLSV1.2])
1462         ])
1463     else
1464         AC_SEARCH_LIBS(TLS_client_method,ssl,, [ alpine_SSLTYPE="none"])
1465         AC_SEARCH_LIBS(DTLS_client_method,ssl,,[ alpine_SSLTYPE="none"])
1466         if test "x$alpine_SSLTYPE" != "xnone" ; then
1467           AC_DEFINE([SSL_SUPPORTS_TLSV1_2], [1], [SSL Supports TLSV1.2])
1468         fi
1469     fi
1472 dnl provide SSL support?
1473 if test "x$alpine_SSLTYPE" != "xnone" ; then
1474   if test "x$alpine_SSLVERSION" = "xold" -o "x$alpine_SSLPROVIDER" = "xlibressl" ; then
1475      AC_SEARCH_LIBS(SSL_library_init,ssl,,[ alpine_SSLTYPE="none" ])
1476      if test "x$alpine_SSLTYPE" = "xnone" ; then
1477         AC_MSG_ERROR(No library containing SSL_library_init found in your path)
1478         exit 1
1479      fi
1480   else
1481      AC_SEARCH_LIBS(OPENSSL_init_ssl,ssl,, [ alpine_SSLTYPE="none" ])
1482      if test "x$alpine_SSLTYPE" = "xnone" ; then
1483         AC_MSG_ERROR(No library containing OPENSSL_init_ssl found in your path)
1484         exit 1
1485      fi
1486   fi
1489 dnl provide LDAP support?
1490 if test "$alpine_with_ldap" = "yes" ; then
1491   alpine_has_ldap=
1492   AC_CHECK_LIB(lber, ber_alloc,
1493     [
1494       LIBS="$LIBS -llber"
1495     ])
1496   AC_SEARCH_LIBS(ldap_initialize,ldap,
1497     [
1498       alpine_has_ldap=yes
1499     ],
1500     [
1501       AC_SEARCH_LIBS(ldap_open,ldap,
1502         [
1503           alpine_has_ldap=yes
1504         ])
1505     ])
1507   if test "$alpine_has_ldap" = "yes" ; then
1508     AC_MSG_NOTICE([* * * Including LDAP Support])
1509     AC_DEFINE([ENABLE_LDAP], [], [Enable LDAP query support])
1510   fi
1513 dnl PAM support is needed to build c-client in some linux, and hence Alpine.
1514 if test "x$alpine_PAM" != "xnone" ; then
1515   AC_SEARCH_LIBS(pam_start,pam,
1516       [
1517         LIBS="$LIBS -lpam"
1518         AC_CHECK_HEADER([security/pam_appl.h],
1519         [
1520           alpine_PAM="yes"
1521         ],
1522         dnl Only mac is incompatible, do not spread bad habits.
1523         [ AC_CHECK_HEADER([pam/pam_appl.h],
1524           [
1525                 alpine_PAM="yes"
1526                 if test "x$alpine_c_client_target" != "xoxp" ; then
1527                    alpine_PAM="none"
1528                    alpine_pam_none_reason="header files not in security/ directory"
1529                 fi
1530           ],
1531           [
1532                 alpine_PAM="none"
1533                 alpine_pam_none_reason="header files not found"
1534           ])
1535         ])
1536       ],
1537       [
1538         alpine_PAM="none"
1539         alpine_pam_none_reason="library files not found"
1540       ])
1541     if test -n "$alpine_pam_none_reason" ; then
1542       AC_MSG_ERROR(No PAM support: $alpine_pam_none_reason)
1543   fi
1547 dnl provide KRB5 support?
1548 if test "x$alpine_GSSTYPE" != "xnone" ; then
1549   AC_SEARCH_LIBS(gss_init_sec_context,gss gssapi gssapi_krb5,
1550     [
1551       dnl MIT-based?
1552       LIBS="$LIBS -lkrb5"
1553       AC_CHECK_HEADER([gssapi/gssapi_generic.h],,
1554         [
1555           if test ! -d /usr/kerberos/include ; then
1556             alpine_GSSTYPE="none"
1557             alpine_gss_none_reason="header files not found"
1558           fi
1559         ])
1560     ],
1561     [
1562       alpine_GSSTYPE="none"
1563       alpine_gss_none_reason="libraries not found"
1564     ])
1565   if test -n "$alpine_gss_none_reason" ; then
1566     AC_MSG_NOTICE([NOT including Kerberos Support: $alpine_gss_none_reason])
1567   fi
1570 dnl check for tcl libraries for Web Alpine (HACKY)
1571 if test -n "$WEB_BUILD" ; then
1572 TCL_VERSIONS_DOT="tcl8.6 tcl8.5 tcl8.4 tcl8.3"
1573 TCL_VERSIONS_NODOT="`echo ${TCL_VERSIONS_DOT} | ${SED} 's/\.//g'`"
1574 TCL_VERSIONS="${TCL_VERSIONS_DOT} ${TCL_VERSIONS_NODOT} tcl"
1575   AC_SEARCH_LIBS([Tcl_Eval],[$alpine_TCLLIB ${TCL_VERSIONS}],,
1576     [
1577       WEB_BUILD=
1578     ])
1580   dnl look for header file
1581   if test -n "$alpine_TCLINC" ; then
1582     AC_CHECK_HEADER($alpine_TCLINC/tcl.h,,
1583       [
1584         WEB_BUILD=
1585       ])
1586     if test -z "$WEB_BUILD" ; then
1587       AC_MSG_NOTICE([Tcl Include file NOT found])
1588     fi
1589   else
1590     AC_CHECK_HEADER(tcl.h,,
1591       [
1592         for base in /usr /usr/local ; do
1593          for dir in ${TCL_VERSIONS} ; do
1594           AC_CHECK_FILE([$base/include/$dir/tcl.h],
1595             [
1596               found=yes
1597             ])
1598           if test "$found" = "yes" ; then
1599             CPPFLAGS="$CPPFLAGS -I$base/include/$dir"
1600             break
1601           fi
1602          done
1603          if test "$found" = "yes" ; then
1604             break
1605          fi
1606         done
1607         if test "$found" != "yes" ; then
1608             WEB_BUILD=
1609             AC_MSG_NOTICE([header file tcl.h NOT found: Web Alpine will not be built])
1610         fi
1611       ])
1612   fi
1615 dnl Local or supplied regex?
1616 if test "x$alpine_REGEX" != "xyes" ; then
1617   AC_SEARCH_LIBS([regcomp],posix regexp regex re,,
1618     [
1619       if test x$alpine_REGEX = "xno" ; then
1620         AC_MSG_ERROR(Unable to find system regex library)
1621       else
1622         alpine_REGEX=yes
1623       fi
1624     ])
1626 if test "x$alpine_REGEX" != "xyes" ; then
1627   AC_CHECK_HEADER([regex.h],,
1628     [
1629       if test x$alpine_REGEX = "xno" ; then
1630         AC_MSG_ERROR(Unable to find system regex include file)
1631       else
1632         alpine_REGEX=yes
1633       fi
1634     ])
1636 AC_DEFINE(HAVE_REGEX_H,1,[Regular expression header file exists])
1637 if test "x$alpine_REGEX" = "xyes" ; then
1638   CPPFLAGS="$CPPFLAGS -I${top_builddir}/regex"
1639   LDFLAGS="$LDFLAGS -L${top_builddir}/regex"
1640   REGEX_BUILD=regex
1641   REGEX_MAKEFILE="$REGEX_BUILD/Makefile"
1644 if test "x$with_pthread" != "xno" ; then
1645   AC_MSG_CHECKING([for pthread support])
1646   ACX_PTHREAD(
1647     [
1648       AC_MSG_RESULT([yes])
1649       case "$target" in
1650           *openbsd*)
1651             AC_MSG_NOTICE([WARNING: pthread support on OpenBSD is unstable!])
1652             AM_CFLAGS="$AM_CFLAGS -pthread"
1653             ;;
1654       esac
1655       LIBS="$PTHREAD_LIBS $LIBS"
1656       AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS"
1657       CC="$PTHREAD_CC"
1658       AC_DEFINE([HAVE_PTHREAD], [1], [System has pthread support])
1659     ],
1660     [
1661       AC_MSG_RESULT([no])
1662     ])
1664   AC_SEARCH_LIBS([nanosleep], [rt posix4],
1665     [
1666       AC_DEFINE([HAVE_NANOSLEEP], [1], [Define if system supports subsecond, non-alarm sleep])
1667     ])
1672 dnl CHECK HEADERS
1674 AC_HEADER_STDC
1675 AC_HEADER_DIRENT
1676 AC_HEADER_STAT
1677 AC_HEADER_SYS_WAIT
1678 AC_HEADER_TIME
1679 AC_HEADER_TIOCGWINSZ
1681 AC_CHECK_HEADERS([unistd.h])
1683 AC_CHECK_HEADERS([errno.h \
1684                   ctype.h \
1685                   fcntl.h \
1686                   signal.h \
1687                   setjmp.h \
1688                   memory.h \
1689                   sys/ioctl.h \
1690                   sys/param.h \
1691                   sys/socket.h \
1692                   sys/uio.h \
1693                   sys/un.h \
1694                   limits.h \
1695                   wchar.h \
1696                   sys/poll.h \
1697                   stropts.h \
1698                   netdb.h \
1699                   syslog.h \
1700                   sys/syslog.h \
1701                   locale.h \
1702                   langinfo.h \
1703                   utime.h \
1704                   sys/utime.h \
1705                   pthread.h \
1706                   pwd.h \
1707                   assert.h])
1709 dnl terminal line discipline?
1710 AC_CHECK_HEADER([termios.h],
1711   AC_DEFINE(HAS_TERMIOS, [1], [Define if systems uses termios terminal control]),
1712   [
1713     AC_CHECK_HEADER([termio.h],
1714       AC_DEFINE(HAS_TERMIO, [1], [Define if systems uses termio terminal control]),
1715       [
1716         AC_CHECK_HEADER([sgtty.h],
1717           AC_DEFINE(HAS_SGTTY, [1], [Define if systems uses old BSD-style terminal control]),
1718         [
1719           AC_MSG_ERROR(Unable to figure out terminal control method)
1720         ])
1721       ])
1722   ])
1725 dnl CHECK TYPEDEFS
1727 AC_DIAGNOSE([obsolete],[your code may safely assume C89 semantics that RETSIGTYPE is void.
1728 Remove this warning and the `AC_CACHE_CHECK' when you adjust the code.])dnl
1729 AC_CACHE_CHECK([return type of signal handlers],[ac_cv_type_signal],[AC_COMPILE_IFELSE(
1730 [AC_LANG_PROGRAM([#include <sys/types.h>
1731 #include <signal.h>
1733                  [return *(signal (0, 0)) (0) == 1;])],
1734                    [ac_cv_type_signal=int],
1735                    [ac_cv_type_signal=void])])
1736 AC_DEFINE_UNQUOTED([RETSIGTYPE],[$ac_cv_type_signal],[Define as the return type of signal handlers
1737                     (`int' or `void').])
1739 AC_TYPE_SIZE_T
1740 AC_TYPE_MODE_T
1741 AC_TYPE_PID_T
1742 AC_TYPE_UID_T
1743 AC_STRUCT_TM
1745 AC_CHECK_TYPES([union wait])
1747 AC_CHECK_HEADERS([stdint.h], [uint16=uint16_t], [
1748   AC_CHECK_HEADERS([inttypes.h], [uint16=uint16_t], [
1749     AC_CHECK_HEADERS([sys/types.h], [uint16=u_int16_t], [
1750       AC_CHECK_SIZEOF(unsigned short)
1751       if test $ac_cv_sizeof_unsigned_short -eq 2 ; then
1752         uint16="unsigned short"
1753       else
1754         AC_CHECK_SIZEOF(unsigned int)
1755         if $ac_cv_sizeof_unsigned_int -eq 2 ; then
1756           uint16="unsigned int"
1757         else
1758           AC_MSG_ERROR(Unable to determine 16 bit integer type)
1759         fi
1760       fi
1761     ])
1762   ])
1764 AC_DEFINE_UNQUOTED([UINT16], $uint16, [System defined unsigned 16 bit integer])
1766 AC_CHECK_HEADERS([stdint.h], [uint32=uint32_t], [
1767   AC_CHECK_HEADERS([inttypes.h], [uint32=uint32_t], [
1768     AC_CHECK_HEADERS([sys/types.h], [uint32=u_int32_t], [
1769       AC_CHECK_SIZEOF(unsigned int)
1770       if test $ac_cv_sizeof_unsigned_int -eq 4 ; then
1771         uint32="unsigned int"
1772       else
1773         AC_CHECK_SIZEOF(unsigned long)
1774         if $ac_cv_sizeof_unsigned_long -eq 4 ; then
1775           uint32="unsigned long"
1776         else
1777           AC_MSG_ERROR(Unable to determine 32 bit integer type)
1778         fi
1779       fi
1780     ])
1781   ])
1783 AC_DEFINE_UNQUOTED([UINT32], $uint32, [System defined unsigned 32 bit integer])
1785 AC_CACHE_CHECK(argument pointer type of qsort compare function and base,
1786 ac_cv_func_qsort_argtype,
1787 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1788 #if     HAVE_STDLIB_H
1789 #include "stdlib.h"
1790 #endif
1792 extern void *base;
1793 extern sortf(const void *, const void *);
1794 int sortf(a, b)
1795   const void *a;
1796   const void *b; { return 0; }
1797 ]], [[
1798 qsort(base, 2, sizeof(char *), sortf);
1799 ]])],[ac_cv_func_qsort_argtype=void],[ac_cv_func_qsort_argtype=char])
1801 AC_DEFINE_UNQUOTED([qsort_t], $ac_cv_func_qsort_argtype, [qsort compare function argument type])
1803 dnl check for "struct passwd" ?
1805 AC_FUNC_SELECT_ARGTYPES
1807 AC_FUNC_STRCOLL
1809 dnl CHECK FOR LIBRARY FUNCTIONS
1811 AC_FUNC_FORK
1812 AC_CHECK_FUNCS([strchr \
1813                 memcpy \
1814                 strtol \
1815                 strtoul \
1816                 select \
1817                 poll \
1818                 qsort \
1819                 getuid \
1820                 getpwuid \
1821                 getpwnam \
1822                 gettimeofday \
1823                 tmpfile \
1824                 uname \
1825                 rename \
1826                 read \
1827                 signal \
1828                 setjmp \
1829                 chown \
1830                 wait4 \
1831                 waitpid \
1832                 wait \
1833                 srandom \
1834                 popen \
1835                 pclose \
1836                 fsync \
1837                 truncate \
1838                 listen \
1839                 wcwidth \
1840                 mbstowcs \
1841                 wcrtomb \
1842                 putenv \
1843                 setenv])
1845 AC_SEARCH_LIBS([gethostname],[nsl])
1847 AC_SEARCH_LIBS([socket],[socket],,
1848   [
1849     WEB_BUILD=
1850   ])
1852 AC_SEARCH_LIBS([bind],[bind],,
1853   [
1854     WEB_BUILD=
1855   ])
1857 dnl check for POSIX signal interface
1858 AC_CHECK_FUNCS([sigaction sigemptyset sigaddset sigprocmask],
1859   [
1860     AC_DEFINE([POSIX_SIGNALS], [], [Define if system supports POSIX signal interface])
1861   ],
1862   [
1863     AC_CHECK_FUNCS([sigset sigrelse],
1864       [
1865         AC_DEFINE([SYSV_SIGNALS], [], [Define if system supports SYSV signal interface])
1866       ])
1867   ])
1869 AC_SEARCH_LIBS([syslog], [bsd socket inet],
1870   [
1871     AC_DEFINE([HAVE_SYSLOG], [1], [Define if system supplies syslog() logging])
1872   ])
1875 dnl set pico newmail check directory
1876 if test -n "$alpine_with_local_maildir" ; then
1877     alpine_local_maildir=$alpine_with_local_maildir
1878 elif test -d /var/spool/mail ; then
1879     alpine_local_maildir="/var/spool/mail"
1880 elif test -d /var/mail ; then
1881     alpine_local_maildir="/var/mail"
1882 else
1883     alpine_local_maildir="/usr/spool/mail"
1886 dnl set c-client make target
1887 if test -n "$alpine_with_c_client_target" ; then
1888     alpine_c_client_target=$alpine_with_c_client_target
1891 AC_DEFINE_UNQUOTED([SYSTYPE], "$systype", [Pine-Centric Host Specifier])
1892 AC_DEFINE_UNQUOTED([C_FILESEP],'$alpine_path_delim',[File name separator as character constant])
1893 AC_DEFINE_UNQUOTED([S_FILESEP],"$alpine_path_delim",[File name separator as string constant])
1894 AC_DEFINE_UNQUOTED([MAILDIR],"$alpine_local_maildir",[Path to local inboxes for pico newmail check])
1895 AC_DEFINE_UNQUOTED([MODE_READONLY], $alpine_mode_readonly, [File mode used to set readonly access])
1897 dnl c-client make particulars
1898 AC_SUBST([C_CLIENT_TARGET], $alpine_c_client_target)
1899 AC_SUBST([C_CLIENT_WITH_IPV6], $c_client_ip6)
1900 if test "x$alpine_SSLTYPE" = "xnone" ; then 
1901   AC_MSG_NOTICE([* * *  NOT Including SSL Support])
1902   c_client_specials="${c_client_specials}SSLTYPE=none "
1903 else
1904   dnl issue any warnings for common OpenSSL issues
1906   if test -n "$alpine_SSLCERTS" -a -d "$alpine_SSLCERTS" ; then
1907     certdir="$alpine_SSLCERTS"
1908   elif test -n "$alpine_SSLDIR" -a -d "${alpine_SSLDIR}/certs" ; then
1909     certdir="${alpine_SSLDIR}/certs"
1910   elif test -n "$alpine_SSLDIR" -a -d "${alpine_SSLDIR}/ssl/certs" ; then
1911     certdir="${alpine_SSLDIR}/ssl/certs"
1912   elif test -n "$alpine_SSLCERTS_ORIG" -a -d "$alpine_SSLCERTS_ORIG" ; then
1913     certdir="$alpine_SSLCERTS_ORIG"
1914   elif test -n "$alpine_SSLCERTS" ; then
1915     certdir="$alpine_SSLCERTS"
1916   else
1917     AC_MSG_NOTICE([SSL Problem: certificate directory not found])
1918   fi
1920   if test "x$with_smime" != "xno" ; then
1921     if test -n "$certdir" ; then
1922       AC_MSG_NOTICE([* * * S/MIME support enabled])
1923       AC_DEFINE([SMIME], [], [Enable S/MIME code])
1924       AC_DEFINE_UNQUOTED([SMIME_SSLCERTS],"$certdir",[Directory where S/MIME CACerts are located])
1925     fi
1926   fi
1929   SSL_CERT_LINK="no"
1930   if test -z "`ls ${certdir} | $EGREP '^@<:@0-9A-Fa-f@:>@{8}\.@<:@0-9@:>@'`" ; then
1931      SSL_BUNDLE_EXISTS="no"
1932      SSL_PEM="factory.pem ca-bundle.pem"
1933      for SSL_BUNDLE in $SSL_PEM
1934      do
1935        if test -f ${certdir}/${SSL_BUNDLE} ; then
1936           SSL_BUNDLE_EXISTS="yes"
1937        fi
1938      done
1939   else
1940      SSL_CERT_LINK="yes"
1941   fi
1943   if test "x$SSL_BUNDLE_EXISTS" = "xno" -a "x$SSL_CERT_LINK" = "xno" ; then
1944      AC_MSG_NOTICE([* * * No certificates found in "${certdir}".])
1945      AC_MSG_NOTICE([* * *   This might indicate that CA certs did not get properly])
1946      AC_MSG_NOTICE([* * *   installed.  If you get certificate validation failures])
1947      AC_MSG_NOTICE([* * *   in Alpine, this might be the reason for them.])
1948   fi
1950   if test -n "$alpine_SSLINCLUDE" ; then
1951     c_client_specials="${c_client_specials}SSLINCLUDE=$alpine_SSLINCLUDE "
1952   fi
1954   if test -n "$alpine_SSLLIB" ; then
1955     c_client_specials="${c_client_specials}SSLLIB=$alpine_SSLLIB "
1956   fi
1958   if test -n "$alpine_SSLDIR" ; then
1959     c_client_specials="${c_client_specials}SSLDIR=$alpine_SSLDIR "
1960   fi
1962   if test -n "$certdir" ; then
1963     c_client_specials="${c_client_specials}SSLCERTS=$certdir "
1964   fi
1966   if test -n "$alpine_SSLKEYS" ; then
1967       c_client_specials="${c_client_specials}SSLKEYS=$alpine_SSLKEYS "
1968   fi
1971 if test "x$alpine_GSSTYPE" != "xnone" ; then
1972   c_client_specials="${c_client_specials}EXTRAAUTHENTICATORS=gss "
1973   AC_MSG_NOTICE([* * * Including Kerberos5 functionality])
1976 if test -n "$CPPFLAGS" ; then
1977   alpine_c_client_cflags="$alpine_c_client_cflags ${CPPFLAGS}"
1979 if test -n "$CFLAGS" ; then
1980   alpine_c_client_cflags="$alpine_c_client_cflags ${CFLAGS}"
1983 if test -n "$alpine_c_client_cflags" ; then
1984   AC_SUBST(C_CLIENT_CFLAGS, EXTRACFLAGS=\"$alpine_c_client_cflags\")
1987 if test -n "$LDFLAGS" ; then
1988   alpine_c_client_ldflags="$alpine_c_client_ldflags ${LDFLAGS}"
1990 if test -n "$LIBS" ; then
1991   alpine_c_client_ldflags="$alpine_c_client_ldflags ${LIBS}"
1994 if test -n "$alpine_c_client_ldflags" ; then
1995   AC_SUBST(C_CLIENT_LDFLAGS, EXTRALDFLAGS=\"$alpine_c_client_ldflags\")
1998 if test -n "$alpine_c_client_gccoptlevel" ; then
1999   AC_SUBST(C_CLIENT_GCCOPTLEVEL, GCCOPTLEVEL=\"$alpine_c_client_gccoptlevel\")
2002 AC_SUBST([C_CLIENT_SPECIALS], $c_client_specials)
2004 dnl Deal with Web Alpine
2005 if test -z "$WEB_BUILD" ; then
2006   WEB_PUBCOOKIE_BUILD=
2007   AC_MSG_NOTICE([* * * TCL libraries could not be found.])
2008   AC_MSG_NOTICE([* * * WEB ALPINE COMPONENT WILL NOT BE BUILT.])
2009 else
2010   if test -n "$WEB_PUBCOOKIE_BUILD" ; then
2011     if test "x$alpine_GSSTYPE" = "xnone" ; then
2012       WEB_PUBCOOKIE_BUILD=
2013       AC_MSG_NOTICE([* * * Kerberos5 support not found.])
2014       AC_MSG_NOTICE([* * * WEB ALPINE PUBCOOKIE COMPONENT WILL NOT BE BUILT.])
2015     elif test -z "$WEB_BINDIR" ; then
2016       WEB_PUBCOOKIE_BUILD=
2017       AC_MSG_NOTICE([* * * Web Alpine binary directory not provided.])
2018         AC_MSG_ERROR([* * * --with-pubcookie requires --with-web-bin=PATH.
2019         Please re-run configure with these options:
2020         --with-pubcookie --with-web-bin=/usr/local/libexec/alpine/bin])
2021     else
2022       AC_DEFINE([PUBCOOKIE],[1],[Include support for UW Pubcookie Web Authentication])
2023       WEB_PUBCOOKIE_LIB=../pubcookie/libauthgssproxy.a
2024       WEB_PUBCOOKIE_LINK=gssapi_proxy.l
2025     fi
2026   fi
2029 AC_SUBST([REGEX_BUILD])
2031 AC_SUBST([WEB_BUILD])
2032 AC_SUBST([WEB_BINDIR])
2033 AC_SUBST([WEB_PUBCOOKIE_BUILD])
2034 AC_SUBST([WEB_PUBCOOKIE_LIB])
2035 AC_SUBST([WEB_PUBCOOKIE_LINK])
2037 AC_SUBST([AM_CFLAGS])
2038 AC_SUBST([AM_LDFLAGS])
2040 AC_CONFIG_FILES([m4/Makefile po/Makefile.in $REGEX_MAKEFILE \
2041           pith/osdep/Makefile pith/charconv/Makefile pith/Makefile \
2042           pico/osdep/Makefile pico/Makefile \
2043           alpine/osdep/Makefile alpine/Makefile \
2044           web/src/Makefile web/src/pubcookie/Makefile \
2045           web/src/alpined.d/Makefile \
2046           Makefile])
2047 AC_OUTPUT