Signed-off-by: Alon Bar-Lev <alon.bar...@gmail.com> --- m4/ax_varargs.m4 | 78 ++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 55 insertions(+), 23 deletions(-)
diff --git a/m4/ax_varargs.m4 b/m4/ax_varargs.m4 index fd5e8b0..37cdebe 100644 --- a/m4/ax_varargs.m4 +++ b/m4/ax_varargs.m4 @@ -6,18 +6,34 @@ dnl dnl @version dnl @author James Yonan <j...@yonan.net>, Matthias Andree <matthias.and...@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, [dnl - AC_COMPILE_IFELSE([AC_LANG_SOURCE([ - #define macro(a, b...) func(a, b) - int func(int a, int b, int c); - int test() { return macro(1, 2, 3); } - ])], [ VAR=yes ], [VAR=no])]) - if test $VAR = yes ; then - AC_DEFINE([HAVE_CPP_VARARG_MACRO_GCC], 1, - [Define to 1 if your compiler supports GNU GCC-style variadic macros]) - fi - AS_VAR_POPDEF([VAR])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 test() { return 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 @@ -28,16 +44,32 @@ dnl dnl @version dnl @author James Yonan <j...@yonan.net>, Matthias Andree <matthias.and...@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, [dnl - AC_COMPILE_IFELSE([AC_LANG_SOURCE([ + 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 test() { return macro(1, 2, 3); } - ])], [ VAR=yes ], [VAR=no])]) - if test $VAR = yes ; then - AC_DEFINE([HAVE_CPP_VARARG_MACRO_ISO], 1, - [Define to 1 if your compiler supports ISO C99 variadic macros]) - fi - AS_VAR_POPDEF([VAR])dnl +int func(int a, int b, int c); +int test() { return 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 ]) -- 1.7.3.4