Remove Xcode dependence from ENV.rb

Fixes Homebrew/homebrew#7329.
Fixes Homebrew/homebrew#7269.
Fixes Homebrew/homebrew#7236.

Also quite a lot of tidy. This should all work fine.

I think we only started referring into xcode_prefix because LLVM used to not
be linked into /usr/bin. But for sure this is no longer true. If someone out
there doesn't link cc etc. into /usr/bin then I guess we can revise this patch
but it's not something we officially supported before, it was just an
accident.

I added a test step in the init code so that a working compiler will always be
selected. This is mainly a fallback for old Xcodes. Though a comment in
another area of the code suggested Xcode 3 on 10.5 doesn't have LLVM so…
This commit is contained in:
Max Howell 2011-08-31 17:50:39 +01:00
parent 23dbe43fb7
commit a0763dfc2c

View File

@ -27,6 +27,10 @@ module HomebrewEnvExtension
when :gcc then self.gcc
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']
# 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
# build more successfully because we are changing CC and many build systems
@ -111,50 +115,29 @@ module HomebrewEnvExtension
end
def gcc_4_0_1
self['CC'] = self['LD'] = '/usr/bin/gcc-4.0'
self['CC'] = '/usr/bin/gcc-4.0'
self['CXX'] = '/usr/bin/g++-4.0'
self.O3
remove_from_cflags '-O4'
remove_from_cflags '-march=core2'
remove_from_cflags %r{-msse4(\.\d)?}
end
alias_method :gcc_4_0, :gcc_4_0_1
def gcc
if MacOS.xcode_version < '4'
self['CC'] = '/usr/bin/cc'
self['CXX'] = '/usr/bin/c++'
elsif MacOS.xcode_version >= '4.2'
# Apple stopped adding the -4.2 suffixes
self['CC'] = "#{MacOS.xcode_prefix}/usr/bin/gcc"
self['CXX'] = "#{MacOS.xcode_prefix}/usr/bin/g++"
else
# With Xcode4 cc, c++, gcc and g++ are actually symlinks to llvm-gcc
self['CC'] = "#{MacOS.xcode_prefix}/usr/bin/gcc-4.2"
self['CXX'] = "#{MacOS.xcode_prefix}/usr/bin/g++-4.2"
end
self['CC'] = "/usr/bin/gcc-4.2"
self['CXX'] = "/usr/bin/g++-4.2"
remove_from_cflags '-O4'
end
alias_method :gcc_4_2, :gcc
def llvm
if MacOS.xcode_version < '4'
self.gcc
elsif MacOS.xcode_version < '4.1'
self['CC'] = "#{MacOS.xcode_prefix}/usr/bin/llvm-gcc"
self['CXX'] = "#{MacOS.xcode_prefix}/usr/bin/llvm-g++"
else
self['CC'] = '/usr/bin/cc'
self['CXX'] = '/usr/bin/c++'
end
self['CC'] = "/usr/bin/llvm-gcc"
self['CXX'] = "/usr/bin/llvm-g++"
end
def clang
if MacOS.xcode_version > '4'
self['CC'] = "#{MacOS.xcode_prefix}/usr/bin/clang"
self['CXX'] = "#{MacOS.xcode_prefix}/usr/bin/clang++"
else
self.gcc
end
self['CC'] = "/usr/bin/clang"
self['CXX'] = "/usr/bin/clang++"
end
def fortran