]> 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 c36130b04719eafa3f616a4b581ff517887fd7d9..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.35], [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
@@ -46,7 +61,7 @@ dnl Checks for the SSLdir
 dnl this is a bit different than the rest, 
 dnl because of the citadel used to have a keys/ subdir.
 AC_ARG_WITH(ssldir, 
-                   [  --with-ssldir          directory to store the ssl certificates under],
+                   [  --with-ssldir           directory to store the ssl certificates under],
                        [ if test "x$withval" != "xno" ; then
                                              
                                                  ssl_dir="$withval"
@@ -82,9 +97,21 @@ 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],
+                       [  --with-utility-bindir   directory where to find helper binaries],
                        [ if test "x$withval" != "xno" ; then
                                            AC_DEFINE(HAVE_UTILBIN_DIR,[],[should we put our helper binaries to another location?])
                                                AC_DEFINE_UNQUOTED(UTILBIN_DIR, "$withval", [were to put our helper programs])
@@ -129,6 +156,81 @@ 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],
+       ok_iconv=no, ok_iconv=yes)
+
+AC_MSG_CHECKING(Checking to see if your system supports iconv)
+AC_TRY_RUN([
+       #include <iconv.h>
+       main() {
+               iconv_t ic = (iconv_t)(-1) ;
+               ic = iconv_open("UTF-8", "us-ascii");
+               iconv_close(ic);
+               exit(0);
+       }
+ ],
+               [
+                 ok_iconv=yes
+                 AC_MSG_RESULT([yes])
+               ],
+               [ 
+                 ok_iconv=no
+                 AC_MSG_RESULT([no])
+               ]
+)
+
+dnl Check for iconv in external libiconv
+if test "$ok_iconv" = no; then
+       AC_MSG_CHECKING(Checking for an external libiconv)
+       OLD_LDFLAGS="$LDFLAGS"
+       LDFLAGS="$LDFLAGS -liconv"
+       AC_TRY_RUN([
+                       #include <iconv.h>
+                       main() {
+                               iconv_t ic = (iconv_t)(-1) ;
+                               ic = iconv_open("UTF-8", "us-ascii");
+                               iconv_close(ic);
+                       }
+               ],
+                       [
+                         ok_iconv=yes
+                         AC_MSG_RESULT([yes])
+                       ],
+                       [ 
+                         ok_iconv=no
+                         LDFLAGS="$OLD_LDFLAGS"
+                         AC_MSG_RESULT([no])
+                       ]
+               )
+fi     
+if test "$ok_iconv" != "no"; then
+       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(Citadel will be built without character set conversion.)
+fi
+
+AC_CHECK_LIB(intl, libintl_bindtextdomain, [LDFLAGS="$LDFLAGS -lintl"])
+
+
 
 AC_ARG_ENABLE(threaded-client, [  --disable-threaded-client
                          disable multithreaded client])
@@ -137,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 ],
        [
@@ -148,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"
@@ -309,7 +410,7 @@ AC_CHECK_FUNCS(crypt gethostbyname connect flock getpwnam_r getpwuid_r)
 
 dnl disable backtrace if we don't want it.
 AC_ARG_WITH(backtrace, 
-                   [  --with-backtrace          enable backtrace dumps in the syslog],
+                   [  --with-backtrace        enable backtrace dumps in the syslog],
                        [ if test "x$withval" != "xno" ; then
                             CFLAGS="$CFLAGS  -rdynamic "
                             LDFLAGS="$LDFLAGS  -rdynamic "
@@ -321,7 +422,7 @@ AC_ARG_WITH(backtrace,
 
 dnl disable backtrace if we don't want it.
 AC_ARG_WITH(gprof, 
-                   [  --with-gprof          enable profiling],
+                   [  --with-gprof            enable profiling],
                        [ if test "x$withval" != "xno" ; then
                             CFLAGS="$CFLAGS  -pg "
                             LDFLAGS="$LDFLAGS  -pg "
@@ -332,7 +433,7 @@ AC_ARG_WITH(gprof,
 
 dnl disable thread table reporting
 AC_ARG_WITH(threadlog,
-               [ --with-threadlog      enable logging of thread table],
+               [  --with-threadlog        enable logging of thread table],
                        [ if test "x$withval" != "xno" ; then
                                AC_DEFINE(WITH_THREADLOG, [], [Define if you want logging of the thread tables.])
                          fi
@@ -355,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, [
@@ -396,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.)
@@ -413,6 +547,7 @@ AC_CHECK_HEADER(libcitadel.h,
        ]
 )
 
+CFLAGS="$saved_CFLAGS"
 
 
 
@@ -544,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
@@ -552,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
-
 
 
 
@@ -586,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
 
 
 
@@ -624,7 +746,7 @@ AC_CHECK_HEADER(expat.h,
 
 dnl Checks for libcurl.
 AC_CHECK_HEADER(curl/curl.h,
-       [AC_CHECK_LIB(curl, curl_easy_init,
+       [AC_CHECK_LIB(curl, curl_version,
                [
                        SERVER_LIBS="-lcurl $SERVER_LIBS"
                ],
@@ -644,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)
-       ]
-)
-
 
 
 
@@ -886,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)
@@ -895,20 +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 'DSpam Scanning support:          ' $ok_libdspam
+echo 'Character set conversion support:' $ok_iconv
+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.'