blob: c295d21f4e2c6e4616ad8ab3bf46d21208301cae [file] [log] [blame]
dnl @synopsis AX_CPP_VARARG_MACRO_GCC
dnl
dnl Test if the preprocessor understands GNU GCC-style vararg macros.
dnl If it does, defines HAVE_CPP_VARARG_MACRO_GCC to 1.
dnl
dnl @version
dnl @author James Yonan <jim@yonan.net>, Matthias Andree <matthias.andree@web.de>
AC_DEFUN([AX_CPP_VARARG_MACRO_GCC], [dnl
AS_VAR_PUSHDEF([VAR], [ax_cv_cpp_vararg_macro_gcc])dnl
AC_CACHE_CHECK(
[for GNU GCC vararg macro support],
[VAR],
[AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[
#define macro(a, b...) func(a, b)
int func(int a, int b, int c);
]],
[[
int i = macro(1, 2, 3);
]]
)],
[VAR=yes],
[VAR=no]
)]
)dnl
AS_VAR_IF(
[VAR],
[yes],
[AC_DEFINE(
[HAVE_CPP_VARARG_MACRO_GCC],
[1],
[Define to 1 if your compiler supports GNU GCC-style variadic macros]
)]
)dnl
AS_VAR_POPDEF([VAR])dnl
])
dnl @synopsis AX_CPP_VARARG_MACRO_ISO
dnl
dnl Test if the preprocessor understands ISO C 1999 vararg macros.
dnl If it does, defines HAVE_CPP_VARARG_MACRO_ISO to 1.
dnl
dnl @version
dnl @author James Yonan <jim@yonan.net>, Matthias Andree <matthias.andree@web.de>
AC_DEFUN([AX_CPP_VARARG_MACRO_ISO], [dnl
AS_VAR_PUSHDEF([VAR],[ax_cv_cpp_vararg_macro_iso])dnl
AC_CACHE_CHECK(
[for ISO C 1999 vararg macro support],
[VAR],
[AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[
#define macro(a, ...) func(a, __VA_ARGS__)
int func(int a, int b, int c);
]],
[[
int i = macro(1, 2, 3);
]]
)],
[VAR=yes],
[VAR=no]
)]
)dnl
AS_VAR_IF(
[VAR],
[yes],
[AC_DEFINE(
[HAVE_CPP_VARARG_MACRO_ISO],
[1],
[Define to 1 if your compiler supports ISO C99 variadic macros]
)]
)dnl
AS_VAR_POPDEF([VAR])dnl
])