dnl Ensure that libcitadel is configured with autoconf 2.52 or newer
AC_PREREQ(2.52)
-AC_INIT(libcitadel, 1.03, https://uncensored.citadel.org)
+AC_INIT(libcitadel, 904, http://uncensored.citadel.org)
AC_CONFIG_SRCDIR(Makefile.in)
AC_CONFIG_AUX_DIR(conftools)
-
+AC_CONFIG_SRCDIR(tests/Makefile.in)
dnl
-dnl Increment LIBREVISION if source code has changed at all
+dnl Set LIBREVISION to the ever-ascending libcitadel version number.
dnl
-dnl If the API has changed, increment LIBCURRENT and set LIBREVISION to 0
+dnl If the API has changed, increment LIBCURRENT.
dnl
-dnl If the API changes compatibly (i.e. simply adding a new function
-dnl without changing or removing earlier interfaces), then increment LIBAGE.
-dnl
-dnl If the API changes incompatibly set LIBAGE back to 0
+dnl Set LIBAGE to 0.
dnl
-LIBCURRENT=1
-LIBREVISION=0
+LIBCURRENT=4
+LIBREVISION=904
LIBAGE=0
sinclude(conftools/libtool.m4)
dnl Checks for header files.
AC_HEADER_STDC
+AC_CHECK_HEADER(sys/mman.h, [CFLAGS="$CFLAGS -D HAVE_MMAP"])
+AC_ARG_WITH(with_zlib, [ --with-zlib use zlib compression if present])
+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
+ LIBS="-lz $LIBS"
+ AC_DEFINE(HAVE_ZLIB,[],[whether we have zlib])
+fi
+
+AC_CHECK_HEADER(CUnit/CUnit.h, [AC_DEFINE(ENABLE_TESTS, [], [whether we should compile the test-suite])])
+
+AC_CHECK_HEADER(sys/sendfile.h, [AC_DEFINE(LINUX_SENDFILE, [], [whether we have the linux sendfile api])])
+dnl TODO: we might need to check for the actual syntax....
+
+
+AC_MSG_CHECKING([whether your system knows about splice()])
+AC_TRY_COMPILE([
+#define _GNU_SOURCE
+#include <unistd.h>
+#include <fcntl.h>
+],
+[
+ ssize_t sent, pipesize;
+ int fd, SplicePipe[2];
+ pipesize = splice(fd, NULL,
+ SplicePipe[1], NULL,
+ 1,
+ SPLICE_F_MORE | SPLICE_F_MOVE|SPLICE_F_NONBLOCK);
+],
+ [
+ ok_splice=yes
+ AC_DEFINE(LINUX_SPLICE, [], [whether we have the linux splice api])
+ AC_MSG_RESULT([yes])
+ ],
+ [
+ ok_splice=no
+ AC_MSG_RESULT([no])
+ ]
+)
+
+AC_MSG_CHECKING([whether your system likes memcpy + HKEY])
+AC_TRY_COMPILE([
+#define _GNU_SOURCE
+#include <ctype.h>
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdio.h>
+#include <sys/select.h>
+#include <fcntl.h>
+#include <sys/types.h>
+
+#include "lib/libcitadel.h"
+],
+[
+ char foo[22];
+ memcpy(foo, HKEY("foo"));
+
+],
+ [
+
+ AC_MSG_RESULT([yes])
+ ],
+ [
+ AC_DEFINE(UNDEF_MEMCPY, [], [whether we need to undefine memcpy])
+ AC_MSG_RESULT([no])
+ ]
+)
+
+
+AC_CHECK_HEADERS(iconv.h)
+
+
+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(libcitadel will be built with character set conversion.)
+ AC_DEFINE(HAVE_ICONV,[],[whether we have iconv for charset conversion])
+else
+ AC_MSG_RESULT(libcitadel will be built without character set conversion.)
+fi
+
+dnl disable backtrace if we don't want it.
+AC_ARG_WITH(backtrace,
+ [ --with-backtrace enable backtrace dumps in the syslog],
+ [ if test "x$withval" != "xno" ; then
+ CFLAGS="$CFLAGS -rdynamic "
+ LDFLAGS="$LDFLAGS -rdynamic "
+ AC_CHECK_FUNCS(backtrace)
+ fi
+ ]
+)
+
+
+AC_ARG_WITH(with_zlib, [ --with-zlib use zlib compression if present])
+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
+ LIBS="-lz $LIBS"
+ AC_DEFINE(HAVE_ZLIB,[],[whether we have zlib])
+fi
+
+
dnl Checks for typedefs, structures, and compiler characteristics.
+AC_SUBST(LIBS)
AC_C_CONST
AC_TYPE_SIZE_T
AC_CHECK_FUNCS(memmove bcopy)
-AC_CONFIG_FILES(Makefile libcitadel.pc)
+AC_CONFIG_FILES(Makefile libcitadel.pc tests/Makefile)
+AC_CONFIG_HEADER(sysdep.h)
AC_OUTPUT
abs_srcdir="`cd $srcdir && pwd`"
if test "$abs_srcdir" != "$abs_builddir"; then
make mkdir-init
fi
+echo 'zlib compression: ' $ok_zlib
+echo 'Character set conversion support:' $ok_iconv