chiark / gitweb /
logging: Move "starting" message earlier
[secnet.git] / configure.ac
index e8e08cf02f014f2b696f1d930aa612a990743b8f..471a6e77db56f726b675cdad6114732c200a4109 100644 (file)
@@ -25,7 +25,7 @@ AC_INIT(secnet,0.1.18+,secnet@chiark.greenend.org.uk)
 AC_CONFIG_SRCDIR(secnet.c)
 AC_CONFIG_HEADER(config.h)
 
-SUBDIRMK_SUBDIRS([test-example mtest stest])
+SUBDIRMK_SUBDIRS([test-example mtest stest base91s])
 
 AC_PREREQ(2.50)
 AC_REVISION($Id: configure.in,v 1.4 2002/09/09 22:05:02 steve Exp $)
@@ -40,6 +40,27 @@ if test "x$FINK" != x; then
   LDFLAGS="-L$finkdir/lib ${LDFLAGS}"
 fi
 
+# This is quite unpleasant.  It turns out that most header checking
+# macros call AC_INCLUDES_DEFAULT.  By default AC_INCLUDES_DEFAULT
+# implies AC_HEADER_STDC and a bunch of conditional includes.  But
+# these header checks are obsolete as the documentation for
+# AC_HEADER_STDC says.  Instead, define AC_INCLUDES_DEFAULT ourselves.
+# The list of headers below is the list from `(autoconf) Default
+# Includes' (filtered by hand for the modern ones rather than the
+# fallbacks).  We must include $1 because AC_INCLUDES_DEFAULT is
+# called with an argument giving the check-specific haders.
+m4_define([AC_INCLUDES_DEFAULT],[
+          # include <sys/types.h>
+          # include <sys/stat.h>
+          # include <stdlib.h>
+          # include <stddef.h>
+          # include <string.h>
+          # include <inttypes.h>
+          # include <stdint.h>
+          # include <unistd.h>
+$1
+])
+
 AC_PROG_MAKE_SET
 AC_PROG_CC
 AC_PROG_INSTALL
@@ -79,6 +100,30 @@ SECNET_C_GETFUNC(inet_aton,resolv)
 AC_CHECK_LIB(adns,adns_init)
 REQUIRE_HEADER([adns.h])
 
+AC_CHECK_FUNCS([fmemopen funopen])
+
+dnl gcc 4.9.2 (jessie) requires -std=gnu11 to cope with for (int i=...
+dnl but we do not want to pass that everywhere because we don't want
+dnl to nail down the C dialect this way.  Why oh why oh why.
+m4_define([for_gcc_std],[
+void x(void) { for (int i=0; i<1; i++) { } }
+])
+AC_CACHE_CHECK([required gcc -std flag],[secnet_cv_gcc_std_flag],[
+    secnet_cv_gcc_std_flag=""
+    AC_COMPILE_IFELSE([AC_LANG_SOURCE(for_gcc_std)],[],[
+        old_cflags="$CFLAGS"
+       CFLAGS="$CFLAGS -std=gnu11"
+       AC_COMPILE_IFELSE([AC_LANG_SOURCE(for_gcc_std)],[
+           secnet_cv_gcc_std_flag=" -std=gnu11"
+       ],[
+           AC_MSG_RESULT([failure!])
+           AC_MSG_ERROR([cannot get test program to compile],1)
+       ])
+       CFLAGS="$old_cflags"
+    ])
+])
+CFLAGS="$CFLAGS$secnet_cv_gcc_std_flag"
+
 AC_MSG_NOTICE([Checking requirements for IPv6 support...])
 enable_ipv6=true
 m4_define(NO_IPV6,[enable_ipv6=false])