bug-automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#10237: AM_SILENT_RULES does not work with NonStop make


From: Paul Eggert
Subject: bug#10237: AM_SILENT_RULES does not work with NonStop make
Date: Tue, 06 Dec 2011 09:51:32 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111115 Thunderbird/8.0

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 = $(address@hidden@)
  am__v_CC_ = $(address@hidden@)

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.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]