aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Allred2010-10-01 20:56:55 +0100
committerAdam Vandenberg2011-03-12 11:55:06 -0800
commitc19b32dfc409e39439f27c22f78a4cd1423e1a11 (patch)
treead048ce295d031009d9ee57475cea90e3328df99
parentfeed6a9ca25aa400c566d60c233337dc4e49b559 (diff)
downloadhomebrew-c19b32dfc409e39439f27c22f78a4cd1423e1a11.tar.bz2
Added --use-gcc flag.
This allows you to use llvm as your default compiler and keep the cc symlink pointed at llvm, while allowing you to build forumla that requires the gcc. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
-rw-r--r--Library/Contributions/manpages/brew.1.md4
-rw-r--r--Library/Homebrew/cmd/--env.rb3
-rw-r--r--Library/Homebrew/cmd/doctor.rb3
-rw-r--r--Library/Homebrew/extend/ENV.rb4
-rw-r--r--share/man/man1/brew.14
5 files changed, 17 insertions, 1 deletions
diff --git a/Library/Contributions/manpages/brew.1.md b/Library/Contributions/manpages/brew.1.md
index 9281f68e6..d5440189f 100644
--- a/Library/Contributions/manpages/brew.1.md
+++ b/Library/Contributions/manpages/brew.1.md
@@ -275,6 +275,10 @@ Some sample commands ship with Homebrew and are enabled by default.
This issue typically occurs when using FileVault or custom SSD
configurations.
+ * HOMEBREW\_USE\_GCC:
+ If set, instructs Homebrew to use gcc, even if the system default
+ is currently set to LLVM.
+
* HOMEBREW\_USE\_LLVM:
If set, instructs Homebrew to use the LLVM front-ends to the GCC
compilers.
diff --git a/Library/Homebrew/cmd/--env.rb b/Library/Homebrew/cmd/--env.rb
index 07623171d..2f6e421a0 100644
--- a/Library/Homebrew/cmd/--env.rb
+++ b/Library/Homebrew/cmd/--env.rb
@@ -10,6 +10,7 @@ module Homebrew extend self
def dump_build_env env
puts %["--use-llvm" was specified] if ARGV.include? '--use-llvm'
+ puts "\"--use-gcc\" was specified" if ARGV.include? '--use-gcc'
%w[ CC CXX LD ].each do |k|
value = env[k]
@@ -24,7 +25,7 @@ module Homebrew extend self
end
%w[ CFLAGS CXXFLAGS CPPFLAGS LDFLAGS MACOSX_DEPLOYMENT_TARGET MAKEFLAGS PKG_CONFIG_PATH
- HOMEBREW_DEBUG HOMEBREW_VERBOSE HOMEBREW_USE_LLVM HOMEBREW_SVN ].each do |k|
+ HOMEBREW_DEBUG HOMEBREW_VERBOSE HOMEBREW_USE_GCC HOMEBREW_USE_LLVM HOMEBREW_SVN ].each do |k|
value = env[k]
puts "#{k}: #{value}" if value
end
diff --git a/Library/Homebrew/cmd/doctor.rb b/Library/Homebrew/cmd/doctor.rb
index 7ea616d76..9cbc9b832 100644
--- a/Library/Homebrew/cmd/doctor.rb
+++ b/Library/Homebrew/cmd/doctor.rb
@@ -147,6 +147,9 @@ def check_cc_symlink
To force Homebrew to use LLVM, you can set the "HOMEBREW_LLVM" environmental
variable, or pass "--use-llvm" to "brew install".
+ To force Homebrew to use gcc, you can set the "HOMEBREW_GCC" environmental
+ variable, or pass "--use-gcc" to "brew install".
+
EOS
end
end
diff --git a/Library/Homebrew/extend/ENV.rb b/Library/Homebrew/extend/ENV.rb
index bb2bbd544..fc4dc96ae 100644
--- a/Library/Homebrew/extend/ENV.rb
+++ b/Library/Homebrew/extend/ENV.rb
@@ -24,6 +24,10 @@ module HomebrewEnvExtension
self['CC'] = "#{xcode_path}/usr/bin/llvm-gcc"
self['CXX'] = "#{xcode_path}/usr/bin/llvm-g++"
cflags = ['-O4'] # link time optimisation baby!
+ elsif MACOS_VERSION >= 10.6 and (self['HOMEBREW_USE_GCC'] or ARGV.include? '--use-gcc')
+ self['CC'] = '/usr/bin/gcc'
+ self['CXX'] = '/usr/bin/g++'
+ cflags = ['-O3']
else
# If these aren't set, many formulae fail to build
self['CC'] = '/usr/bin/cc'
diff --git a/share/man/man1/brew.1 b/share/man/man1/brew.1
index 5e40702fc..f5979e593 100644
--- a/share/man/man1/brew.1
+++ b/share/man/man1/brew.1
@@ -298,6 +298,10 @@ If set, instructs Homebrew to use \fBHOMEBREW_TEMP\fR as the temporary folder fo
This issue typically occurs when using FileVault or custom SSD configurations\.
.
.TP
+HOMEBREW_USE_GCC
+If set, instructs Homebrew to use gcc, even if the system default is currently set to LLVM\.
+.
+.TP
HOMEBREW_USE_LLVM
If set, instructs Homebrew to use the LLVM front\-ends to the GCC compilers\.
.