From eea57793c7dde8b836ff1e6f8e232747a85b5dba Mon Sep 17 00:00:00 2001 From: Stefano Lattarini Date: Sat, 5 Nov 2011 21:35:40 +0100 Subject: [PATCH] ar-lib: fix configure output for "unrecognized archiver interface" * m4/ar-lib.m4: Ensure that, even when an error is hit while trying to determine the archiver interface kind, the "checking archiver interface" message from configure is properly terminated before an error message is printed, to avoid slightly garbled output. * tests/ar4.test: Enhance. * tests/ar5.test: Likewise. --- ChangeLog | 10 ++++++++++ m4/ar-lib.m4 | 7 +++++-- tests/ar4.test | 8 ++++++-- tests/ar5.test | 13 +++++++++++-- 4 files changed, 32 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index d3e350252..6a861137a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2011-11-05 Stefano Lattarini + + ar-lib: fix configure output for "unrecognized archiver interface" + * m4/ar-lib.m4: Ensure that, even when an error is hit while trying + to determine the archiver interface kind, the "checking archiver + interface" message from configure is properly terminated before + an error message is printed, to avoid slightly garbled output. + * tests/ar4.test: Enhance. + * tests/ar5.test: Likewise. + 2011-11-04 Stefano Lattarini warnings: fix buglets for portability warnings diff --git a/m4/ar-lib.m4 b/m4/ar-lib.m4 index 822ca6085..e45c558dd 100644 --- a/m4/ar-lib.m4 +++ b/m4/ar-lib.m4 @@ -33,8 +33,7 @@ AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else - m4_default([$1], - [AC_MSG_ERROR([could not determine $AR interface])]) + am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a @@ -53,6 +52,10 @@ lib) # similar. AR="$am_aux_dir/ar-lib $AR" ;; +unknown) + m4_default([$1], + [AC_MSG_ERROR([could not determine $AR interface])]) + ;; esac AC_SUBST([AR])dnl ]) diff --git a/tests/ar4.test b/tests/ar4.test index ebd8c576f..bb181118b 100755 --- a/tests/ar4.test +++ b/tests/ar4.test @@ -27,9 +27,13 @@ END $ACLOCAL $AUTOCONF -./configure AR=/bin/false 2>stderr && { cat stderr >&2; Exit 1; } +st=0; ./configure AR=/bin/false >stdout 2>stderr || st=$? +cat stdout cat stderr >&2 +test $st -eq 1 -grep 'configure: error: could not determine /bin/false interface' stderr +grep '^checking.* archiver .*interface.*\.\.\. unknown' stdout +grep '^configure: error: could not determine /bin/false interface' stderr +ls *conftest* && Exit 1 : diff --git a/tests/ar5.test b/tests/ar5.test index d00f421bd..865e0bf81 100755 --- a/tests/ar5.test +++ b/tests/ar5.test @@ -21,13 +21,22 @@ set -e cat >> configure.in << 'END' -AM_PROG_AR([echo spy > bad-archiver-interface-detected]) +AM_PROG_AR([ + echo spy > bad-archiver-interface-detected + AC_MSG_CHECKING([for something else]) + AC_MSG_RESULT([found it]) + echo Grep This +]) END $ACLOCAL $AUTOCONF -./configure AR=/bin/false +./configure AR=/bin/false >stdout || { cat stdout; Exit 1; } +cat stdout +grep '^checking.* archiver .*interface.*\.\.\. unknown$' stdout +grep '^checking for something else\.\.\. found it$' stdout +grep '^Grep This$' stdout test -f bad-archiver-interface-detected : -- 2.47.2