You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.5 KiB
68 lines
1.5 KiB
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])
|
|
])
|
|
])
|