From 8ba62e3e10ae35a50dd4ae0cf4d87b3ffe00852c Mon Sep 17 00:00:00 2001 From: "Joel E. Denny" Date: Sat, 4 Apr 2009 21:12:23 -0400 Subject: [PATCH] Replace BISON_PROG_GNU_M4 with Autoconf's AC_PROG_GNU_M4. If the first m4 in $PATH is wrong, it keeps looking. Moreover, its requirements for a correct m4 are stricter. * m4/m4.m4: Replace with Autoconf 2.63's m4/m4.m4. * configure.ac: Update to use AC_PROG_GNU_M4. Reported by Eric Blake. --- ChangeLog | 9 +++++++ configure.ac | 9 +++---- m4/m4.m4 | 71 +++++++++++++++++++++++++++++++++------------------- 3 files changed, 57 insertions(+), 32 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6de34795..e3d6dddd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2009-04-04 Joel E. Denny + + Replace BISON_PROG_GNU_M4 with Autoconf's AC_PROG_GNU_M4. + If the first m4 in $PATH is wrong, it keeps looking. Moreover, its + requirements for a correct m4 are stricter. + * m4/m4.m4: Replace with Autoconf 2.63's m4/m4.m4. + * configure.ac: Update to use AC_PROG_GNU_M4. + Reported by Eric Blake. + 2009-04-03 Joel E. Denny Help with updating web manual. diff --git a/configure.ac b/configure.ac index f1ebd8de..0954c31b 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ # Configure template for GNU Bison. -*-Autoconf-*- # -# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software -# Foundation, Inc. +# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -92,10 +92,7 @@ AC_SUBST([YACC_LIBRARY]) AC_PROG_LEX AC_PROG_YACC AC_PROG_RANLIB -BISON_PROG_GNU_M4 -if test x"$ac_cv_prog_gnu_m4" != xyes; then - AC_MSG_ERROR([GNU M4 1.4 is required]) -fi +AC_PROG_GNU_M4 AC_DEFINE_UNQUOTED([M4], ["$M4"], [Define to the GNU M4 executable name.]) AM_MISSING_PROG([HELP2MAN], [help2man]) AC_PATH_PROG([XSLTPROC], [xsltproc]) diff --git a/m4/m4.m4 b/m4/m4.m4 index be0140f0..f27d8c05 100644 --- a/m4/m4.m4 +++ b/m4/m4.m4 @@ -1,27 +1,46 @@ -# Copyright 2000 Free Software Foundation, Inc. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# m4.m4 serial 5 +dnl Copyright (C) 2000, 2006, 2007, 2008 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. -# BISON_PROG_GNU_M4 -# ----------------- -# Check for GNU m4, at least 1.3 (supports frozen files). -AC_DEFUN([BISON_PROG_GNU_M4], -[AC_PATH_PROGS(M4, gm4 gnum4 m4, m4) -AC_CACHE_CHECK(whether m4 supports frozen files, ac_cv_prog_gnu_m4, -[ac_cv_prog_gnu_m4=no -if test x"$M4" != x; then - case `$M4 --help < /dev/null 2>&1` in - *reload-state*) ac_cv_prog_gnu_m4=yes ;; - esac -fi])]) +# AC_PROG_GNU_M4 +# -------------- +# Check for GNU M4, at least 1.4.5 (all earlier versions had a bug in +# trace support: +# http://lists.gnu.org/archive/html/bug-gnu-utils/2006-11/msg00096.html) +# Also, check whether --error-output (through 1.4.x) or --debugfile (2.0) +# is supported, and AC_SUBST M4_DEBUGFILE accordingly. +AC_DEFUN([AC_PROG_GNU_M4], + [AC_ARG_VAR([M4], [Location of GNU M4 1.4.5 or later. Defaults to the first + program of `m4', `gm4', or `gnum4' on PATH that meets Autoconf needs.]) + AC_CACHE_CHECK([for GNU M4 that supports accurate traces], [ac_cv_path_M4], + [rm -f conftest.m4f +AC_PATH_PROGS_FEATURE_CHECK([M4], [m4 gm4 gnum4], + [dnl Creative quoting here to avoid raw dnl and ifdef in configure. + # Root out GNU M4 1.4.4, as well as non-GNU m4 that ignore -t, -F. + ac_snippet=change'quote(<,>)in''dir(,mac,bug)d'nl + test -z "`$ac_path_M4 -F conftest.m4f &1`" \ + && test -z "`echo $ac_snippet | $ac_path_M4 --trace=mac 2>&1`" \ + && test -f conftest.m4f \ + && ac_cv_path_M4=$ac_path_M4 ac_path_M4_found=: + rm -f conftest.m4f], + [AC_MSG_ERROR([no acceptable m4 could be found in \$PATH. +GNU M4 1.4.5 or later is required; 1.4.11 is recommended])])]) + M4=$ac_cv_path_M4 + AC_CACHE_CHECK([how m4 supports trace files], [ac_cv_prog_gnu_m4_debugfile], + [case `$M4 --help < /dev/null 2>&1` in + *debugfile*) ac_cv_prog_gnu_m4_debugfile=--debugfile ;; + *) ac_cv_prog_gnu_m4_debugfile=--error-output ;; + esac]) + AC_SUBST([M4_DEBUGFILE], [$ac_cv_prog_gnu_m4_debugfile]) +]) + +# Compatibility for bootstrapping with Autoconf 2.61. +dnl FIXME - replace this with AC_PREREQ([2.62]) after the release. +# AC_PATH_PROGS_FEATURE_CHECK was added the same time the slightly broken, +# undocumented _AC_PATH_PROG_FEATURE_CHECK was deleted. +m4_ifndef([AC_PATH_PROGS_FEATURE_CHECK], + [m4_define([AC_PATH_PROGS_FEATURE_CHECK], + [_AC_PATH_PROG_FEATURE_CHECK([$1], [$2], [$3], [$5]) +])]) -- 2.45.2