1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- 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 <cstdio>
- #include <cstdlib>
- #include <cstddef>
- ]],
- [[
- 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 <cstdio>
- #include <cstdlib>
- #include <cstddef>
- ]],
- [[
- 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])
- ])
- ])
|