Skip to content

Commit

Permalink
ENV: reset LD when switching compilers
Browse files Browse the repository at this point in the history
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
  • Loading branch information
jacknagel committed Mar 21, 2012
1 parent f34e48c commit d82bfaf
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 3 deletions.
12 changes: 9 additions & 3 deletions Library/Homebrew/extend/ENV.rb
Expand Up @@ -87,7 +87,8 @@ def O1

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'
Expand Down Expand Up @@ -129,6 +130,7 @@ def expand_xcrun
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

Expand All @@ -138,11 +140,13 @@ def gcc
# 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']
Expand All @@ -159,15 +163,17 @@ def gcc
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'
@compiler = :llvm
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')
Expand Down
7 changes: 7 additions & 0 deletions Library/Homebrew/test/test_ENV.rb
Expand Up @@ -25,4 +25,11 @@ def test_ENV_options
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

0 comments on commit d82bfaf

Please sign in to comment.