netbsd/external/bsd/am-utils/dist/m4/macros/check_varargs_macros.m4
2013-04-06 16:48:33 +02:00

40 lines
1.0 KiB
Plaintext

dnl ######################################################################
dnl check if compiler can handle variable-length argument macros
AC_DEFUN([AMU_VARARGS_MACROS],
[
AC_CACHE_CHECK(if compiler can handle variable-length macros,
ac_cv_varargs_macros,
[
# try C99 style
AC_TRY_COMPILE(
[
#define foo(str,size,fmt,...) bar(__FILE__,__LINE__,(str),(size),(fmt),__VA_ARGS__)
],
[
char a[80];
foo(a, sizeof(a), "%d,%d", 1, 2);
], ac_cv_varargs_macros=c99,
# else try gcc style
AC_TRY_COMPILE(
[
#define foo(str,size,args...) bar(__FILE__,__LINE__,(str),(size),(fmt),args)
],
[
char a[80];
foo(a, sizeof(a), "%d,%d", 1, 2);
], ac_cv_varargs_macros=gcc, ac_cv_varargs_macros=none))
])
if test "$ac_cv_varargs_macros" = c99
then
AC_DEFINE(HAVE_C99_VARARGS_MACROS, 1,
[System supports C99-style variable-length argument macros])
else
if test "$ac_cv_varargs_macros" = gcc
then
AC_DEFINE(HAVE_GCC_VARARGS_MACROS, 1,
[System supports GCC-style variable-length argument macros])
fi
fi
])
dnl ======================================================================