1dnl ###################################################################### 2dnl check if compiler can handle variable-length argument macros 3AC_DEFUN([AMU_VARARGS_MACROS], 4[ 5AC_CACHE_CHECK(if compiler can handle variable-length macros, 6ac_cv_varargs_macros, 7[ 8# try C99 style 9AC_TRY_COMPILE( 10[ 11#define foo(str,size,fmt,...) bar(__FILE__,__LINE__,(str),(size),(fmt),__VA_ARGS__) 12], 13[ 14char a[80]; 15foo(a, sizeof(a), "%d,%d", 1, 2); 16], ac_cv_varargs_macros=c99, 17# else try gcc style 18AC_TRY_COMPILE( 19[ 20#define foo(str,size,args...) bar(__FILE__,__LINE__,(str),(size),(fmt),args) 21], 22[ 23char a[80]; 24foo(a, sizeof(a), "%d,%d", 1, 2); 25], ac_cv_varargs_macros=gcc, ac_cv_varargs_macros=none)) 26]) 27if test "$ac_cv_varargs_macros" = c99 28then 29 AC_DEFINE(HAVE_C99_VARARGS_MACROS, 1, 30 [System supports C99-style variable-length argument macros]) 31else 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 37fi 38]) 39dnl ====================================================================== 40