Disable make_fuss when running configure invoked by make

The cc wrapper's make_fuss is only enabled when HOMEBREW_CCCFG contains
'O', which is set by the make wrapper. This means it is disable when
running configure scripts. However, this does not include configure
scripts invoked by make, which inherit the value of HOMEBREW_CCCFG from
the make process. make_fuss will be enabled for these scripts, cause
breakage.

Configure scripts generated by autoconf 2.56 (November 2002) or later
export DUALCASE into the environment of subprocesses. This variable is
only used by the MKS shell, so we can use it as a heuristic to determine
if we are running as a subprocess of a configure script.
This commit is contained in:
Jack Nagel 2013-11-04 11:02:12 -06:00
parent f643b84dc4
commit 06dbec5aaf
2 changed files with 14 additions and 1 deletions

View File

@ -102,7 +102,7 @@ class Cmd
when :ld
ldflags + args
end.compact
make_fuss(allflags) if verbose? and cccfg? 'O'
make_fuss(allflags)
allflags
end
def refurbished_args
@ -228,6 +228,8 @@ class Cmd
sys.to_flags('-isystem') + opt.to_flags('-I')
end
def make_fuss args
return unless make_fuss?
dels = @args - args
adds = args - @args
dups = dels & args
@ -236,9 +238,16 @@ class Cmd
STDERR.puts "brew: superenv deduped: #{dups}" unless dups.empty?
STDERR.puts "brew: superenv added: #{adds*' '}" unless adds.empty?
end
def make_fuss?
verbose? and cccfg? 'O' and not configure?
end
def verbose?
!ENV['VERBOSE'].nil? || !ENV['HOMEBREW_VERBOSE'].nil?
end
def configure?
# configure scripts generated with autoconf 2.56 or later export DUALCASE
ENV.key? 'DUALCASE'
end
end
if __FILE__ == $PROGRAM_NAME

View File

@ -52,6 +52,10 @@ module Superenv
delete('CDPATH') # avoid make issues that depend on changing directories
delete('GREP_OPTIONS') # can break CMake
delete('CLICOLOR_FORCE') # autotools doesn't like this
# Configure scripts generated by autoconf 2.56 or later export DUALCASE,
# which we use as a heuristic for running under configure
delete('DUALCASE')
end
def setup_build_environment(formula=nil)