aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/extend/ENV.rb12
-rw-r--r--Library/Homebrew/test/test_ENV.rb7
2 files changed, 16 insertions, 3 deletions
diff --git a/Library/Homebrew/extend/ENV.rb b/Library/Homebrew/extend/ENV.rb
index 03594de00..4eeba6b98 100644
--- a/Library/Homebrew/extend/ENV.rb
+++ b/Library/Homebrew/extend/ENV.rb
@@ -87,7 +87,8 @@ module HomebrewEnvExtension
def gcc_4_0_1
# we don't use xcrun because gcc 4.0 has not been provided since Xcode 4
- self['CC'] = "#{MacOS.dev_tools_path}/gcc-4.0"
+ self['CC'] = "#{MacOS.dev_tools_path}/gcc-4.0"
+ self['LD'] = self['CC']
self['CXX'] = "#{MacOS.dev_tools_path}/g++-4.0"
self['OBJC'] = self['CC']
replace_in_cflags '-O4', '-O3'
@@ -129,6 +130,7 @@ module HomebrewEnvExtension
self['CC'] = `/usr/bin/xcrun -find #{$1}`.chomp if $1
self['CXX'] =~ %r{/usr/bin/xcrun (.*)}
self['CXX'] = `/usr/bin/xcrun -find #{$1}`.chomp if $1
+ self['LD'] = self['CC']
self['OBJC'] = self['CC']
end
@@ -138,11 +140,13 @@ module HomebrewEnvExtension
# But we don't want LLVM of course.
self['CC'] = xcrun "gcc-4.2"
+ self['LD'] = self['CC']
self['CXX'] = xcrun "g++-4.2"
self['OBJC'] = self['CC']
unless self['CC']
self['CC'] = "#{HOMEBREW_PREFIX}/bin/gcc-4.2"
+ self['LD'] = self['CC']
self['CXX'] = "#{HOMEBREW_PREFIX}/bin/g++-4.2"
self['OBJC'] = self['CC']
raise "GCC could not be found" if not File.exist? self['CC']
@@ -159,7 +163,8 @@ module HomebrewEnvExtension
alias_method :gcc_4_2, :gcc
def llvm
- self['CC'] = xcrun "llvm-gcc"
+ self['CC'] = xcrun "llvm-gcc"
+ self['LD'] = self['CC']
self['CXX'] = xcrun "llvm-g++"
self['OBJC'] = self['CC']
set_cpu_cflags 'core2 -msse4', :penryn => 'core2 -msse4.1', :core2 => 'core2', :core => 'prescott'
@@ -167,7 +172,8 @@ module HomebrewEnvExtension
end
def clang
- self['CC'] = xcrun "clang"
+ self['CC'] = xcrun "clang"
+ self['LD'] = self['CC']
self['CXX'] = xcrun "clang++"
self['OBJC'] = self['CC']
replace_in_cflags(/-Xarch_i386 (-march=\S*)/, '\1')
diff --git a/Library/Homebrew/test/test_ENV.rb b/Library/Homebrew/test/test_ENV.rb
index 5eceaa2bf..8ab1c1f24 100644
--- a/Library/Homebrew/test/test_ENV.rb
+++ b/Library/Homebrew/test/test_ENV.rb
@@ -25,4 +25,11 @@ class EnvironmentTests < Test::Unit::TestCase
assert !ENV.cc.empty?
assert !ENV.cxx.empty?
end
+
+ def test_switching_compilers
+ ENV.llvm
+ ENV.clang
+ assert_equal ENV['LD'], ENV['CC']
+ assert_equal ENV['OBJC'], ENV['CC']
+ end
end