dnl Two functions for checking for availability of C99 style dnl __VA_ARGS__ and GNU style args... variadic macro support. AC_DEFUN([AX_C99_VARIADIC_MACROS], [ AH_TEMPLATE([HAS_C99_VARIADIC_MACROS], [Defined if the compiler supports C99 style variadic macros with __VA_ARGS__.]) AC_CACHE_CHECK([for C99 variadic macros], [ac_cv_c99_variadic_macros], [ AC_LANG_ASSERT([C++]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[ using namespace std; #define MACRO(buf, ...) (sprintf (buf, "%d", __VA_ARGS__)) char a[10]; MACRO(a, 1); if (a[0] != '1') abort (); if (a[1] != 0) abort (); ]] )], [ac_cv_c99_variadic_macros=yes], [ac_cv_c99_variadic_macros=no]) ]) ]) AC_DEFUN([AX_GNU_VARIADIC_MACROS], [ AH_TEMPLATE([HAS_GNU_VARIADIC_MACROS], [Defined if the compiler supports GNU style variadic macros.]) AC_CACHE_CHECK([for GNU style variadic macros], [ac_cv_gnu_variadic_macros], [ AC_LANG_ASSERT([C++]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[ using namespace std; #define MACRO(buf, args...) (sprintf (buf, "%d", args)) char a[10]; MACRO(a, 1); if (a[0] != '1') abort (); if (a[1] != 0) abort (); ]] )], [ac_cv_gnu_variadic_macros=yes], [ac_cv_gnu_variadic_macros=no]) ]) ])