aboutsummaryrefslogtreecommitdiffstats
path: root/Library/ENV/4.3/cc
diff options
context:
space:
mode:
Diffstat (limited to 'Library/ENV/4.3/cc')
-rwxr-xr-xLibrary/ENV/4.3/cc50
1 files changed, 29 insertions, 21 deletions
diff --git a/Library/ENV/4.3/cc b/Library/ENV/4.3/cc
index acc0227c2..ffd15f2e3 100755
--- a/Library/ENV/4.3/cc
+++ b/Library/ENV/4.3/cc
@@ -44,29 +44,29 @@ class Cmd
end
end
def tool
- case @cmd
- when /gcc/ then 'gcc'
- when /g\+\+/ then 'g++'
- when 'clang', 'clang++'
- @cmd
- when 'ld', 'cpp', 'cc'
- ENV['HOMEBREW_CC'].chuzzle or 'clang'
- when 'c++'
- case ENV['HOMEBREW_CC']
- when /gcc/ then 'g++'
- else 'clang++'
+ @tool ||= if @cmd.include? '++'
+ if ENV['HOMEBREW_CC'].chuzzle =~ /gcc/
+ 'g++'
+ else
+ 'clang++'
end
+ elsif @cmd == 'ld'
+ 'ld'
else
- abort "Unknown command: #{@cmd}"
+ ENV['HOMEBREW_CC'].chuzzle or 'clang'
end
end
def args
- args = if cccfg? 'O'
+ args = if cccfg? 'O' and tool != 'ld'
refurbished_args
else
@args.dup
end
- args.unshift("--sysroot=#$sdkroot") if nclt?
+ if @cmd != 'ld'
+ args.unshift("--sysroot=#$sdkroot")
+ else
+ args.unshift($sdkroot).unshift("-syslibroot")
+ end if nclt?
case mode
when :cpp
%w{-E} + cppflags + args
@@ -110,13 +110,7 @@ class Cmd
args << arg
end
end
-
- rms = @args - args
- %w{CPPFLAGS LDFLAGS CXXFLAGS CFLAGS}.each do |flag|
- unison = ENV[flag].split(' ') & rms
- puts "Warning! #{unison*' '} removed from #{flag.upcase} by superenv" unless unison.empty?
- end
-
+ make_fuss(args)
args
end
def cflags
@@ -141,6 +135,20 @@ class Cmd
# they override the system options.
sys.to_flags('-isystem') + opt.to_flags('-I')
end
+ def make_fuss args
+ dels = @args - args
+ if ENV['VERBOSE']
+ adds = args - @args
+ puts "brew: Superenv removed: #{dels*' '}" unless dels.empty?
+ puts "brew: Superenv added: #{adds*' '}" unless adds.empty?
+ else
+ %w{CPPFLAGS LDFLAGS CXXFLAGS CFLAGS}.each do |flag|
+ next unless ENV[flag]
+ flags = dels.select{|del| ENV[flag].include? del }.join(' ')
+ puts "brew: superenv removed `#{flags}' from #{flag}" unless flags.empty?
+ end
+ end
+ end
end
####################################################################### sanity