aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorMax Howell2012-08-30 10:03:26 -0400
committerMax Howell2012-08-30 20:02:29 -0400
commitd4503b1202c65df1fd636695aa633d5a60997ee8 (patch)
tree4fe312e54ad6573d9614b323a0ce5689cf8a3b95 /Library/Homebrew
parenta4ccf68602ed7ed65dae9c517c9a957a771dd75e (diff)
downloadbrew-d4503b1202c65df1fd636695aa633d5a60997ee8.tar.bz2
Fixes Homebrew/homebrew#14542; ocaml superenv issues
This patch removes most of the settings for CC, CXX etc. because we are trying to be minimal. Then we force the compiler to Homebrew's choice underneath in superenv. We however leave LD because we prefer that build-systems use the c-compiler for linking, it generally works better (copiously tested), however when the build-system explicitly calls ld, we respect that. This gets around the ocaml bug in question, since somehow clang was crashing during link, but the ld tool itself (which is kind of clang, kind of llvm-gcc) is okay with this. Also moved the setting of O (so that cc-args are refurbished) into a make wrapper. Not sure if this matter much, but seems more consistent.
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/formula.rb4
-rw-r--r--Library/Homebrew/superenv.rb17
2 files changed, 5 insertions, 16 deletions
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)+/