autoconf: Avoid M4 1.6 warnings about deprecated option.

https://github.com/libsdl-org/autoconf/commit/714eeee8723ac25ce5a01cb59c260fc98d0f67c9

From 714eeee8723ac25ce5a01cb59c260fc98d0f67c9 Mon Sep 17 00:00:00 2001
From: Eric Blake <[EMAIL REDACTED]>
Date: Wed, 20 Sep 2006 02:44:51 +0000
Subject: [PATCH] Avoid M4 1.6 warnings about deprecated option.

* config/m4.m4 (AC_PROG_GNU_M4): Check for m4 --debugfile support.
* bin/Makefile.am (edit): Substitute M4_DEBUGFILE.
* bin/autom4te.in (handle_m4): Favor --debugfile over misnamed
--error-output, to avoid warnings with M4 1.6.

(cherry picked from commit 8dc951191c1083fda547d74b95897fd8adb7c6b6)
---
 ChangeLog       |  8 ++++++++
 bin/Makefile.am | 31 +++++++++++++++++--------------
 bin/autom4te.in |  4 ++--
 config/m4.m4    | 19 +++++++++++++++----
 4 files changed, 42 insertions(+), 20 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 6b6b4807..354727a4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-09-19  Eric Blake  <ebb9@byu.net>
+
+	Avoid M4 1.6 warnings about deprecated option.
+	* config/m4.m4 (AC_PROG_GNU_M4): Check for m4 --debugfile support.
+	* bin/Makefile.am (edit): Substitute M4_DEBUGFILE.
+	* bin/autom4te.in (handle_m4): Favor --debugfile over misnamed
+	--error-output, to avoid warnings with M4 1.6.
+
 2007-12-12  Eric Blake  <ebb9@byu.net>
 
 	Fix spurious testsuite failure with M4 1.4.11.
diff --git a/bin/Makefile.am b/bin/Makefile.am
index 378f7f98..b8675253 100644
--- a/bin/Makefile.am
+++ b/bin/Makefile.am
@@ -1,7 +1,9 @@
 ## Process this file with automake to create Makefile.in. -*-Makefile-*-
 
 ## Makefile for Autoconf.
-## Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+
+## Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008
+## 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
@@ -36,19 +38,20 @@ CLEANFILES = $(bin_SCRIPTS)
 ## ------------- ##
 
 edit = sed \
-	-e 's,@SHELL\@,$(SHELL),g' \
-	-e 's,@PERL\@,$(PERL),g' \
-	-e 's,@bindir\@,$(bindir),g' \
-	-e 's,@datadir\@,$(pkgdatadir),g' \
-	-e 's,@prefix\@,$(prefix),g' \
-	-e 's,@autoconf-name\@,'`echo autoconf | sed '$(transform)'`',g' \
-	-e 's,@autoheader-name\@,'`echo autoheader | sed '$(transform)'`',g' \
-	-e 's,@autom4te-name\@,'`echo autom4te | sed '$(transform)'`',g' \
-	-e 's,@M4\@,$(M4),g' \
-	-e 's,@AWK\@,$(AWK),g' \
-	-e 's,@VERSION\@,$(VERSION),g' \
-	-e 's,@PACKAGE_NAME\@,$(PACKAGE_NAME),g' \
-	-e 's,@configure_input\@,Generated from $<; do not edit by hand.,g'
+	-e 's|@SHELL[@]|$(SHELL)|g' \
+	-e 's|@PERL[@]|$(PERL)|g' \
+	-e 's|@bindir[@]|$(bindir)|g' \
+	-e 's|@datadir[@]|$(pkgdatadir)|g' \
+	-e 's|@prefix[@]|$(prefix)|g' \
+	-e 's|@autoconf-name[@]|'`echo autoconf | sed '$(transform)'`'|g' \
+	-e 's|@autoheader-name[@]|'`echo autoheader | sed '$(transform)'`'|g' \
+	-e 's|@autom4te-name[@]|'`echo autom4te | sed '$(transform)'`'|g' \
+	-e 's|@M4[@]|$(M4)|g' \
+	-e 's|@M4_DEBUGFILE[@]|$(M4_DEBUGFILE)|g' \
+	-e 's|@AWK[@]|$(AWK)|g' \
+	-e 's|@VERSION[@]|$(VERSION)|g' \
+	-e 's|@PACKAGE_NAME[@]|$(PACKAGE_NAME)|g' \
+	-e 's|@configure_input[@]|Generated from $@.in; do not edit by hand.|g'
 
 # autoconf is written in M4sh.
 AUTOM4SH = $(top_builddir)/tests/autom4te --language M4sh --cache ''
diff --git a/bin/autom4te.in b/bin/autom4te.in
index b9386c4f..4312da29 100644
--- a/bin/autom4te.in
+++ b/bin/autom4te.in
@@ -448,7 +448,7 @@ sub handle_m4 ($@)
 {
   my ($req, @macro) = @_;
 
-  # GNU m4 appends when using --error-output.
+  # GNU m4 appends when using --debugfile/--error-output.
   unlink ($tcache . $req->id . "t");
 
   # Run m4.
@@ -461,7 +461,7 @@ sub handle_m4 ($@)
 	   . join (' --include=', '', @include)
 	   . ' --debug=aflq'
 	   . (!exists $ENV{'AUTOM4TE_NO_FATAL'} ? ' --fatal-warning' : '')
-	   . " --error-output=$tcache" . $req->id . "t"
+	   . " @M4_DEBUGFILE@=$tcache" . $req->id . "t"
 	   . join (' --trace=',   '', sort @macro)
 	   . " " . files_to_options (@ARGV)
 	   . ' </dev/null'
diff --git a/config/m4.m4 b/config/m4.m4
index 7c9145e0..69257aa2 100644
--- a/config/m4.m4
+++ b/config/m4.m4
@@ -1,4 +1,4 @@
-# Copyright 2000 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2006, 2008 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
@@ -18,12 +18,23 @@
 # AC_PROG_GNU_M4
 # --------------
 # Check for GNU m4, at least 1.3 (supports frozen files).
+# Also, check whether --error-output (through 1.4.x, but warns in 1.6)
+# or --debugfile (since 1.4.7) is supported, and AC_SUBST M4_DEBUGFILE.
 AC_DEFUN([AC_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_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])])
+fi])
+if test $ac_cv_prog_gnu_m4 = yes ; then
+  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)
+fi
+])