Subject: bug#10237: closed (Re: bug#10237: bug#9928: AM_SILENT_RULES does not work with NonStop make)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 30 Dec 2011 12:54:02 +0000

Your bug report

#10237: AM_SILENT_RULES does not work with NonStop make

which was filed against the automake package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
10237: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10237
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#10237: bug#9928: AM_SILENT_RULES does not work with NonStop make
From: Stefano Lattarini <[email-masked]>
To: Paul Eggert <[email-masked]>
Cc: [email-masked], [email-masked], [email-masked], [email-masked]
Date: Fri, 30 Dec 2011 13:50:04 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

On 12/28/2011 09:19 PM, Stefano Lattarini wrote:
>
> I did some testing on Debian unstable, Solaris 10, NetBSD 5.1 and Cygwin 1.5 (in
> part by running the relevant test cases from the automake testsuite, in part
> trying out the build system of GNU coreutils).   Everything seems fine so far.
> I want to do some small improvements to the documentation, then I say we are
> ready to merge the 'silent-fixes' branch into maint.
>
I've just re-read Paul's changes to the manual, and on a second thought, I think
they are definitely good enough as they are.  I've thus merged the 'silent-fixes'
branch into maint, and pushed.  I'm thus closing the bugs #9928 and #10237.

Thanks,
  Stefano

Subject: AM_SILENT_RULES does not work with NonStop make
From: Paul Eggert <[email-masked]>
To: [email-masked]
Cc: "Daniel Richard G." <[email-masked]>
Date: Tue, 06 Dec 2011 09:51:32 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

If AM_SILENT_RULES is used, Automake generates Makefile.in
files with lines like this:

  AM_V_CC = $(am__v_CC_$(V))
  am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))

and these are copied into Makefile unchanged.  Unfortunately, as
the Automake documentation notes, these lines do not conform to
the POSIX rules for 'make', and as a result packages like
Coreutils that use AM_SILENT_RULES won't build on machines whose
'make' implementations conform to POSIX but disagree with GNU make
in this area.  This is a problem with the current release of
Coreutils, which doesn't build on HP's NonStop OS (see Bug#10234).

The simplest fix for Coreutils is to not use AM_SILENT_RULES but
that defeats the purpose of the Automake feature.  How about the
following idea instead?  Automake could put something like the
following into Makefile.in:

  AM_V_CC = $(am__v_CC_@AM_V@)
  am__v_CC_ = $(am__v_CC_@AM_DEFAULT_VERBOSITY@)

and then Automake can do something like this:

    if make supports $(...$(...)); then
      AM_V='$(V)'
      AM_DEFAULT_VERBOSITY='$(AM_DEFAULT_VERBOSITY)'
    else
      AM_V=1
      AM_DEFAULT_VERBOSITY=1
    fi
    AC_SUBST([AM_V])
    AC_SUBST([AM_DEFAULT_VERBOSITY])

That way, Coreutils could continue to use AM_SILENT_RULES, and
these rules would work as usual on most hosts that use GNU
make-ish syntax in this area, but the rules wouldn't break on
hosts that support POSIX but not GNU make.

This idea should also fix Bug#9928 (in a different way from
what's proposed there), so I'll CC: its reporter.