"Fossies" - the Fresh Open Source Software Archive

Member "citadel/configure.ac" (5 Jun 2021, 26621 Bytes) of package /linux/www/citadel.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "configure.ac": 9.01_vs_902.

    1 dnl Process this file with autoconf to produce a configure script.
    2 AC_PREREQ(2.52)
    3 
    4 AC_INIT([Citadel],m4_esyscmd_s([grep REV_LEVEL citadel.h | sed 's/[^0-9]*//g']),[http://uncensored.citadel.org])
    5 
    6 AC_REVISION(m4_esyscmd_s([git log --pretty=%h | head -1]))
    7 
    8 AC_CONFIG_SRCDIR([citserver.c])
    9 AC_CONFIG_HEADER([sysdep.h])
   10 AC_CONFIG_MACRO_DIR([m4])
   11 AC_PREFIX_DEFAULT(/usr/local/citadel)
   12 if test "$prefix" = NONE; then
   13     AC_DEFINE_UNQUOTED(CTDLDIR, "$ac_default_prefix", [define this to the Citadel home directory])
   14     ssl_dir="$ac_default_prefix/keys"
   15     localedir=$ac_default_prefix
   16 else
   17     AC_DEFINE_UNQUOTED(CTDLDIR, "$prefix", [define this to the Citadel home directory])
   18     ssl_dir="$prefix/keys"
   19     localedir=$prefix
   20 fi
   21 
   22 dnl Make sure we see all GNU and Solaris extensions.
   23 AC_GNU_SOURCE
   24 
   25 
   26 dnl Checks for the Datadir
   27 AC_ARG_WITH(datadir, 
   28             [  --with-datadir          directory to store the databases under],
   29             [ if test "x$withval" != "xno" ; then
   30                           AC_DEFINE(HAVE_DATA_DIR,[],[use alternate database location?])
   31                           AC_DEFINE_UNQUOTED(DATA_DIR, "$withval",[define, if the user suplied a data-directory to use.])
   32                           MAKE_DATA_DIR=$withval
   33                           AC_SUBST(MAKE_DATA_DIR)
   34               fi
   35             ]
   36 )
   37 
   38 
   39 dnl Checks for the helpDatadir
   40 AC_ARG_WITH(helpdir, 
   41             [  --with-helpdir          directory to store the helpfiles under],
   42             [ if test "x$withval" != "xno" ; then
   43                           AC_DEFINE(HAVE_HELP_DIR,[],[use alternate database location?])
   44                           AC_DEFINE_UNQUOTED(HELP_DIR, "$withval",[define, if the user suplied a helpfile-directory to use.])
   45                           MAKE_HELP_DIR=$withval
   46                           AC_SUBST(MAKE_HELP_DIR)
   47               fi
   48             ]
   49 )
   50 
   51 dnl Checks for the Static Datadir
   52 AC_ARG_WITH(staticdatadir, 
   53             [  --with-staticdatadir    directory to store citadels system messages under],
   54             [ if test "x$withval" != "xno" ; then
   55                           AC_DEFINE(HAVE_STATICDATA_DIR, [], [should we activate an alternate static text location?])
   56                           AC_DEFINE_UNQUOTED(STATICDATA_DIR, "$withval", [where do we put our static text data?])
   57                           MAKE_STATICDATA_DIR=$withval
   58                           AC_SUBST(MAKE_STATICDATA_DIR)
   59               fi
   60             ]
   61 )
   62 
   63 
   64 dnl Checks for the SSLdir
   65 dnl this is a bit different than the rest, 
   66 dnl because of the citadel used to have a keys/ subdir.
   67 AC_ARG_WITH(ssldir, 
   68             [  --with-ssldir           directory to store the ssl certificates under],
   69             [ if test "x$withval" != "xno" ; then
   70                           
   71                           ssl_dir="$withval"
   72               fi
   73             AC_SUBST(MAKE_SSL_DIR)
   74             ]
   75 )
   76 AC_DEFINE_UNQUOTED(SSL_DIR, "$ssl_dir", [were should we put our keys?])
   77 
   78 
   79 dnl Checks for the spooldir
   80 AC_ARG_WITH(spooldir, 
   81             [  --with-spooldir         directory to keep queues under],
   82             [ if test "x$withval" != "xno" ; then
   83                         AC_DEFINE(HAVE_SPOOL_DIR, [], [enable alternate spool dir?])
   84                         AC_DEFINE_UNQUOTED(SPOOL_DIR,"$withval", [where do we place our spool dirs?])
   85                         MAKE_SPOOL_DIR=$withval
   86                         AC_SUBST(MAKE_SPOOL_DIR)
   87                fi
   88             ]
   89 )
   90 
   91 
   92 dnl Checks for the Configdir
   93 AC_ARG_WITH(sysconfdir, 
   94             [  --with-sysconfdir       directory to store the configs under],
   95             [ if test "x$withval" != "xno" ; then
   96                         AC_DEFINE(HAVE_ETC_DIR, [], [should we search our system config in an alternate place?])
   97                         AC_DEFINE_UNQUOTED(ETC_DIR, "$withval", [where to search our config files])
   98                         MAKE_ETC_DIR=$withval
   99                         AC_SUBST(MAKE_ETC_DIR)
  100               fi
  101             ]
  102 )
  103 
  104 dnl Checks for the Configdir
  105 AC_ARG_WITH(autosysconfdir, 
  106             [  --with-autosysconfdir     directory to store the automaticaly maintained configs under],
  107             [ if test "x$withval" != "xno" ; then
  108                         AC_DEFINE(HAVE_AUTO_ETC_DIR, [], [should we search our automatic config in an alternate place?])
  109                         AC_DEFINE_UNQUOTED(AUTO_ETC_DIR, "$withval", [where to search our automatic config files])
  110                         MAKE_AUTO_ETC_DIR=$withval
  111                         AC_SUBST(MAKE_AUTO_ETC_DIR)
  112               fi
  113             ]
  114 )
  115 
  116 dnl Checks for where to put our utilities
  117 AC_ARG_WITH(utility-bindir, 
  118             [  --with-utility-bindir   directory where to find helper binaries],
  119             [ if test "x$withval" != "xno" ; then
  120                         AC_DEFINE(HAVE_UTILBIN_DIR,[],[should we put our helper binaries to another location?])
  121                         AC_DEFINE_UNQUOTED(UTILBIN_DIR, "$withval", [were to put our helper programs])
  122                         MAKE_UTILBIN_DIR=$withval
  123                         AC_SUBST(MAKE_UTILBIN_DIR)
  124               fi
  125             ]
  126 )
  127 
  128 
  129 dnl Checks for the run-dir for the sockets
  130 AC_ARG_WITH(rundir, 
  131             [  --with-rundir           directory to place runtime files (UDS) to?],
  132             [ if test "x$withval" != "xno" ; then
  133                         AC_DEFINE(HAVE_RUN_DIR, [], [should we put our non volatile files elsewhere?])
  134                         AC_DEFINE_UNQUOTED(RUN_DIR, "$withval", [define, where the config should go in unix style])
  135                         MAKE_RUN_DIR=$withval
  136                         AC_SUBST(MAKE_RUN_DIR)
  137               fi
  138             ]
  139 )
  140 
  141 
  142 AC_ARG_WITH(docdir,
  143             [  --with-docdir           where to install the documentation. default: /usr/local/citadel/],
  144             [ if test "x$withval" != "xno" ; then
  145                     MAKE_DOC_DIR=$withval
  146                     AC_SUBST(MAKE_DOC_DIR)
  147               fi
  148             ]
  149 )
  150 
  151 dnl where to put the locale files
  152 AC_ARG_WITH(localedir, 
  153             [  --with-localedir          directory to put the locale files to],
  154             [ if test "x$withval" != "xno" ; then
  155                 localedir=$withval
  156               fi
  157             ]
  158 )
  159 AC_DEFINE_UNQUOTED(LOCALEDIR, "$localedir",[where to find our pot files])
  160 LOCALEDIR=$localedir
  161 AC_SUBST(LOCALEDIR)
  162 
  163 
  164 
  165 dnl Checks for the zlib compression library.
  166 saved_CFLAGS="$CFLAGS"
  167 CFLAGS="$CFLAGS $SERVER_LIBS"
  168 AC_CHECK_HEADER(zlib.h,
  169     [AC_CHECK_LIB(z, zlibVersion,
  170         [
  171             LIBS="-lz $LIBS $SERVER_LIBS"
  172         ],
  173         [
  174             AC_MSG_ERROR(zlib was not found or is not usable.  Please install zlib.)
  175         ]
  176     ,
  177     )],
  178     [
  179         AC_MSG_ERROR(zlib.h was not found or is not usable.  Please install zlib.)
  180     ]
  181 )
  182 CFLAGS="$saved_CFLAGS"
  183 
  184 dnl Here is the check for a libc integrated iconv
  185 AC_ARG_ENABLE(iconv,
  186     [  --disable-iconv         do not use iconv charset conversion],
  187     ok_iconv=no, ok_iconv=yes)
  188 
  189 AC_MSG_CHECKING(Checking to see if your system supports iconv)
  190 AC_TRY_RUN([
  191     #include <iconv.h>
  192     main() {
  193         iconv_t ic = (iconv_t)(-1) ;
  194         ic = iconv_open("UTF-8", "us-ascii");
  195         iconv_close(ic);
  196         exit(0);
  197     }
  198  ],
  199         [
  200           ok_iconv=yes
  201           AC_MSG_RESULT([yes])
  202         ],
  203         [ 
  204           ok_iconv=no
  205           AC_MSG_RESULT([no])
  206         ]
  207 )
  208 
  209 dnl Check for iconv in external libiconv
  210 if test "$ok_iconv" = no; then
  211     AC_MSG_CHECKING(Checking for an external libiconv)
  212     OLD_LDFLAGS="$LDFLAGS"
  213     LDFLAGS="$LDFLAGS -liconv"
  214     AC_TRY_RUN([
  215             #include <iconv.h>
  216             main() {
  217                 iconv_t ic = (iconv_t)(-1) ;
  218                 ic = iconv_open("UTF-8", "us-ascii");
  219                 iconv_close(ic);
  220             }
  221         ],
  222             [
  223               ok_iconv=yes
  224               AC_MSG_RESULT([yes])
  225             ],
  226             [ 
  227               ok_iconv=no
  228               LDFLAGS="$OLD_LDFLAGS"
  229               AC_MSG_RESULT([no])
  230             ]
  231         )
  232 fi
  233 
  234 if test "$ok_iconv" != "no"; then
  235     AC_MSG_RESULT(Citadel will be built with character set conversion.)
  236     AC_DEFINE(HAVE_ICONV,[],[whether we have iconv for charset conversion])
  237 else
  238     AC_MSG_RESULT(Citadel will be built without character set conversion.)
  239 fi
  240 
  241 AC_CHECK_LIB(intl, libintl_bindtextdomain, [LDFLAGS="$LDFLAGS -lintl"])
  242 
  243 AC_ARG_ENABLE(pie, [  --enable-pie            build position-independent executables])
  244 
  245 AC_ARG_WITH(pam, [  --with-pam              use PAM if present (see PAM.txt before you try this)])
  246 AC_ARG_WITH(kthread, [  --with-kthread          use kernel threads (on FreeBSD) (not recommended yet)])
  247 AC_ARG_WITH(db, [  --with-db@<:@=DIR@:>@         use Berkeley DB 3.x @<:@DIR=/usr/local/BerkeleyDB.3.@<:@123@:>@@:>@])
  248 AC_ARG_WITH(ssl,
  249     [  --with-ssl=PATH         Specify path to OpenSSL installation ],
  250     [
  251         if test "x$withval" != "xno" ; then
  252             tryssldir=$withval
  253         fi
  254     ]
  255 )
  256 
  257 if test "x$with_db" != xno -a "x$with_db" != xyes -a "$with_db"; then
  258     db_dir="$with_db"
  259     with_db=yes
  260 else
  261     test -f /usr/local/lib/libdb.a -o -f /usr/local/lib/libdb.so \
  262       && db_dir=/usr/local
  263 fi
  264 
  265 AC_CANONICAL_HOST
  266 PTHREAD_DEFS=-D_REENTRANT
  267 AC_MSG_CHECKING([how to compile with POSIX threads])
  268 case "$host" in
  269     dnl BSDI 3.0 wants relocatable object modules instead of shared libs
  270     dnl for dlopen(), and has a wrapper script to link with shared libs.
  271     dnl Also has stupid non-reentrant gethostbyaddr() and friends.
  272     *-*-bsdi[123]*)
  273         test -z "$CC" -a -x /usr/bin/shlicc2 && CC=shlicc2
  274         AC_DEFINE(HAVE_NONREENTRANT_NETDB,[], [define this if the OS has broken non-reentrant gethostby{name,addr}() ])
  275         AC_MSG_RESULT([Old BSDI])
  276     ;;
  277     *-*-bsdi*)
  278         AC_DEFINE(HAVE_NONREENTRANT_NETDB, [], [define this if the OS has broken non-reentrant gethostby{name,addr}() ])
  279         AC_MSG_RESULT([BSD/OS])
  280     ;;
  281     dnl Curses support on Mac OS X is kind of screwed at the moment.
  282     dnl TCP buffering isn't ideal under OS X. This define should also be
  283     dnl checked in other cases of OS X-Linux differences.
  284     *-*-darwin*)
  285         AC_DEFINE(HAVE_DARWIN, [], [define if using OS X/Darwin])
  286         AC_MSG_RESULT([Mac OS X])
  287     ;;
  288     dnl Digital Unix has an odd way to build for pthreads, and we can't
  289     dnl build pthreads programs with gcc due to header problems.
  290     alpha*-dec-osf*)
  291         test -z "$CC" && CC=cc
  292         LIBS="-lpthread -lexc $LIBS"
  293         check_pthread=no
  294         AC_MSG_RESULT([Tru64 or Digital UNIX])
  295     ;;
  296     dnl FreeBSD is similar to Digital UNIX with DEC C, which has a -pthread flag:
  297     *-*-freebsd*)
  298         if test "$with_kthread" = yes; then
  299             LIBS="-kthread $LIBS"
  300         else
  301             LIBS="-pthread $LIBS"
  302         fi
  303         check_pthread=no
  304         PTHREAD_DEFS=-D_THREAD_SAFE
  305         AC_MSG_RESULT([FreeBSD])
  306     ;;
  307     *-*-openbsd*)
  308         LIBS="-pthread $LIBS"
  309         check_pthread=no
  310         PTHREAD_DEFS=-pthread
  311         AC_MSG_RESULT([OpenBSD])
  312     ;;
  313     *-*-linux*)
  314         PTHREAD_DEFS="-D_REENTRANT -pthread"
  315         AC_MSG_RESULT([Linux])
  316     ;;
  317     *-*-solaris*)
  318         PTHREAD_DEFS="-D_REENTRANT -D_PTHREADS"
  319         AC_MSG_RESULT([Solaris])
  320     ;;
  321     *-*-cygwin*)
  322         SERVER_LDFLAGS="-Wl,-subsystem,windows"
  323         AC_MSG_RESULT([Cygwin])
  324     ;;
  325     *)
  326         AC_MSG_RESULT([default])
  327     ;;
  328 esac
  329 dnl DEFS="$DEFS $PTHREAD_DEFS"
  330 
  331 
  332 dnl Checks for programs.
  333 AC_PROG_CC
  334 
  335 
  336 
  337 dnl Set up system-dependent compiler flags.
  338 if test "$GCC" = yes; then
  339     if test "$CC" = icc; then
  340         CFLAGS="$CFLAGS -w1"
  341     else
  342         case "$host" in
  343             *-*-solaris*|alpha*-dec-osf*)
  344                 CFLAGS="$CFLAGS -Wall -Wcast-qual -Wcast-align -Wno-char-subscripts $PTHREAD_DEFS"
  345             ;;
  346             *)
  347             CFLAGS="$CFLAGS -Wall -Wcast-qual -Wcast-align -Wstrict-prototypes -Wno-strict-aliasing $PTHREAD_DEFS"
  348             ;;
  349         esac
  350     fi
  351 fi
  352 
  353 if test "x$enable_pie" = xyes; then
  354     save_CFLAGS="$CFLAGS"
  355     save_LDFLAGS="$LDFLAGS"
  356     CFLAGS="$CFLAGS -fpie"
  357     LDFLAGS="$LDFLAGS -pie -fpie"
  358     AC_CACHE_CHECK([whether compiler accepts -pie -fpie], ac_cv_pie_fpie,
  359     [AC_TRY_LINK([], [],
  360     ac_cv_pie_fpie=yes, ac_cv_pie_fpie=no)])
  361     if test $ac_cv_pie_fpie = no; then
  362         CFLAGS="$save_CFLAGS"
  363         LDFLAGS="$save_LDFLAGS"
  364     fi
  365 fi
  366 
  367 AC_MSG_CHECKING([how to create dependancy checks])
  368      if test -n "`$CC -V 2>&1 |grep Sun`"; then 
  369             DEPEND_FLAG=-xM;
  370      else 
  371             DEPEND_FLAG=-M
  372          fi
  373 AC_SUBST(DEPEND_FLAG)
  374 
  375 
  376 AC_PROG_INSTALL
  377 AC_PROG_YACC
  378 AC_PATH_PROG(DIFF,diff)
  379 AC_PATH_PROG(PATCH,patch)
  380 missing_dir=`cd $ac_aux_dir && pwd`
  381 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
  382 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
  383 
  384 dnl Checks for system services.
  385 
  386 dnl Check the size of various builtin types; see typesize.h (error)
  387 AC_CHECK_SIZEOF(char, 0)
  388 AC_CHECK_SIZEOF(short, 0)
  389 AC_CHECK_SIZEOF(int, 0)
  390 AC_CHECK_SIZEOF(long, 0)
  391 AC_CHECK_SIZEOF(size_t, 0)
  392 AC_CHECK_SIZEOF(loff_t, 0)
  393 dnl AC_CHECK_SIZEOF(long long, 0)
  394 
  395 dnl Checks for libraries.
  396 
  397 dnl We want to test for the following in libc before checking for their
  398 dnl respective libraries, because some systems (like Irix) have both, and the
  399 dnl non-libc versions may be broken.
  400 AC_CHECK_FUNCS(crypt gethostbyname connect getpwnam_r getpwuid_r getloadavg)
  401 
  402 AC_CHECK_FUNCS(strftime_l uselocale gettext)
  403 
  404 if test "$ok_nls" != "no"; then
  405     AC_CHECK_PROG(ok_xgettext, xgettext, yes, no)
  406     ok_nls=$ok_xgettext
  407 fi
  408 
  409 if test "$ok_nls" != "no"; then
  410     AC_CHECK_PROG(ok_msgmerge, msgmerge, yes, no)
  411     ok_nls=$ok_msgmerge
  412 fi
  413 
  414 if test "$ok_nls" != "no"; then
  415     AC_CHECK_PROG(ok_msgfmt, msgfmt, yes, no)
  416     ok_nls=$ok_msgfmt
  417 fi
  418 
  419 if test "$ok_nls" != "no"; then
  420     AC_MSG_RESULT(citadel will be built with national language support.)
  421     AC_DEFINE(ENABLE_NLS, [], [whether we have NLS support])
  422     PROG_SUBDIRS="$PROG_SUBDIRS po/citadel-setup"
  423 else
  424     AC_MSG_RESULT(citadel will be built without national language support.)
  425 fi
  426 
  427 dnl disable backtrace if we don't want it.
  428 AC_ARG_WITH(backtrace, 
  429     [  --with-backtrace        enable backtrace dumps in the syslog],
  430     [ if test "x$withval" != "xno" ; then
  431          CFLAGS="$CFLAGS  -rdynamic "
  432          LDFLAGS="$LDFLAGS  -rdynamic "
  433          SERVER_LDFLAGS="$SERVER_LDFLAGS  -rdynamic "
  434                            AC_CHECK_FUNCS(backtrace)
  435       fi
  436     ]
  437 )
  438 
  439 dnl disable backtrace if we don't want it.
  440 AC_ARG_WITH(gprof, 
  441         [  --with-gprof            enable profiling],
  442         [ if test "x$withval" != "xno" ; then
  443              CFLAGS="$CFLAGS  -pg "
  444              LDFLAGS="$LDFLAGS  -pg "
  445              SERVER_LDFLAGS="$SERVER_LDFLAGS  -pg "
  446           fi
  447         ]
  448 )
  449 
  450 if test "$ac_cv_func_gethostbyname" = no; then
  451     AC_CHECK_LIB(nsl, gethostbyname)
  452 fi
  453 
  454 if test "$ac_cv_func_connect" = no; then
  455         AC_CHECK_LIB(socket, connect)
  456 fi
  457 
  458 dnl Check for Solaris realtime support
  459 AC_CHECK_LIB(rt, sched_yield)
  460 
  461 dnl Determine the system's authentication capabilities.
  462 dnl We currently support PAM, standard getpwnam(), and getspnam()
  463 dnl (Linux shadow passwords)
  464 
  465 save_LIBS=$LIBS
  466 AC_CHECK_LIB(pam, pam_start, [chkpwd_LIBS="-lpam $chkpwd_LIBS"
  467     LIBS="-lpam $LIBS"])
  468 AC_CHECK_FUNCS(pam_start)
  469 test "$enable_chkpwd" != no && LIBS=$save_LIBS
  470     if test "$ac_cv_func_pam_start" = no -o "$with_pam" != yes; then
  471         save_LIBS=$LIBS
  472         AC_SEARCH_LIBS(getspnam, shadow, [
  473             if test "$ac_cv_search_getspnam" = -lshadow; then
  474                 chkpwd_LIBS="-lshadow $chkpwd_LIBS"
  475             fi])
  476         test "$enable_chkpwd" != no && LIBS=$save_LIBS
  477         if test "$ac_cv_func_crypt" = no; then
  478             AC_CHECK_LIB(crypt, crypt, [
  479                 chkpwd_LIBS="-lcrypt $chkpwd_LIBS"
  480                 test "$enable_chkpwd" = no && \
  481                     LIBS="-lcrypt $LIBS"])
  482         fi
  483     fi
  484 
  485 AC_CHECK_FUNCS(vw_printw wcolor_set resizeterm wresize)
  486 
  487 dnl Check for libpthread(s) if we're not using Digital UNIX or FreeBSD. (On
  488 dnl which the -pthread flag takes care of this.)
  489 if test "$check_pthread" != no; then
  490     AC_CHECK_LIB(pthread, pthread_create)
  491     AC_CHECK_LIB(pthreads, pthread_create)
  492 fi
  493 
  494 test -d /usr/kerberos/include && CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
  495 
  496 dnl Checks for the libical iCalendar library.
  497 AC_CHECK_HEADER(libical/ical.h,
  498     [AC_CHECK_LIB(ical, icaltimezone_set_tzid_prefix,
  499         [
  500             SERVER_LIBS="-lical $SERVER_LIBS"
  501         ],
  502         [
  503             AC_MSG_ERROR(libical was not found and is required.  More info: http://www.citadel.org/doku.php/installation:start)
  504         ]
  505     ,
  506     )],
  507     [
  508         AC_MSG_ERROR(libical/ical.h was not found and is required.  More info: http://www.citadel.org/doku.php/installation:start)
  509     ]
  510 )
  511 
  512 
  513 saved_CFLAGS="$CFLAGS"
  514 CFLAGS="$CFLAGS $SERVER_LIBS"
  515 dnl Check for libcitadel
  516 AC_CHECK_HEADER(libcitadel.h,
  517     [AC_CHECK_LIB(citadel, libcitadel_version_string,
  518         [
  519             LIBS="-lcitadel $LIBS $SERVER_LIBS"
  520             chkpwd_LIBS="-lcitadel $chkpwd_LIBS"
  521         ],
  522         [
  523             AC_MSG_ERROR(libcitadel was not found or is not usable.  Please install libcitadel.)
  524         ]
  525     ,
  526     )],
  527     [
  528         AC_MSG_ERROR(libcitadel.h was not found or is not usable.  Please install libcitadel.)
  529     ]
  530 )
  531 CFLAGS="$saved_CFLAGS"
  532 
  533 
  534 # The big search for OpenSSL
  535 if test "$with_ssl" != "no"; then
  536     saved_LIBS="$LIBS"
  537     saved_LDFLAGS="$LDFLAGS"
  538     saved_CFLAGS="$CFLAGS"
  539     if test "x$prefix" != "xNONE"; then
  540         tryssldir="$tryssldir $prefix"
  541     fi
  542     AC_CACHE_CHECK([for OpenSSL], ac_cv_openssldir, [
  543         for ssldir in $tryssldir "" /usr /usr/local/openssl /usr/lib/openssl /usr/local/ssl /usr/lib/ssl /usr/local /usr/pkg /opt /opt/openssl ; do
  544             CFLAGS="$saved_CFLAGS"
  545             LDFLAGS="$saved_LDFLAGS"
  546             LIBS="$saved_LIBS -lssl -lcrypto"
  547     
  548             # Skip directories if they don't exist
  549             if test ! -z "$ssldir" -a ! -d "$ssldir" ; then
  550                 continue;
  551             fi
  552             if test ! -z "$ssldir" -a "x$ssldir" != "x/usr"; then
  553                 # Try to use $ssldir/lib if it exists, otherwise
  554                 # $ssldir
  555                 if test -d "$ssldir/lib" ; then
  556                     LDFLAGS="-L$ssldir/lib $saved_LDFLAGS"
  557                     if test ! -z "$need_dash_r" ; then
  558                         LDFLAGS="-R$ssldir/lib $LDFLAGS"
  559                     fi
  560                 else
  561                     LDFLAGS="-L$ssldir $saved_LDFLAGS"
  562                     if test ! -z "$need_dash_r" ; then
  563                         LDFLAGS="-R$ssldir $LDFLAGS"
  564                     fi
  565                 fi
  566                 # Try to use $ssldir/include if it exists, otherwise
  567                 # $ssldir
  568                 if test -d "$ssldir/include" ; then
  569                     CFLAGS="-I$ssldir/include $saved_CFLAGS"
  570                 else
  571                     CFLAGS="-I$ssldir $saved_CFLAGS"
  572                 fi
  573             fi
  574     
  575             # Basic test to check for compatible version and correct linking
  576             # *does not* test for RSA - that comes later.
  577             AC_TRY_RUN(
  578                 [
  579     #include <string.h>
  580     #include <openssl/rand.h>
  581     int main(void)
  582     {
  583         char a[2048];
  584         memset(a, 0, sizeof(a));
  585         RAND_add(a, sizeof(a), sizeof(a));
  586         return(RAND_status() <= 0);
  587     }
  588                 ],
  589                 [
  590                     found_crypto=1
  591                     break;
  592                 ], []
  593             )
  594     
  595             if test ! -z "$found_crypto" ; then
  596                 break;
  597             fi
  598         done
  599     
  600         if test -z "$ssldir" ; then
  601             ssldir="(system)"
  602         fi
  603     
  604         if test ! -z "$found_crypto" ; then
  605             ac_cv_openssldir=$ssldir
  606         else
  607             ac_cv_openssldir="no"
  608         fi
  609     ])
  610     LIBS="$saved_LIBS"
  611     LDFLAGS="$saved_LDFLAGS"
  612     CFLAGS="$saved_CFLAGS"
  613     
  614     if test "x$ac_cv_openssldir" != "xno" ; then
  615         AC_DEFINE(HAVE_OPENSSL, [], [Define if you have OpenSSL.])
  616         LIBS="-lssl -lcrypto $LIBS"
  617         dnl Need to recover ssldir - test above runs in subshell
  618         ssldir=$ac_cv_openssldir
  619         if test ! -z "$ssldir" -a "x$ssldir" != "x/usr" -a "x$ssldir" != "x(system)"; then
  620             # Try to use $ssldir/lib if it exists, otherwise
  621             # $ssldir
  622             if test -d "$ssldir/lib" ; then
  623                 LDFLAGS="-L$ssldir/lib $saved_LDFLAGS"
  624                 if test ! -z "$need_dash_r" ; then
  625                     LDFLAGS="-R$ssldir/lib $LDFLAGS"
  626                 fi
  627             else
  628                 LDFLAGS="-L$ssldir $saved_LDFLAGS"
  629                 if test ! -z "$need_dash_r" ; then
  630                     LDFLAGS="-R$ssldir $LDFLAGS"
  631                 fi
  632             fi
  633             # Try to use $ssldir/include if it exists, otherwise
  634             # $ssldir
  635             if test -d "$ssldir/include" ; then
  636                 CFLAGS="-I$ssldir/include $saved_CFLAGS"
  637             else
  638                 CFLAGS="-I$ssldir $saved_CFLAGS"
  639             fi
  640         fi
  641     fi
  642 fi
  643 
  644 if test "x$with_db" != xno; then
  645     test "$db_dir" && LDFLAGS="$LDFLAGS -L$db_dir/lib"
  646 
  647     dblib=""
  648 
  649     if test "$db_dir"; then
  650         CPPFLAGS="$CPPFLAGS -I$db_dir/include"
  651     fi
  652 
  653 
  654     AC_CHECK_DB([db],
  655             [
  656              DATABASE=database.c
  657             ],
  658             AC_MSG_ERROR([[Can not locate a suitable Berkeley DB
  659                   library.  Use --with-db=PATH to specify
  660                   the path]]))
  661 
  662 fi
  663 
  664 
  665 dnl Checks for the OpenLDAP client library.
  666 AC_CHECK_HEADER(ldap.h,
  667     [AC_CHECK_LIB(ldap, ldap_initialize,
  668         [
  669             SERVER_LIBS="-lldap $SERVER_LIBS"
  670         ],
  671         [
  672             AC_MSG_ERROR(OpenLDAP development library was not found and is required.  More info: http://www.citadel.org/doku.php/installation:start)
  673         ]
  674     ,
  675     )],
  676     [
  677         AC_MSG_ERROR(OpenLDAP development headers were not found and are required.  More info: http://www.citadel.org/doku.php/installation:start)
  678     ]
  679 )
  680 
  681 
  682 dnl Checks for the Expat XML parser.
  683 AC_CHECK_HEADER(expat.h,
  684     [AC_CHECK_LIB(expat, XML_ParserCreateNS,
  685         [
  686             SERVER_LIBS="-lexpat $SERVER_LIBS"
  687         ],
  688         [
  689             AC_MSG_ERROR(The Expat XML parser was not found and is required.  More info: http://www.citadel.org/doku.php/installation:start)
  690         ]
  691     ,
  692     )],
  693     [
  694         AC_MSG_ERROR(expat.h was not found and is required.  More info: http://www.citadel.org/doku.php/installation:start)
  695     ]
  696 )
  697 
  698 
  699 dnl Checks for libcurl.
  700 AC_CHECK_HEADER(curl/curl.h,
  701     [AC_CHECK_LIB(curl, curl_version,
  702         [
  703             SERVER_LIBS="-lcurl $SERVER_LIBS"
  704         ],
  705         [
  706             AC_MSG_ERROR(libcurl was not found and is required.  More info: http://www.citadel.org/doku.php/installation:start)
  707         ]
  708     ,
  709     )],
  710     [
  711         AC_MSG_ERROR(curl/curl.h was not found and is required.  More info: http://www.citadel.org/doku.php/installation:start)
  712     ]
  713 )
  714 
  715 
  716 dnl Checks for header files.
  717 AC_HEADER_DIRENT
  718 AC_HEADER_STDC
  719 AC_HEADER_SYS_WAIT
  720 
  721 dnl
  722 dnl TODO: for the DB header checks, we should check whether the headers
  723 dnl define db_env_create, somehow
  724 dnl
  725 AC_CHECK_HEADERS(dl.h fcntl.h limits.h malloc.h termios.h sys/ioctl.h sys/select.h sys/stat.h sys/time.h sys/prctl.h syslog.h unistd.h utmp.h utmpx.h paths.h db.h pthread.h netinet/in.h arpa/nameser.h arpa/nameser_compat.h syscall.h sys/syscall.h)
  726 
  727 AC_CHECK_HEADER(resolv.h,AC_DEFINE(HAVE_RESOLV_H, [], [define this if you have the resolv.h header file.]),,
  728 [#ifdef HAVE_SYS_TYPES_H
  729 #include <sys/types.h>
  730 #endif
  731 #ifdef HAVE_NETINET_IN_H
  732 #include <netinet/in.h>
  733 #endif
  734 #ifdef HAVE_ARPA_NAMESER_H
  735 #include <arpa/nameser.h>
  736 #endif])
  737 
  738 
  739 dnl Checks for typedefs, structures, and compiler characteristics.
  740 AC_C_CONST
  741 AC_TYPE_PID_T
  742 AC_TYPE_SIZE_T
  743 AC_HEADER_TIME
  744 
  745 dnl defined in acinclude.m4:
  746 CIT_STRUCT_TM
  747 
  748 AC_CACHE_CHECK([for ut_type in struct utmp], ac_cv_struct_ut_type,
  749 [AC_TRY_COMPILE([#include <sys/types.h>
  750 #include <utmp.h>], [struct utmp ut; ut.ut_type;],
  751 ac_cv_struct_ut_type=yes, ac_cv_struct_ut_type=no)])
  752 if test $ac_cv_struct_ut_type = yes; then
  753     AC_DEFINE(HAVE_UT_TYPE, [], [define this if struct utmp has an ut_type member])
  754 fi
  755 
  756 AC_CACHE_CHECK(
  757     [for call semantics from getpwuid_r], 
  758     ac_cv_call_getpwuid_r,
  759     [AC_TRY_COMPILE([#include <sys/types.h>
  760 #include <pwd.h>], 
  761                          [
  762                 struct passwd pw, *pwp;
  763                 char pwbuf[64];
  764                 uid_t uid;
  765 
  766                 getpwuid_r(uid, &pw, pwbuf, sizeof(pwbuf), &pwp);
  767             ],
  768             ac_cv_call_getpwuid_r=yes, 
  769             ac_cv_call_getpwuid_r=no)
  770     ])
  771 
  772 if test $ac_cv_call_getpwuid_r = no; then
  773     AC_DEFINE(SOLARIS_GETPWUID,[],[do we need to use solaris call syntax?])
  774     AC_DEFINE(F_UID_T, "%ld", [whats the matching format string for uid_t?])
  775     AC_DEFINE(F_PID_T, "%ld",  [whats the matching format string for pid_t?])
  776     AC_DEFINE(F_XPID_T, "%lx",  [whats the matching format string for xpid_t?])
  777 else
  778     AC_DEFINE(F_UID_T, "%d",  [whats the matching format string for uid_t?])
  779     AC_DEFINE(F_PID_T, "%d",  [whats the matching format string for pid_t?])
  780     AC_DEFINE(F_XPID_T, "%x",  [whats the matching format string for xpid_t?])
  781 fi
  782 
  783 
  784 dnl Our own happy little check for the resolver library.
  785 
  786 case "`uname -a`" in 
  787  OpenBSD*)
  788     echo "we don't need to check for resolv on openbsd"  
  789     ;;
  790  FreeBSD*)
  791     echo "we don't need to check for resolv on freeBSD"  
  792     ;;
  793  *)
  794     test -f /usr/local/lib/libresolv.a && LDFLAGS="$LDFLAGS -L/usr/local/lib"
  795     AC_CHECK_LIB(resolv, res_query,
  796         RESOLV="$RESOLV -lresolv",
  797         [dnl Have to include resolv.h as res_query is sometimes defined as a macro
  798             AC_MSG_CHECKING([for res_query in -lresolv (with resolv.h if present)])
  799             saved_libs="$LIBS"
  800             LIBS="-lresolv $LIBS"
  801             AC_TRY_LINK([
  802                 #ifdef HAVE_RESOLV_H
  803                 #include <resolv.h>
  804                 #endif],
  805                 [res_query(0,0,0,0,0)],
  806                 [AC_MSG_RESULT(yes)
  807                         have_res_query=yes],
  808                 [AC_MSG_RESULT(no)
  809                     AC_MSG_ERROR(libresolv was not found.  Citadel requires the resolver library.)
  810                 ])
  811          ]
  812     )
  813     ;;
  814 esac
  815 
  816 
  817 
  818 AC_CACHE_CHECK([for ut_host in struct utmp], ac_cv_struct_ut_host,
  819 [AC_TRY_COMPILE([#include <sys/types.h>
  820 #include <utmp.h>], [struct utmp ut; ut.ut_host;],
  821 ac_cv_struct_ut_host=yes, ac_cv_struct_ut_host=no)])
  822 if test $ac_cv_struct_ut_host = yes; then
  823     AC_DEFINE(HAVE_UT_HOST, [], [define this if struct utmp has an ut_host member])
  824 fi
  825 
  826 dnl Checks for library functions.
  827 AC_FUNC_GETPGRP
  828 AC_PROG_GCC_TRADITIONAL
  829 AC_TYPE_SIGNAL
  830 AC_FUNC_VPRINTF
  831 AC_CHECK_FUNCS(getspnam getutxline mkdir mkfifo mktime rmdir select socket strerror strcasecmp strncasecmp)
  832 
  833 dnl Now check for pthreads
  834 
  835 dnl On some platforms, AC_CHECK_FUNC[S] doesn't work for pthreads programs;
  836 dnl we need to include pthread.h
  837 
  838 AC_CACHE_CHECK([for pthread_cancel], ac_cv_func_pthread_cancel,
  839 [AC_TRY_LINK([#include <pthread.h>],
  840 [   pthread_t thread;
  841 
  842     /* The GNU C library defines this for functions which it implements
  843        to always fail with ENOSYS.  Some functions are actually named
  844        something starting with __ and the normal name is an alias.  */
  845 #if defined (__stub_pthread_cancel) || defined (__stub___pthread_cancel)
  846     choke me
  847 #else
  848     pthread_cancel(thread);
  849 #endif],
  850 ac_cv_func_pthread_cancel=yes, ac_cv_func_pthread_cancel=no)])
  851 if test "$ac_cv_func_pthread_cancel" = yes; then
  852     AC_DEFINE(HAVE_PTHREAD_CANCEL, [], [define this if you have the pthread_cancel() function])
  853 fi
  854 
  855 AC_CACHE_CHECK([for pthread_create], ac_cv_func_pthread_create,
  856 [AC_TRY_LINK([#include <pthread.h>],
  857 [   /* The GNU C library defines this for functions which it implements
  858        to always fail with ENOSYS.  Some functions are actually named
  859        something starting with __ and the normal name is an alias.  */
  860 #if defined (__stub_pthread_cancel) || defined (__stub___pthread_cancel)
  861     choke me
  862 #else
  863     pthread_create(NULL, NULL, NULL, NULL);
  864 #endif],
  865 ac_cv_func_pthread_create=yes, ac_cv_func_pthread_create=no)])
  866 if test "$ac_cv_func_pthread_create" = yes; then
  867     test "$DATABASE" && TARGETS="server utils"
  868 fi
  869 
  870 AC_CACHE_CHECK([the weather], ac_cv_weather, [
  871     sleep 1
  872     echo $ECHO_N "opening your window... $ECHO_C" >&6
  873     sleep 2
  874     month=`date | cut -f 2 -d ' '`
  875     case $month in
  876     Dec | Jan | Feb)
  877         ac_cv_weather="it's cold!"
  878         ;;
  879     Mar | Apr)
  880         ac_cv_weather="it's wet!"
  881         ;;
  882     Jul | Aug)
  883         ac_cv_weather="it's hot!"
  884         ;;
  885     Oct | Nov)
  886         ac_cv_weather="it's cool"
  887         ;;
  888     May | Jun | Sep | *)
  889         ac_cv_weather="it's fine"
  890         ;;
  891     esac
  892     ])
  893 
  894 
  895 AC_CACHE_CHECK([under the bed], ac_cv_under_the_bed, [
  896     number=`date | cut -c 19`
  897     case $number in
  898     7)
  899         ac_cv_under_the_bed="lunatics and monsters found"
  900         ;;
  901     *)
  902         ac_cv_under_the_bed="dust bunnies found"
  903         ;;
  904     esac
  905     ])
  906 
  907 
  908 STRUCT_UCRED
  909 
  910 dnl Done! Now write the Makefile and sysdep.h
  911 AC_SUBST(RESOLV)
  912 AC_SUBST(chkpwd_LIBS)
  913 AC_SUBST(TARGETS)
  914 AC_SUBST(DATABASE)
  915 AC_SUBST(SERVER_LDFLAGS)
  916 AC_SUBST(SERVER_LIBS)
  917 AC_SUBST(SETUP_LIBS)
  918 AC_SUBST(DIFF)
  919 AC_SUBST(PATCH)
  920 AC_CONFIG_FILES([Makefile])
  921 AC_OUTPUT(po/citadel-setup/Makefile)
  922 
  923 if test -z "$DATABASE"; then
  924     AC_MSG_WARN([No database driver was found. Please install Berkeley DB.])
  925 fi
  926 
  927 abs_srcdir="`cd $srcdir && pwd`"
  928 abs_builddir="`pwd`"
  929 if test "$abs_srcdir" != "$abs_builddir"; then
  930    ln -sf $abs_srcdir/include $abs_builddir
  931    ln -sf $abs_srcdir/Make_sources $abs_builddir
  932    ln -sf $abs_srcdir/Make_modules $abs_builddir
  933    for i in $abs_srcdir/*.h ; do
  934       if test "$abs_srcdir/sysdep.h" != "$i"; then
  935          ln -sf $i $abs_builddir
  936       fi
  937    done
  938    for d in `/bin/ls $abs_srcdir/modules/`; do 
  939     (mkdir -p $abs_builddir/modules/$d) 
  940    done
  941    if test -d "$abs_srcdir/user_modules/"; then
  942       for d in `/bin/ls $abs_srcdir/user_modules/`; do 
  943         (mkdir -p $abs_builddir/user_modules/$d) 
  944     done
  945    fi
  946    mkdir -p $abs_builddir/utils
  947    mkdir -p $abs_builddir/utillib
  948 fi
  949 
  950 if test -n "$srcdir"; then 
  951    export srcdir=.
  952 fi
  953 
  954 
  955 echo ------------------------------------------------------------------------
  956 echo 'Character set conversion support:' $ok_iconv
  957 echo 
  958 echo 'Note: if you are not using Linux, make sure you are using GNU make'
  959 echo '(gmake) to compile Citadel.'
  960 echo