aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/extend
diff options
context:
space:
mode:
authorMisty De Meo2013-03-17 13:30:12 -0500
committerMisty De Meo2013-03-23 13:40:18 -0500
commit2476801613a293d7810c5faf2e3383a653b1389c (patch)
tree1b86ee2f82286aa45d325b4768a37eedbc7b4889 /Library/Homebrew/extend
parent21f566b662e1643da1ee9baf1ee8f3eb5293c019 (diff)
downloadbrew-2476801613a293d7810c5faf2e3383a653b1389c.tar.bz2
Hardware: separate out CPU values into CPU module
* CPU functions now exist in Hardware::CPU * Added compatibility functions in compat/hardware_compat.rb * Names are less specific to Mac hardware, e.g. CPU.family instead of Hardware.intel_family * Hardware::CPU.family works for both Intel and PowerPC * New helper methods on CPU, like .sse4? and .altivec? Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
Diffstat (limited to 'Library/Homebrew/extend')
-rw-r--r--Library/Homebrew/extend/ENV.rb19
1 files changed, 11 insertions, 8 deletions
diff --git a/Library/Homebrew/extend/ENV.rb b/Library/Homebrew/extend/ENV.rb
index 0f93a5d6f..097f002d2 100644
--- a/Library/Homebrew/extend/ENV.rb
+++ b/Library/Homebrew/extend/ENV.rb
@@ -121,7 +121,8 @@ module HomebrewEnvExtension
self['CC'] = self['OBJC'] = "#{MacOS.dev_tools_path}/gcc-4.0"
self['CXX'] = self['OBJCXX'] = "#{MacOS.dev_tools_path}/g++-4.0"
replace_in_cflags '-O4', '-O3'
- set_cpu_cflags 'nocona -mssse3', :core => 'prescott', :bottle => 'generic'
+ set_cpu_cflags '-march=nocona -mssse3',
+ Hardware::CPU.optimization_flags
@compiler = :gcc
end
alias_method :gcc_4_0, :gcc_4_0_1
@@ -155,7 +156,7 @@ module HomebrewEnvExtension
end
replace_in_cflags '-O4', '-O3'
- set_cpu_cflags 'core2 -msse4', :penryn => 'core2 -msse4.1', :core2 => 'core2', :core => 'prescott', :bottle => 'generic'
+ set_cpu_cflags '-march=core2 -msse4', Hardware::CPU.optimization_flags
@compiler = :gcc
end
alias_method :gcc_4_2, :gcc
@@ -163,7 +164,7 @@ module HomebrewEnvExtension
def llvm
self['CC'] = self['OBJC'] = MacOS.locate("llvm-gcc")
self['CXX'] = self['OBJCXX'] = MacOS.locate("llvm-g++")
- set_cpu_cflags 'core2 -msse4', :penryn => 'core2 -msse4.1', :core2 => 'core2', :core => 'prescott'
+ set_cpu_cflags '-march=core2 -msse4', Hardware::CPU.optimization_flags
@compiler = :llvm
end
@@ -172,7 +173,7 @@ module HomebrewEnvExtension
self['CXX'] = self['OBJCXX'] = MacOS.locate("clang++")
replace_in_cflags(/-Xarch_i386 (-march=\S*)/, '\1')
# Clang mistakenly enables AES-NI on plain Nehalem
- set_cpu_cflags 'native', :nehalem => 'native -Xclang -target-feature -Xclang -aes'
+ set_cpu_cflags '-march=native', :nehalem => '-march=native -Xclang -target-feature -Xclang -aes'
append_to_cflags '-Qunused-arguments'
@compiler = :clang
end
@@ -325,10 +326,10 @@ module HomebrewEnvExtension
append flags, xarch unless xarch.empty?
if ARGV.build_bottle?
- append flags, '-mtune=' + map.fetch(:bottle) if map.has_key? :bottle
+ append flags, '-mtune=generic'
else
# Don't set -msse3 and older flags because -march does that for us
- append flags, '-march=' + map.fetch(Hardware.intel_family, default)
+ append flags, map.fetch(Hardware::CPU.family, default)
end
# not really a 'CPU' cflag, but is only used with clang
@@ -467,7 +468,8 @@ class << ENV
flags_to_set.each {|key| self[key] = cflags}
# Ensure we use architecture optimizations for GCC 4.2.x
- set_cpu_flags flags_to_set, 'core2 -msse4', :penryn => 'core2 -msse4.1', :core2 => 'core2', :core => 'prescott', :bottle => 'generic'
+ set_cpu_flags flags_to_set, 'core2 -msse4',
+ Hardware::CPU.optimization_flags
elsif not self['FCFLAGS'] or self['FFLAGS']
opoo <<-EOS.undent
No Fortran optimization information was provided. You may want to consider
@@ -487,7 +489,8 @@ class << ENV
fc_flag_vars.each {|key| self[key] = cflags}
# Ensure we use architecture optimizations for GCC 4.2.x
- set_cpu_flags fc_flag_vars, 'core2 -msse4', :penryn => 'core2 -msse4.1', :core2 => 'core2', :core => 'prescott', :bottle => 'generic'
+ set_cpu_flags fc_flag_vars, 'core2 -msse4',
+ Hardware::CPU.optimization_flags
else
onoe <<-EOS