X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=configure.ac;h=471a6e77db56f726b675cdad6114732c200a4109;hb=4d9d6e20e19c1aaa0d138e70897d136b36d673c0;hp=56d8139b1d803c066fab1f0d79343184269f03ff;hpb=79876cc16592ddd80bd1745a591c11a88ad42b44;p=secnet.git diff --git a/configure.ac b/configure.ac index 56d8139..471a6e7 100644 --- a/configure.ac +++ b/configure.ac @@ -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,10 +40,30 @@ 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 + # include + # include + # include + # include + # include + # include + # include +$1 +]) + AC_PROG_MAKE_SET AC_PROG_CC AC_PROG_INSTALL -AC_STDC_HEADERS AC_CHECK_HEADERS([net/if.h net/route.h]) AC_CHECK_HEADERS([sys/socket.h]) AC_CHECK_HEADERS([linux/if_tun.h], [], [], @@ -80,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])