]> code.citadel.org Git - citadel.git/blobdiff - citadel/configure.ac
* check for the PAM lib in every case, since if we detect the functions we need to...
[citadel.git] / citadel / configure.ac
index 3a330ea8e7ad73bbbe4f7c4d6b974bd4c76df5ee..11097275c4a9fb6ef103a62d0e7c73653ab92f86 100644 (file)
@@ -1,9 +1,11 @@
 dnl Process this file with autoconf to produce a configure script.
 dnl $Id$
 AC_PREREQ(2.52)
-AC_INIT([Citadel], [7.37], [http://www.citadel.org/])
+AC_INIT([Citadel], [7.66], [http://www.citadel.org/])
 AC_REVISION([$Revision: 5108 $])
 AC_CONFIG_SRCDIR([citserver.c])
+AC_CONFIG_HEADER(sysdep.h)
+AC_CONFIG_MACRO_DIR([m4])
 AC_PREFIX_DEFAULT(/usr/local/citadel)
 if test "$prefix" = NONE; then
        AC_DEFINE_UNQUOTED(CTDLDIR, "$ac_default_prefix", [define this to the Citadel home directory])
@@ -29,7 +31,20 @@ AC_ARG_WITH(datadir,
                        ]
 )
 
-dnl Checks for the Datadir
+
+dnl Checks for the helpDatadir
+AC_ARG_WITH(helpdir, 
+                   [  --with-helpdir          directory to store the helpfiles under],
+                       [ if test "x$withval" != "xno" ; then
+                                             AC_DEFINE(HAVE_HELP_DIR,[],[use alternate database location?])
+                                             AC_DEFINE_UNQUOTED(HELP_DIR, "$withval",[define, if the user suplied a helpfile-directory to use.])
+                                             MAKE_HELP_DIR=$withval
+                                             AC_SUBST(MAKE_HELP_DIR)
+                         fi
+                       ]
+)
+
+dnl Checks for the Static Datadir
 AC_ARG_WITH(staticdatadir, 
                    [  --with-staticdatadir    directory to store citadels system messages under],
                        [ if test "x$withval" != "xno" ; then
@@ -82,6 +97,18 @@ AC_ARG_WITH(sysconfdir,
                        ]
 )
 
+dnl Checks for the Configdir
+AC_ARG_WITH(autosysconfdir, 
+                       [  --with-autosysconfdir         directory to store the automaticaly maintained configs under],
+                       [ if test "x$withval" != "xno" ; then
+                                           AC_DEFINE(HAVE_AUTO_ETC_DIR, [], [should we search our automatic config in an alternate place?])
+                                               AC_DEFINE_UNQUOTED(AUTO_ETC_DIR, "$withval", [where to search our automatic config files])
+                                               MAKE_AUTO_ETC_DIR=$withval
+                                               AC_SUBST(MAKE_AUTO_ETC_DIR)
+                         fi
+                       ]
+)
+
 dnl Checks for where to put our utilities
 AC_ARG_WITH(utility-bindir, 
                        [  --with-utility-bindir   directory where to find helper binaries],
@@ -129,6 +156,22 @@ AC_ARG_WITH(docdir,
 )
 
 
+dnl Checks for the zlib compression library.
+if test "x$with_zlib" != xno ; then
+       AC_CHECK_HEADERS(zlib.h,
+               [AC_CHECK_LIB(z, zlibVersion,
+                       [ok_zlib=yes],,
+       )])
+fi
+
+if test "x$ok_zlib" = xyes ; then
+dnl  libcitadel will bring libz, so we don't need it here.     LDFLAGS="-lz $LDFLAGS" 
+       AC_DEFINE(HAVE_ZLIB, [], [define this if you have zlib compression available])
+fi
+
+
+
+
 dnl Here is the check for a libc integrated iconv
 AC_ARG_ENABLE(iconv,
        [  --disable-iconv         do not use iconv charset conversion],
@@ -179,10 +222,10 @@ if test "$ok_iconv" = no; then
                )
 fi     
 if test "$ok_iconv" != "no"; then
-       AC_MSG_RESULT(WebCit will be built with character set conversion.)
+       AC_MSG_RESULT(Citadel will be built with character set conversion.)
        AC_DEFINE(HAVE_ICONV,[],[whether we have iconv for charset conversion])
 else
-       AC_MSG_RESULT(WebCit will be built without character set conversion.)
+       AC_MSG_RESULT(Citadel will be built without character set conversion.)
 fi
 
 AC_CHECK_LIB(intl, libintl_bindtextdomain, [LDFLAGS="$LDFLAGS -lintl"])
@@ -196,7 +239,7 @@ AC_ARG_ENABLE(pie, [  --enable-pie            build position-independent executa
 
 AC_ARG_WITH(pam, [  --with-pam              use PAM if present (see PAM.txt before you try this)])
 AC_ARG_WITH(kthread, [  --with-kthread          use kernel threads (on FreeBSD) (not recommended yet)])
-AC_ARG_WITH(db, [  --with-db@<:@=DIR@:>@         use Sleepycat DB 3.x @<:@DIR=/usr/local/BerkeleyDB.3.@<:@123@:>@@:>@])
+AC_ARG_WITH(db, [  --with-db@<:@=DIR@:>@         use Berkeley DB 3.x @<:@DIR=/usr/local/BerkeleyDB.3.@<:@123@:>@@:>@])
 AC_ARG_WITH(ssl,
        [  --with-ssl=PATH         Specify path to OpenSSL installation ],
        [
@@ -207,9 +250,8 @@ AC_ARG_WITH(ssl,
 )
 AC_ARG_WITH(ncurses, [  --without-ncurses       don't use ncurses])
 
-AC_ARG_WITH(with_zlib, [  --with-zlib             use zlib compression if present])
 AC_ARG_WITH(with_ldap, [  --with-ldap             use OpenLDAP client library])
-AC_ARG_WITH(with_libdspam, [  --with-libdspam         use libdspam mail spam scanning library])
+dnl AC_ARG_WITH(with_libdspam, [  --with-libdspam         use libdspam mail spam scanning library])
 
 if test "x$with_db" != xno -a "x$with_db" != xyes -a "$with_db"; then
        db_dir="$with_db"
@@ -414,13 +456,11 @@ dnl Determine the system's authentication capabilities.
 dnl We currently support PAM, standard getpwnam(), and getspnam()
 dnl (Linux shadow passwords)
 
-       if test "$with_pam" = yes; then
-               save_LIBS=$LIBS
-               AC_CHECK_LIB(pam, pam_start, [chkpwd_LIBS="-lpam $chkpwd_LIBS"
-                       LIBS="-lpam $LIBS"])
-               AC_CHECK_FUNCS(pam_start)
-               test "$enable_chkpwd" != no && LIBS=$save_LIBS
-       fi
+save_LIBS=$LIBS
+AC_CHECK_LIB(pam, pam_start, [chkpwd_LIBS="-lpam $chkpwd_LIBS"
+       LIBS="-lpam $LIBS"])
+AC_CHECK_FUNCS(pam_start)
+test "$enable_chkpwd" != no && LIBS=$save_LIBS
        if test "$ac_cv_func_pam_start" = no -o "$with_pam" != yes; then
                save_LIBS=$LIBS
                AC_SEARCH_LIBS(getspnam, shadow, [
@@ -455,12 +495,47 @@ fi
 
 test -d /usr/kerberos/include && CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
 
+dnl Checks for the libical iCalendar library.
+AC_CHECK_HEADER(libical/ical.h,
+       [AC_CHECK_LIB(ical, icaltimezone_set_tzid_prefix,
+               [
+                       SERVER_LIBS="-lical $SERVER_LIBS"
+               ],
+               [
+                       AC_MSG_ERROR(libical was not found and is required.  More info: http://www.citadel.org/doku.php/installation:start)
+               ]
+       ,
+       )],
+       [
+               AC_MSG_ERROR(libical/ical.h was not found and is required.  More info: http://www.citadel.org/doku.php/installation:start)
+       ]
+)
 
+
+dnl Checks for the libsieve mailbox sorting library.
+AC_CHECK_HEADER(sieve2.h,
+       [AC_CHECK_LIB(sieve, sieve2_license,
+               [
+                       SERVER_LIBS="-lsieve $SERVER_LIBS"
+               ],
+               [
+                       AC_MSG_ERROR(libsieve was not found and is required.  More info: http://www.citadel.org/doku.php/installation:start)
+               ]
+       ,
+       )],
+       [
+               AC_MSG_ERROR(sieve2.h was not found and is required.  More info: http://www.citadel.org/doku.php/installation:start)
+       ]
+)
+
+saved_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $SERVER_LIBS"
 dnl Check for libcitadel
 AC_CHECK_HEADER(libcitadel.h,
        [AC_CHECK_LIB(citadel, libcitadel_version_string,
                [
-                       LIBS="-lcitadel $LIBS"
+                       LIBS="-lcitadel $LIBS $SERVER_LIBS"
+                       chkpwd_LIBS="-lcitadel $chkpwd_LIBS"
                ],
                [
                        AC_MSG_ERROR(libcitadel was not found or is not usable.  Please install libcitadel.)
@@ -472,6 +547,7 @@ AC_CHECK_HEADER(libcitadel.h,
        ]
 )
 
+CFLAGS="$saved_CFLAGS"
 
 
 
@@ -603,7 +679,7 @@ if test "x$with_db" != xno; then
 
        AC_CHECK_DB([db db-4.1 db-4 db4],
                    [
-                    DATABASE=database_sleepycat.c
+                    DATABASE=database.c
                    ],
                    AC_MSG_ERROR([[Can not locate a suitable Berkeley DB
                                  library.  Use --with-db=PATH to specify
@@ -611,19 +687,6 @@ if test "x$with_db" != xno; then
 
 fi
 
-dnl Checks for the zlib compression library.
-if test "x$with_zlib" != xno ; then
-       AC_CHECK_HEADERS(zlib.h,
-               [AC_CHECK_LIB(z, zlibVersion,
-                       [ok_zlib=yes],,
-       )])
-fi
-
-if test "x$ok_zlib" = xyes ; then
-       SERVER_LIBS="-lz $SERVER_LIBS"
-       AC_DEFINE(HAVE_ZLIB, [], [define this if you have zlib compression available])
-fi
-
 
 
 
@@ -645,17 +708,17 @@ fi
 
 
 dnl Checks for the libdspam mail spam scanning library.
-if test "x$with_libdspam" != xno ; then
-       AC_CHECK_HEADERS(dspam/libdspam.h,
-               [AC_CHECK_LIB(dspam, dspam_init,
-                       [ok_libdspam=yes],,
-       )])
-fi
-
-if test "x$ok_libdspam" = xyes ; then
-       SERVER_LIBS="-ldspam $SERVER_LIBS"
-       AC_DEFINE(HAVE_LIBDSPAM, [], [define this if you have the libdspam mail spam scanning library available])
-fi
+dnl if test "x$with_libdspam" != xno ; then
+dnl    AC_CHECK_HEADERS(dspam/libdspam.h,
+dnl            [AC_CHECK_LIB(dspam, dspam_init,
+dnl                    [ok_libdspam=yes],,
+dnl    )])
+dnl fi
+dnl 
+dnl if test "x$ok_libdspam" = xyes ; then
+dnl    SERVER_LIBS="-ldspam $SERVER_LIBS"
+dnl    AC_DEFINE(HAVE_LIBDSPAM, [], [(unfinished) define this if you have the libdspam mail spam scanning library available])
+dnl fi
 
 
 
@@ -703,39 +766,6 @@ AC_CHECK_HEADER(curl/curl.h,
 
 
 
-dnl Checks for the libical iCalendar library.
-AC_CHECK_HEADER(ical.h,
-       [AC_CHECK_LIB(ical, icalcomponent_new,
-               [
-                       SERVER_LIBS="-lical $SERVER_LIBS"
-               ],
-               [
-                       AC_MSG_ERROR(libical was not found and is required.  More info: http://www.citadel.org/doku.php/installation:start)
-               ]
-       ,
-       )],
-       [
-               AC_MSG_ERROR(ical.h was not found and is required.  More info: http://www.citadel.org/doku.php/installation:start)
-       ]
-)
-
-
-dnl Checks for the libsieve mailbox sorting library.
-AC_CHECK_HEADER(sieve2.h,
-       [AC_CHECK_LIB(sieve, sieve2_license,
-               [
-                       SERVER_LIBS="-lsieve $SERVER_LIBS"
-               ],
-               [
-                       AC_MSG_ERROR(libsieve was not found and is required.  More info: http://www.citadel.org/doku.php/installation:start)
-               ]
-       ,
-       )],
-       [
-               AC_MSG_ERROR(sieve2.h was not found and is required.  More info: http://www.citadel.org/doku.php/installation:start)
-       ]
-)
-
 
 
 
@@ -945,6 +975,11 @@ AC_CACHE_CHECK([under the bed], ac_cv_under_the_bed, [
        esac
        ])
 
+
+STRUCT_UCRED
+
+
+
 dnl Done! Now write the Makefile and sysdep.h
 AC_SUBST(AUTH)
 AC_SUBST(RESOLV)
@@ -954,21 +989,42 @@ AC_SUBST(DATABASE)
 AC_SUBST(SERVER_LDFLAGS)
 AC_SUBST(SERVER_LIBS)
 AC_SUBST(SETUP_LIBS)
-AC_CONFIG_HEADER(sysdep.h)
-./mk_module_init.sh
 AC_CONFIG_FILES([Makefile])
 AC_OUTPUT(database_cleanup.sh)
 
-
 if test -z "$DATABASE"; then
        AC_MSG_WARN([No database driver was found. Please install Berkeley DB.])
 fi
 
+abs_srcdir="`cd $srcdir && pwd`"
+abs_builddir="`pwd`"
+if test "$abs_srcdir" != "$abs_builddir"; then
+   ln -s $abs_srcdir/include $abs_builddir
+   ln -s $abs_srcdir/Make_sources $abs_builddir
+   ln -s $abs_srcdir/Make_modules $abs_builddir
+   ln -s $abs_srcdir/*.h $abs_builddir
+   for d in `/bin/ls $abs_srcdir/modules/`; do 
+       (mkdir -p $abs_builddir/modules/$d) 
+   done
+   if test -d "$abs_srcdir/user_modules/"; then
+      for d in `/bin/ls $abs_srcdir/user_modules/`; do 
+       (mkdir -p $abs_builddir/user_modules/$d) 
+       done
+   fi
+   mkdir -p $abs_builddir/utils
+   mkdir -p $abs_builddir/utillib
+   mkdir -p $abs_builddir/textclient
+fi
+
+if test -n "$srcdir"; then 
+   export srcdir=.
+fi
+
+
 echo ------------------------------------------------------------------------
-echo 'zlib compression:                ' $ok_zlib
 echo 'LDAP support:                    ' $ok_ldap
 echo 'Character set conversion support:' $ok_iconv
-echo 'DSpam Scanning support:          ' $ok_libdspam
+dnl echo 'DSpam Scanning support:          ' $ok_libdspam
 echo 
 echo 'Note: if you are not using Linux, make sure you are using GNU make'
 echo '(gmake) to compile Citadel.'