|
Packit |
bc1512 |
# GEGL_VARIADIC_MACROS
|
|
Packit |
bc1512 |
# --------------------
|
|
Packit |
bc1512 |
# check for flavours of variadic macros
|
|
Packit |
bc1512 |
AC_DEFUN([GEGL_VARIADIC_MACROS],
|
|
Packit |
bc1512 |
[AC_BEFORE([AC_PROG_CXX], [$0])
|
|
Packit |
bc1512 |
AC_REQUIRE([AC_PROG_CPP])
|
|
Packit |
bc1512 |
AC_CACHE_CHECK([for GNUC variadic macros],
|
|
Packit |
bc1512 |
[gegl_cv_prog_gnuc_variadic_macros],
|
|
Packit |
bc1512 |
[# gcc-2.95.x supports both gnu style and ISO varargs, but if -ansi
|
|
Packit |
bc1512 |
# is passed ISO vararg support is turned off, and there is no work
|
|
Packit |
bc1512 |
# around to turn it on, so we unconditionally turn it off.
|
|
Packit |
bc1512 |
{ echo '#if __GNUC__ == 2 && __GNUC_MINOR__ == 95'
|
|
Packit |
bc1512 |
echo ' yes '
|
|
Packit |
bc1512 |
echo '#endif'; } > conftest.c
|
|
Packit |
bc1512 |
if ${CPP} conftest.c | grep yes > /dev/null; then
|
|
Packit |
bc1512 |
gegl_cv_prog_c_variadic_macros=no
|
|
Packit |
bc1512 |
gegl_cv_prog_cxx_variadic_macros=no
|
|
Packit |
bc1512 |
fi
|
|
Packit |
bc1512 |
AC_TRY_COMPILE([],[int a(int p1, int p2, int p3);
|
|
Packit |
bc1512 |
#define call_a(params...) a(1,params)
|
|
Packit |
bc1512 |
call_a(2,3);
|
|
Packit |
bc1512 |
],
|
|
Packit |
bc1512 |
gegl_cv_prog_gnuc_variadic_macros=yes,
|
|
Packit |
bc1512 |
gegl_cv_prog_gnuc_variadic_macros=no)
|
|
Packit |
bc1512 |
])
|
|
Packit |
bc1512 |
if test x$gegl_cv_prog_gnuc_variadic_macros = xyes; then
|
|
Packit |
bc1512 |
AC_DEFINE(GEGL_GNUC_VARIADIC_MACROS, 1, [Define if the C pre-processor supports GNU style variadic macros])
|
|
Packit |
bc1512 |
fi
|
|
Packit |
bc1512 |
|
|
Packit |
bc1512 |
AC_CACHE_CHECK([for ISO C99 variadic macros in C],
|
|
Packit |
bc1512 |
[gegl_cv_prog_c_variadic_macros],
|
|
Packit |
bc1512 |
[AC_TRY_COMPILE([],[int a(int p1, int p2, int p3);
|
|
Packit |
bc1512 |
#define call_a(...) a(1,__VA_ARGS__)
|
|
Packit |
bc1512 |
call_a(2,3);
|
|
Packit |
bc1512 |
],
|
|
Packit |
bc1512 |
gegl_cv_prog_c_variadic_macros=yes,
|
|
Packit |
bc1512 |
gegl_cv_prog_c_variadic_macros=no)
|
|
Packit |
bc1512 |
])
|
|
Packit |
bc1512 |
if test x$gegl_cv_prog_c_variadic_macros = xyes ; then
|
|
Packit |
bc1512 |
AC_DEFINE(GEGL_ISO_VARIADIC_MACROS, 1, [Define if the C pre-processor supports variadic macros])
|
|
Packit |
bc1512 |
fi
|
|
Packit |
bc1512 |
|
|
Packit |
bc1512 |
AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
|
Packit |
bc1512 |
[AC_CACHE_CHECK([for ISO C99 variadic macros in C++],
|
|
Packit |
bc1512 |
[gegl_cv_prog_cxx_variadic_macros],
|
|
Packit |
bc1512 |
[AC_LANG_PUSH(C++)
|
|
Packit |
bc1512 |
AC_TRY_COMPILE([],[int a(int p1, int p2, int p3);
|
|
Packit |
bc1512 |
#define call_a(...) a(1,__VA_ARGS__)
|
|
Packit |
bc1512 |
call_a(2,3);
|
|
Packit |
bc1512 |
],
|
|
Packit |
bc1512 |
gegl_cv_prog_cxx_variadic_macros=yes,
|
|
Packit |
bc1512 |
gegl_cv_prog_cxx_variadic_macros=no)
|
|
Packit |
bc1512 |
AC_LANG_POP])],
|
|
Packit |
bc1512 |
[# No C++ compiler+ gegl_cv_prog_cxx_variadic_macros=no])
|
|
Packit |
bc1512 |
if test x$gegl_cv_prog_cxx_variadic_macros = xyes ; then
|
|
Packit |
bc1512 |
AC_DEFINE(GEGL_ISO_CXX_VARIADIC_MACROS, 1, [Define if the C++ pre-processor supports variadic macros])
|
|
Packit |
bc1512 |
fi
|
|
Packit |
bc1512 |
]) dnl GEGL_VARIADIC_MACROS
|