Patrick Welche <prlw1@cam.ac.uk>
[netbsd-mini2440.git] / external / bsd / am-utils / dist / m4 / macros / check_varargs_macros.m4
blob44bd3edf198937c3ae380cb32adf7e9c3b6cbb9c
1 dnl ######################################################################
2 dnl check if compiler can handle variable-length argument macros
3 AC_DEFUN([AMU_VARARGS_MACROS],
5 AC_CACHE_CHECK(if compiler can handle variable-length macros,
6 ac_cv_varargs_macros,
8 # try C99 style
9 AC_TRY_COMPILE(
11 #define foo(str,size,fmt,...)  bar(__FILE__,__LINE__,(str),(size),(fmt),__VA_ARGS__)
14 char a[80];
15 foo(a, sizeof(a), "%d,%d", 1, 2);
16 ], ac_cv_varargs_macros=c99,
17 # else try gcc style
18 AC_TRY_COMPILE(
20 #define foo(str,size,args...)  bar(__FILE__,__LINE__,(str),(size),(fmt),args)
23 char a[80];
24 foo(a, sizeof(a), "%d,%d", 1, 2);
25 ], ac_cv_varargs_macros=gcc, ac_cv_varargs_macros=none))
27 if test "$ac_cv_varargs_macros" = c99
28 then
29   AC_DEFINE(HAVE_C99_VARARGS_MACROS, 1,
30          [System supports C99-style variable-length argument macros])
31 else
32   if test "$ac_cv_varargs_macros" = gcc
33   then
34     AC_DEFINE(HAVE_GCC_VARARGS_MACROS, 1,
35          [System supports GCC-style variable-length argument macros])
36   fi
39 dnl ======================================================================