aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorJack Nagel2013-11-04 11:02:12 -0600
committerJack Nagel2013-11-04 11:02:18 -0600
commit6f11b315d44f00a99e821b1c4f2dbefdc3a5e6f2 (patch)
treeeccc6ba0fb495fef37b9f4eb2cb6e16c01120ffc /Library
parenta81ca4188d525eb35980b0b951a9865259caf385 (diff)
downloadhomebrew-6f11b315d44f00a99e821b1c4f2dbefdc3a5e6f2.tar.bz2
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.
Diffstat (limited to 'Library')
-rwxr-xr-xLibrary/ENV/4.3/cc11
-rw-r--r--Library/Homebrew/extend/ENV/super.rb4
2 files changed, 14 insertions, 1 deletions
diff --git a/Library/ENV/4.3/cc b/Library/ENV/4.3/cc
index 30f32b04a..7f18b466a 100755
--- a/Library/ENV/4.3/cc
+++ b/Library/ENV/4.3/cc
@@ -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
diff --git a/Library/Homebrew/extend/ENV/super.rb b/Library/Homebrew/extend/ENV/super.rb
index 6c05bddb4..ce8de00d0 100644
--- a/Library/Homebrew/extend/ENV/super.rb
+++ b/Library/Homebrew/extend/ENV/super.rb
@@ -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)