diff options
| author | Misty De Meo | 2013-03-17 13:30:12 -0500 |
|---|---|---|
| committer | Misty De Meo | 2013-03-23 13:40:18 -0500 |
| commit | 2476801613a293d7810c5faf2e3383a653b1389c (patch) | |
| tree | 1b86ee2f82286aa45d325b4768a37eedbc7b4889 /Library/Homebrew/extend | |
| parent | 21f566b662e1643da1ee9baf1ee8f3eb5293c019 (diff) | |
| download | brew-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.rb | 19 |
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 |
