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.
This commit is contained in:
Mike Frysinger 2021-02-22 11:09:16 -05:00 committed by Zack Weinberg
parent b0d5d2d3eb
commit c48fdb8119
No known key found for this signature in database
GPG Key ID: 384F8E68AC65B0D5
3 changed files with 18 additions and 1 deletions

View File

@ -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

View File

@ -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])

View File

@ -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],