1*a53f50b9Schristosdnl ###################################################################### 2*a53f50b9Schristosdnl check if compiler can handle variable-length argument macros 3*a53f50b9SchristosAC_DEFUN([AMU_VARARGS_MACROS], 4*a53f50b9Schristos[ 5*a53f50b9SchristosAC_CACHE_CHECK(if compiler can handle variable-length macros, 6*a53f50b9Schristosac_cv_varargs_macros, 7*a53f50b9Schristos[ 8*a53f50b9Schristos# try C99 style 9*a53f50b9SchristosAC_TRY_COMPILE( 10*a53f50b9Schristos[ 11*a53f50b9Schristos#define foo(str,size,fmt,...) bar(__FILE__,__LINE__,(str),(size),(fmt),__VA_ARGS__) 12*a53f50b9Schristos], 13*a53f50b9Schristos[ 14*a53f50b9Schristoschar a[80]; 15*a53f50b9Schristosfoo(a, sizeof(a), "%d,%d", 1, 2); 16*a53f50b9Schristos], ac_cv_varargs_macros=c99, 17*a53f50b9Schristos# else try gcc style 18*a53f50b9SchristosAC_TRY_COMPILE( 19*a53f50b9Schristos[ 20*a53f50b9Schristos#define foo(str,size,args...) bar(__FILE__,__LINE__,(str),(size),(fmt),args) 21*a53f50b9Schristos], 22*a53f50b9Schristos[ 23*a53f50b9Schristoschar a[80]; 24*a53f50b9Schristosfoo(a, sizeof(a), "%d,%d", 1, 2); 25*a53f50b9Schristos], ac_cv_varargs_macros=gcc, ac_cv_varargs_macros=none)) 26*a53f50b9Schristos]) 27*a53f50b9Schristosif test "$ac_cv_varargs_macros" = c99 28*a53f50b9Schristosthen 29*a53f50b9Schristos AC_DEFINE(HAVE_C99_VARARGS_MACROS, 1, 30*a53f50b9Schristos [System supports C99-style variable-length argument macros]) 31*a53f50b9Schristoselse 32*a53f50b9Schristos if test "$ac_cv_varargs_macros" = gcc 33*a53f50b9Schristos then 34*a53f50b9Schristos AC_DEFINE(HAVE_GCC_VARARGS_MACROS, 1, 35*a53f50b9Schristos [System supports GCC-style variable-length argument macros]) 36*a53f50b9Schristos fi 37*a53f50b9Schristosfi 38*a53f50b9Schristos]) 39*a53f50b9Schristosdnl ====================================================================== 40