aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Library')
-rwxr-xr-xLibrary/ENV/4.3/cc50
-rwxr-xr-xLibrary/ENV/4.3/make3
-rw-r--r--Library/Formula/objective-caml.rb3
-rw-r--r--Library/Homebrew/formula.rb4
-rw-r--r--Library/Homebrew/superenv.rb17
5 files changed, 37 insertions, 40 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
diff --git a/Library/ENV/4.3/make b/Library/ENV/4.3/make
new file mode 100755
index 000000000..7e5196e6a
--- /dev/null
+++ b/Library/ENV/4.3/make
@@ -0,0 +1,3 @@
+#!/bin/sh
+export HOMEBREW_CCCFG="O$HOMEBREW_CCCFG"
+exec xcrun make "$@"
diff --git a/Library/Formula/objective-caml.rb b/Library/Formula/objective-caml.rb
index e60343e5d..808d15a80 100644
--- a/Library/Formula/objective-caml.rb
+++ b/Library/Formula/objective-caml.rb
@@ -9,9 +9,6 @@ class ObjectiveCaml < Formula
depends_on :x11
- # Don't strip symbols, so dynamic linking doesn't break.
- skip_clean :all
-
# See http://caml.inria.fr/mantis/view.php?id=5700
def patches
"http://caml.inria.fr/mantis/file_download.php?file_id=722&type=bug"
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 08e01a7d7..78209feb7 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -470,8 +470,6 @@ protected
removed_ENV_variables = case if args.empty? then cmd.split(' ').first else cmd end
when "xcodebuild"
ENV.remove_cc_etc
- when /^make\b/
- ENV.append 'HOMEBREW_CCCFG', "O", ''
end
if ARGV.verbose?
@@ -502,8 +500,6 @@ protected
rescue
raise BuildError.new(self, cmd, args, $?)
- ensure
- ENV['HOMEBREW_CCCFG'] = ENV['HOMEBREW_CCCFG'].delete('O') if ENV['HOMEBREW_CCCFG']
end
public
diff --git a/Library/Homebrew/superenv.rb b/Library/Homebrew/superenv.rb
index 46e6bafa0..f059283ce 100644
--- a/Library/Homebrew/superenv.rb
+++ b/Library/Homebrew/superenv.rb
@@ -28,7 +28,7 @@ class << ENV
alias_method :x11?, :x11
def reset
- %w{CC CXX LD CPP OBJC MAKE
+ %w{CC CXX CPP OBJC MAKE
CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS LDFLAGS CPPFLAGS
MACOS_DEPLOYMENT_TARGET SDKROOT
CMAKE_PREFIX_PATH CMAKE_INCLUDE_PATH CMAKE_FRAMEWORK_PATH}.
@@ -40,11 +40,7 @@ class << ENV
def setup_build_environment
reset
- ENV['CC'] = 'cc'
- ENV['CXX'] = 'c++'
- ENV['LD'] = 'ld'
- ENV['CPP'] = 'cpp'
- ENV['MAKE'] = 'make'
+ ENV['LD'] = 'cc'
ENV['MAKEFLAGS'] ||= "-j#{determine_make_jobs}"
ENV['PATH'] = determine_path
ENV['PKG_CONFIG_PATH'] = determine_pkg_config_path
@@ -184,16 +180,13 @@ class << ENV
end
alias_method :j1, :deparallelize
def gcc
- ENV['CC'] = "gcc"
- ENV['CXX'] = "g++"
+ ENV['HOMEBREW_CC'] = "gcc"
end
def llvm
- ENV['CC'] = "llvm-gcc"
- ENV['CXX'] = "llvm-g++"
+ ENV['HOMEBREW_CC'] = "llvm-gcc"
end
def clang
- ENV['CC'] = "clang"
- ENV['CXX'] = "clang++"
+ ENV['HOMEBREW_CC'] = "clang"
end
def make_jobs
ENV['MAKEFLAGS'] =~ /-\w*j(\d)+/