From 9ff667addf39128f43d08d4ec56a6a94ec3bb062 Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Thu, 4 Oct 2007 22:21:19 +0000 Subject: Initial import of a C portability framework and utility functions from remctl so that the wallet client error handling can rest on a firmer foundation. --- m4/vamacros.m4 | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 m4/vamacros.m4 (limited to 'm4/vamacros.m4') diff --git a/m4/vamacros.m4 b/m4/vamacros.m4 new file mode 100644 index 0000000..1dd0f9f --- /dev/null +++ b/m4/vamacros.m4 @@ -0,0 +1,43 @@ +dnl vamacros.m4 -- Check for support for variadic macros. +dnl $Id$ +dnl +dnl This file defines two macros for probing for compiler support for variadic +dnl macros. Provided are RRA_C_C99_VAMACROS, which checks for support for the +dnl C99 variadic macro syntax, namely: +dnl +dnl #define macro(...) fprintf(stderr, __VA_ARGS__) +dnl +dnl and RRA_C_GNU_VAMACROS, which checks for support for the older GNU +dnl variadic macro syntax, namely: +dnl +dnl #define macro(args...) fprintf(stderr, args) +dnl +dnl They set HAVE_C99_VAMACROS or HAVE_GNU_VAMACROS as appropriate. +dnl +dnl Written by Russ Allbery +dnl Copyright 2006 Board of Trustees, Leland Stanford Jr. University +dnl See README for licensing terms. + +AC_DEFUN([RRA_C_C99_VAMACROS], +[AC_CACHE_CHECK([for C99 variadic macros], [rra_cv_c_c99_vamacros], +[AC_TRY_COMPILE( +[#include +#define error(...) fprintf(stderr, __VA_ARGS__)], +[error("foo"); error("foo %d", 0); return 0;], +[rra_cv_c_c99_vamacros=yes], [rra_cv_c_c99_vamacros=no])]) +if test $rra_cv_c_c99_vamacros = yes ; then + AC_DEFINE([HAVE_C99_VAMACROS], 1, + [Define if the compiler supports C99 variadic macros.]) +fi]) + +AC_DEFUN([RRA_C_GNU_VAMACROS], +[AC_CACHE_CHECK([for GNU-style variadic macros], [rra_cv_c_gnu_vamacros], +[AC_TRY_COMPILE( +[#include +#define error(args...) fprintf(stderr, args)], +[error("foo"); error("foo %d", 0); return 0;], +[rra_cv_c_gnu_vamacros=yes], [rra_cv_c_gnu_vamacros=no])]) +if test $rra_cv_c_gnu_vamacros = yes ; then + AC_DEFINE([HAVE_GNU_VAMACROS], 1, + [Define if the compiler supports GNU-style variadic macros.]) +fi]) -- cgit v1.2.3