aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/extend
diff options
context:
space:
mode:
authorMax Howell2011-09-06 11:20:09 +0100
committerMax Howell2011-09-06 11:22:22 +0100
commita50d53d1ad1a55eef8a20f6671d9f50772dcc659 (patch)
tree3ad9a1a4980288768811667b3a4d9f1585f302f9 /Library/Homebrew/extend
parent102517abc6ac0a5ac487b4bd0f13eb976f360e59 (diff)
downloadhomebrew-a50d53d1ad1a55eef8a20f6671d9f50772dcc659.tar.bz2
Remember compiler setting when it is changed via eg. ENV.gcc
Thus it will be correct after the setting is changed.
Diffstat (limited to 'Library/Homebrew/extend')
-rw-r--r--Library/Homebrew/extend/ENV.rb14
1 files changed, 11 insertions, 3 deletions
diff --git a/Library/Homebrew/extend/ENV.rb b/Library/Homebrew/extend/ENV.rb
index 5b9c13125..155daa19b 100644
--- a/Library/Homebrew/extend/ENV.rb
+++ b/Library/Homebrew/extend/ENV.rb
@@ -28,8 +28,11 @@ module HomebrewEnvExtension
end
# we must have a working compiler!
- ENV['CC'] = '/usr/bin/cc' unless File.exist? ENV['CC']
- ENV['CXX'] = '/usr/bin/c++' unless File.exist? ENV['CXX']
+ unless File.exist? ENV['CC'] and File.exist? ENV['CXX']
+ ENV['CC'] = '/usr/bin/cc'
+ ENV['CXX'] = '/usr/bin/c++'
+ @compiler = MacOS.default_compiler
+ end
# In rare cases this may break your builds, as the tool for some reason wants
# to use a specific linker. However doing this in general causes formula to
@@ -120,6 +123,7 @@ module HomebrewEnvExtension
remove_from_cflags '-O4'
remove_from_cflags '-march=core2'
remove_from_cflags %r{-msse4(\.\d)?}
+ @compiler = :gcc
end
alias_method :gcc_4_0, :gcc_4_0_1
@@ -127,17 +131,20 @@ module HomebrewEnvExtension
self['CC'] = "/usr/bin/gcc-4.2"
self['CXX'] = "/usr/bin/g++-4.2"
remove_from_cflags '-O4'
+ @compiler = :gcc
end
alias_method :gcc_4_2, :gcc
def llvm
self['CC'] = "/usr/bin/llvm-gcc"
self['CXX'] = "/usr/bin/llvm-g++"
+ @compiler = :llvm
end
def clang
self['CC'] = "/usr/bin/clang"
self['CXX'] = "/usr/bin/clang++"
+ @compiler = :clang
end
def fortran
@@ -295,6 +302,7 @@ Please take one of the following actions:
remove 'CXXFLAGS', f
end
+ # actually c-compiler, so cc would be a better name
def compiler
# TODO seems that ENV.clang in a Formula.install should warn when called
# if the user has set something that is tested here
@@ -302,7 +310,7 @@ Please take one of the following actions:
# test for --flags first so that installs can be overridden on a per
# install basis. Then test for ENVs in inverse order to flags, this is
# sensible, trust me
- if ARGV.include? '--use-gcc'
+ @compiler ||= if ARGV.include? '--use-gcc'
:gcc
elsif ARGV.include? '--use-llvm'
:llvm