From: Paolo Bonzini Date: Sun, 12 Jul 2009 11:50:24 +0000 (+0200) Subject: use m4 -g when available X-Git-Tag: v2.64~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=93a2679e007e0d414178aaff14b654e8b1ad26bc;p=thirdparty%2Fautoconf.git use m4 -g when available M4sugar requires GNU m4 extensions to be enabled. Override POSIXLY_CORRECT using -g. * m4/m4.m4: Unset POSIXLY_CORRECT during first test. Test for -g. Warn user if he has POSIXLY_CORRECT set but -g is not supported. * bin/Makefile.am: Substitute @M4_GNU@ into generated files. * bin/autom4te.in: Pass @M4_GNU@ to m4. --- diff --git a/ChangeLog b/ChangeLog index f5434bda7..67520c05c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2009-07-13 Paolo Bonzini + + Use m4 -g when available. + * m4/m4.m4: Unset POSIXLY_CORRECT during first test. Test for -g. + Warn user if he has POSIXLY_CORRECT set but -g is not supported. + * bin/Makefile.am: Substitute @M4_GNU@ into generated files. + * bin/autom4te.in: Pass @M4_GNU@ to m4. + 2009-07-13 Eric Blake Fix previous patch. diff --git a/bin/Makefile.am b/bin/Makefile.am index ba88ab01f..da65b85ff 100644 --- a/bin/Makefile.am +++ b/bin/Makefile.am @@ -46,6 +46,7 @@ edit = sed \ -e 's|@autom4te-name[@]|'`echo autom4te | sed '$(transform)'`'|g' \ -e 's|@M4[@]|$(M4)|g' \ -e 's|@M4_DEBUGFILE[@]|$(M4_DEBUGFILE)|g' \ + -e 's|@M4_GNU[@]|$(M4_GNU)|g' \ -e 's|@AWK[@]|$(AWK)|g' \ -e 's|@RELEASE_YEAR[@]|'$(RELEASE_YEAR)'|g' \ -e 's|@VERSION[@]|$(VERSION)|g' \ diff --git a/bin/autom4te.in b/bin/autom4te.in index cf425bb43..1baf507ff 100644 --- a/bin/autom4te.in +++ b/bin/autom4te.in @@ -463,7 +463,7 @@ sub handle_m4 ($@) # # We don't output directly to the cache files, to avoid problems # when we are interrupted (that leaves corrupted files). - xsystem ("$m4" + xsystem ("$m4 @M4_GNU@" . join (' --include=', '', map { shell_quote ($_) } @include) . ' --debug=aflq' . (!exists $ENV{'AUTOM4TE_NO_FATAL'} ? ' --fatal-warning' : '') diff --git a/m4/m4.m4 b/m4/m4.m4 index dd90cca5e..975f24a84 100644 --- a/m4/m4.m4 +++ b/m4/m4.m4 @@ -1,4 +1,4 @@ -# m4.m4 serial 6 +# m4.m4 serial 7 # Copyright (C) 2000, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. @@ -20,6 +20,8 @@ AC_DEFUN([AC_PROG_GNU_M4], 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_had_posixly_correct=${POSIXLY_CORRECT:+yes} +AS_UNSET([POSIXLY_CORRECT]) 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. @@ -32,6 +34,24 @@ AC_PATH_PROGS_FEATURE_CHECK([M4], [m4 gm4 gnum4], [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([whether $ac_cv_path_M4 accepts -g], [ac_cv_prog_gnu_m4_gnu], + [case `$M4 --help < /dev/null 2>&1` in + *--gnu*) ac_cv_prog_gnu_m4_gnu=yes ;; + *) ac_cv_prog_gnu_m4_gnu=no ;; + esac]) + if test "$ac_cv_prog_gnu_m4_gnu" = yes; then + M4_GNU=-g + else + M4_GNU= + fi + AC_SUBST([M4_GNU]) + if test x$ac_had_posixly_correct = xyes; then + POSIXLY_CORRECT=: + if test $ac_cv_prog_gnu_m4_gnu = no; then + AC_MSG_WARN([The version of M4 that was found does not support -g.]) + AC_MSG_WARN([Using it with POSIXLY_CORRECT set may cause problems.]) + fi + fi 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 ;;