Suppress noise during configure
[citadel.git] / libcitadel / configure.in
old mode 100755 (executable)
new mode 100644 (file)
index b22ca13..8045085
@@ -3,27 +3,21 @@ dnl   Process this file with autoconf to produce a configure script.
 dnl
 
 dnl Ensure that libcitadel is configured with autoconf 2.52 or newer
-AC_PREREQ(2.52)
-
-AC_INIT(libcitadel, 7.70, https://uncensored.citadel.org)
-
+AC_PREREQ([2.71])
+AC_INIT([libcitadel],[m4_esyscmd_s(grep LIBCITADEL_VERSION lib/libcitadel.h | sed 's/[^0-9]*//g' )],[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=2
-LIBREVISION=0
+LIBCURRENT=4
+LIBREVISION=m4_esyscmd_s([grep LIBCITADEL_VERSION lib/libcitadel.h | sed 's/[^0-9]*//g' ])
 LIBAGE=0
 
 sinclude(conftools/libtool.m4)
@@ -48,14 +42,20 @@ if test "$GCC" = yes ; then
     OLDCFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wstrict-prototypes"
     CFLAGS="$OLDCFLAGS -fexceptions"
     AC_MSG_CHECKING(whether $CC accepts -fexceptions)
-    AC_TRY_LINK( , ,
-                   AC_MSG_RESULT(yes),
-                   AC_MSG_RESULT(no); CFLAGS="$OLDCFLAGS")
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no); CFLAGS="$OLDCFLAGS"])
     CXXFLAGS=`echo "$CFLAGS" | sed 's/ -Wmissing-prototypes -Wstrict-prototypes//'`
 fi
 
 dnl Checks for header files.
-AC_HEADER_STDC
+m4_warn([obsolete],
+[The preprocessor macro `STDC_HEADERS' is obsolete.
+  Except in unusual embedded environments, you can safely include all
+  ISO C90 headers unconditionally.])dnl
+# Autoupdate added the next two lines to ensure that your configure
+# script's behavior did not change.  They are probably safe to remove.
+AC_CHECK_INCLUDES_DEFAULT
+AC_PROG_EGREP
+
 
 AC_CHECK_HEADER(sys/mman.h, [CFLAGS="$CFLAGS -D HAVE_MMAP"])
 AC_ARG_WITH(with_zlib,    [  --with-zlib             use zlib compression if present])
@@ -74,6 +74,58 @@ 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_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#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_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#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)
@@ -85,7 +137,7 @@ AC_ARG_ENABLE(iconv,
        ok_iconv=no, ok_iconv=yes)
 
 AC_MSG_CHECKING(Checking to see if your system supports iconv)
-AC_TRY_RUN([
+AC_RUN_IFELSE([AC_LANG_SOURCE([[
        #include <iconv.h>
        main() {
                iconv_t ic = (iconv_t)(-1) ;
@@ -93,40 +145,36 @@ AC_TRY_RUN([
                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([
+       AC_RUN_IFELSE([AC_LANG_SOURCE([[
                        #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.)
@@ -169,8 +217,8 @@ AC_C_CONST
 AC_TYPE_SIZE_T
 AC_CHECK_FUNCS(memmove bcopy)
 
-AC_CONFIG_FILES(Makefile libcitadel.pc tests/Makefile)
-AC_CONFIG_HEADER(sysdep.h)
+AC_CONFIG_FILES(Makefile libcitadel.pc)
+AC_CONFIG_HEADERS([sysdep.h])
 AC_OUTPUT
 
 abs_srcdir="`cd $srcdir && pwd`"