diff options
author | Russ Allbery <rra@stanford.edu> | 2007-10-04 22:21:19 +0000 |
---|---|---|
committer | Russ Allbery <rra@stanford.edu> | 2007-10-04 22:21:19 +0000 |
commit | 9ff667addf39128f43d08d4ec56a6a94ec3bb062 (patch) | |
tree | 41cd39045fb2d37d343608af57aebf844ecd5690 /m4/vamacros.m4 | |
parent | 2f9387bdf0e047bbd193532c4fed209acabd0e7a (diff) |
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.
Diffstat (limited to 'm4/vamacros.m4')
-rw-r--r-- | m4/vamacros.m4 | 43 |
1 files changed, 43 insertions, 0 deletions
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 <rra@stanford.edu> +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 <stdio.h> +#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 <stdio.h> +#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]) |