> So AC_HEADER_STDBOOL should remove any preexisting stdbool.h before > doing any tests that depend on stdbool.h.
Fixed. > I don't see why this would be needed. `make distclean' can just > remove stdbool.h unconditionally. Right. > Can't you use ac_cv_header_stdbool_h for this purpose? ac_cv_header_stdbool_h was just yes/no -- but of course it can be used for it. STDBOOL_H was just a relic of the GNU gettext test, so let's remove it. > There's no reason to index STAT_MACROS_BROKEN here. I had noted that after posting :-( > If you use this macro, you should also add > @file{@var{directory}/stdbool.h} to the list of files you remove in > @code{distclean} targets. Ok. > bool a1[false || !true ? -1 : 1]; > #if !defined false || !true || !defined bool > int a2[-1]; > #endif Ok again (though I liked my version more...) > ac_file=m4_default([$2], .)/stdbool.h You never end learning m4sugar'isms. > The generated file should contain a copyright notice; otherwise the > file is not free. I suggest appending the following text here: Fixed in this patch. I also wonder if it's good to turn the AC_CONFIG_COMMANDS line to AC_CONFIG_COMMANDS(m4_ifelse([$2], , , [$2]/)stdbool.h, [ Do you gurus know which one integrates better with Automake? > One last thing: you need to sign papers for Autoconf for us to accept > this contribution, as it's nontrivial. I'll send you the forms if you > don't have them already. I'll send assign.changes tomorrow. Paolo diff -r -U3 old/doc/autoconf.texi new/doc/autoconf.texi --- old/doc/autoconf.texi Fri Nov 2 17:10:56 2001 +++ new/doc/autoconf.texi Thu Nov 8 21:19:58 2001 @@ -3996,6 +3996,19 @@ @end defmac +@defmac AC_HEADER_STDBOOL (@var{path}) +@acindex HEADER_STDBOOL +If @file{stdbool.h} is absent or does not work correctly, create a +file @file{@var{directory}/stdbool.h} (default @file{./stdbool.h}) +that does work. This macro invokes @code{AC_CONFIG_COMMANDS} so it +is an instantiating macro; see @ref{Configuration Actions}. + +If you use this macro, you should also add +@file{@var{directory}/stdbool.h} to the list of files you remove in +@code{distclean} targets. +@end defmac + + @defmac AC_HEADER_STDC @acindex HEADER_STDC @cvindex STDC_HEADERS diff -r -U3 old/lib/autoconf/headers.m4 new/lib/autoconf/headers.m4 --- old/lib/autoconf/headers.m4 Wed Oct 10 15:08:59 2001 +++ new/lib/autoconf/headers.m4 Thu Nov 8 21:26:23 2001 @@ -395,6 +395,67 @@ ])# AC_HEADER_STAT +# AC_HEADER_STDBOOL +# ----------------- +AC_DEFUN([AC_HEADER_STDBOOL], [ +AC_CACHE_CHECK(for a working stdbool.h, ac_cv_header_stdbool_h, [ + ac_file=m4_default([$2], .)/stdbool.h + rm -f $ac_file + AC_TRY_COMPILE([#include <stdbool.h> +bool a1[false || !true ? -1 : 1]; +#if !defined false || !true || !defined bool +int a2[-1]; +#endif +], [], ac_cv_header_stdbool_h=yes, ac_cv_header_stdbool_h=no)]) + +AC_CONFIG_COMMANDS(stdbool.h, [ + ac_file=m4_default([$2], .)/stdbool.h + rm -f $ac_file + if test $ac_cv_header_stdbool_h = no; then + echo config.status: creating $ac_file + cat > $ac_file << \EOF_STDBOOL_H +/* ISO C 99 <stdbool.h> for platforms that lack it. + 7.16. Boolean type and values + + Written by Bruno Haible <[EMAIL PROTECTED]>, 2001. + Copyright (C) 2001 Free Software Foundation, Inc. + Copying and distribution of this stdbool.h file, with or without + modification, are permitted provided the copyright notice and this + notice are preserved. */ +#ifndef _STDBOOL_H +#define _STDBOOL_H + +/* Everybody seems to #define false 0, true 1. We use the same + definitions below, but temporarily we have to #undef them. */ +#ifdef false +# undef false +#endif +#ifdef true +# undef true +#endif + +/* For the sake of symbolic names in gdb, define _Bool as an enum type. */ +#ifndef __cplusplus +typedef enum { false = 0, true = 1 } _Bool; +#else +typedef bool _Bool; +#endif +#define bool _Bool + +/* The other macros must be usable in preprocessor directives. */ +#define false 0 +#define true 1 +#define __bool_true_false_are_defined 1 + +#endif /* _STDBOOL_H */ +EOF_STDBOOL_H +fi + ], + [ac_cv_header_stdbool_h="$ac_cv_header_stdbool_h"]) + +])# AC_HEADER_STDBOOL + + # AC_HEADER_STDC # -------------- AC_DEFUN([AC_HEADER_STDC], -- |_ _ _ __ |_)(_)| ) ,' -------- '-._