* 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 d3e3502..6a86113 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2011-11-05 Stefano Lattarini <stefano.lattar...@gmail.com> + + 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 <stefano.lattar...@gmail.com> warnings: fix buglets for portability warnings diff --git a/m4/ar-lib.m4 b/m4/ar-lib.m4 index 822ca60..e45c558 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 ebd8c57..bb18111 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 d00f421..865e0bf 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 : -- 1.7.2.3