X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=configure.ac;h=256abc84622d0d1f7b748e667ec05c2ff4c90021;hb=1b8af2f7f86131a5364f2270865895ea597c591e;hp=8f8fab3e4c76a46ddee9a01c1e6c066d19274834;hpb=6522f1c523c246d62441d717936704d7a7f1e979;p=secnet.git diff --git a/configure.ac b/configure.ac index 8f8fab3..256abc8 100644 --- a/configure.ac +++ b/configure.ac @@ -40,11 +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([stdint.h inttypes.h]) AC_CHECK_HEADERS([net/if.h net/route.h]) AC_CHECK_HEADERS([sys/socket.h]) AC_CHECK_HEADERS([linux/if_tun.h], [], [], @@ -54,11 +73,6 @@ AC_CHECK_HEADERS([linux/if_tun.h], [], [], ]) AC_CHECK_HEADERS([stropts.h sys/sockio.h net/if_tun.h]) AC_C_BIGENDIAN -AC_CHECK_SIZEOF(unsigned long long) -AC_CHECK_SIZEOF(unsigned long) -AC_CHECK_SIZEOF(unsigned int) -AC_CHECK_SIZEOF(unsigned short) -AC_CHECK_SIZEOF(unsigned char) AC_PROG_CC_NO_WRITEABLE_STRINGS(WRITESTRINGS) AC_ARG_ENABLE(hacky-parallel, @@ -114,53 +128,6 @@ AH_BOTTOM([ /* These used to be in config.h.bot, but are now in configure.in. */ -#ifdef HAVE_INTTYPES_H -#include -#else -#ifdef HAVE_STDINT_H -#include -#else -#if SIZEOF_UNSIGNED_LONG_LONG==8 -typedef unsigned long long uint64_t; -typedef long long int64_t; -#elif SIZEOF_UNSIGNED_LONG==8 -typedef unsigned long uint64_t; -typedef long int64_t; -#else -#error I do not know what to use for a uint64_t. -#endif - -/* Give us an unsigned 32-bit data type. */ -#if SIZEOF_UNSIGNED_LONG==4 -typedef unsigned long uint32_t; -typedef long int32_t; -#elif SIZEOF_UNSIGNED_INT==4 -typedef unsigned int uint32_t; -typedef int int32_t; -#else -#error I do not know what to use for a uint32_t. -#endif - -/* An unsigned 16-bit data type. */ -#if SIZEOF_UNSIGNED_INT==2 -typedef unsigned int uint16_t; -typedef int int16_t; -#elif SIZEOF_UNSIGNED_SHORT==2 -typedef unsigned short uint16_t; -typedef short int16_t; -#else -#error I do not know what to use for a uint16_t. -#endif - -/* An unsigned 8-bit data type */ -#if SIZEOF_UNSIGNED_CHAR==1 -typedef unsigned char uint8_t; -#else -#error I do not know what to use for a uint8_t. -#endif -#endif -#endif - #ifdef __GNUC__ #define NORETURN(_x) void _x __attribute__ ((noreturn)) #define FORMAT(_a,_b,_c) __attribute__ ((format (_a,_b,_c)))