autoconf: add new AC_PROG_AR helper

https://github.com/libsdl-org/autoconf/commit/c48fdb81191c8b7c7c0dde6141b861b178a6a284

From c48fdb81191c8b7c7c0dde6141b861b178a6a284 Mon Sep 17 00:00:00 2001
From: Mike Frysinger <[EMAIL REDACTED]>
Date: Mon, 22 Feb 2021 11:09:16 -0500
Subject: [PATCH] add new AC_PROG_AR helper

This mirrors the existing RANLIB and related toolchain macros that
autoconf already exports.  Some projects assume `ar` is available
which isn't always safe, so provide a macro that probes the full
toolchain settings.

This also makes it easier to use AC_REQUIRE with the macro instead
of duplicating the AC_CHECK_TOOL call in projects.

  * lib/autoconf/programs.m4 (AC_PROG_AR): New macro.
  * doc/autoconf.texi: Document it.
  * tests/local.at (_AT_CHECK_ENV): Allow $AR output variable.
---
 doc/autoconf.texi        | 9 +++++++++
 lib/autoconf/programs.m4 | 8 ++++++++
 tests/local.at           | 2 +-
 3 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index 06a98dd0..49ee61cd 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -4158,6 +4158,15 @@ general program-check macros.
 These macros check for particular programs---whether they exist, and
 in some cases whether they support certain features.
 
+@defmac AC_PROG_AR
+@acindex{PROG_AR}
+@ovindex AR
+@c @caindex prog_AR
+@c @caindex prog_ac_ct_AR
+Set output variable @code{AR} to @samp{ar} if @code{ar} is found, and
+otherwise to @samp{:} (do nothing).
+@end defmac
+
 @defmac AC_PROG_AWK
 @acindex{PROG_AWK}
 @ovindex AWK
diff --git a/lib/autoconf/programs.m4 b/lib/autoconf/programs.m4
index a899218f..b5415176 100644
--- a/lib/autoconf/programs.m4
+++ b/lib/autoconf/programs.m4
@@ -341,6 +341,14 @@ fi
 # Please, keep this section sorted.
 # (But of course when keeping related things together).
 
+# AC_PROG_AR
+# --------------
+AN_MAKEVAR([AR], [AC_PROG_AR])
+AN_PROGRAM([ar], [AC_PROG_AR])
+AC_DEFUN([AC_PROG_AR],
+[AC_CHECK_TOOL(AR, ar, :)])
+
+
 # Check for gawk first since it's generally better.
 AN_MAKEVAR([AWK],  [AC_PROG_AWK])
 AN_PROGRAM([awk],  [AC_PROG_AWK])
diff --git a/tests/local.at b/tests/local.at
index 4135ad9a..cf907ada 100644
--- a/tests/local.at
+++ b/tests/local.at
@@ -399,7 +399,7 @@ if test -f state-env.before && test -f state-env.after; then
       [GFC|F77_DUMMY_MAIN|f77_(case|underscore)],
       [FC(_DUMMY_MAIN|FLAGS|LIBS|FLAGS_[fF]|_MODEXT|_MODINC|_MODOUT|_DEFINE)?],
       [ALLOCA|GETLOADAVG_LIBS|KMEM_GROUP|NEED_SETGID|POW_LIB],
-      [AWK|LEX|LEXLIB|LEX_OUTPUT_ROOT|LN_S|M4|MKDIR_P|RANLIB|SET_MAKE|YACC],
+      [AWK|LEX|LEXLIB|LEX_OUTPUT_ROOT|LN_S|M4|MKDIR_P|AR|RANLIB|SET_MAKE|YACC],
       [GREP|[EF]GREP|SED],
       [[_@]|.[*@%:@?$].],
       [argv|ARGC|LINENO|BASH_ARGC|BASH_ARGV|OLDPWD|PIPESTATUS|RANDOM],