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
commite7f66519dc6881f49e594ddb2fae857580c2c033 (patch)
tree5746795ec7dfd4478f85858bbdbb516290caded1 /Library/Homebrew/extend
parent17a92eab118763bdabe23bb0319e6ab5b18f8488 (diff)
downloadhomebrew-e7f66519dc6881f49e594ddb2fae857580c2c033.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