aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Homebrew/formula_installer.rb2
-rw-r--r--Library/Homebrew/hardware.rb64
-rw-r--r--Library/Homebrew/mach.rb2
-rw-r--r--Library/Homebrew/macos.rb6
-rw-r--r--Library/Homebrew/os/linux/hardware.rb25
-rw-r--r--Library/Homebrew/os/mac/hardware.rb57
-rw-r--r--Library/Homebrew/os/mac/version.rb (renamed from Library/Homebrew/macos/version.rb)0
-rw-r--r--Library/Homebrew/os/mac/xcode.rb (renamed from Library/Homebrew/macos/xcode.rb)0
-rw-r--r--Library/Homebrew/os/mac/xquartz.rb (renamed from Library/Homebrew/macos/xquartz.rb)0
-rw-r--r--Library/Homebrew/test/test_version_subclasses.rb2
10 files changed, 98 insertions, 60 deletions
diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb
index a84502ed8..9251fe487 100644
--- a/Library/Homebrew/formula_installer.rb
+++ b/Library/Homebrew/formula_installer.rb
@@ -284,7 +284,7 @@ class FormulaInstaller
fork do
begin
read.close
- exec '/usr/bin/nice',
+ exec 'nice',
RUBY_PATH,
'-W0',
'-I', Pathname.new(__FILE__).dirname,
diff --git a/Library/Homebrew/hardware.rb b/Library/Homebrew/hardware.rb
index 20794be0a..ded0c9ccb 100644
--- a/Library/Homebrew/hardware.rb
+++ b/Library/Homebrew/hardware.rb
@@ -1,47 +1,15 @@
class Hardware
- # These methods use info spewed out by sysctl.
- # Look in <mach/machine.h> for decoding info.
-
- def self.cpu_type
- @@cpu_type ||= `/usr/sbin/sysctl -n hw.cputype`.to_i
-
- case @@cpu_type
- when 7
- :intel
- when 18
- :ppc
- else
- :dunno
- end
- end
-
- def self.intel_family
- @@intel_family ||= `/usr/sbin/sysctl -n hw.cpufamily`.to_i
-
- case @@intel_family
- when 0x73d67300 # Yonah: Core Solo/Duo
- :core
- when 0x426f69ef # Merom: Core 2 Duo
- :core2
- when 0x78ea4fbc # Penryn
- :penryn
- when 0x6b5a4cd2 # Nehalem
- :nehalem
- when 0x573B5EEC # Arrandale
- :arrandale
- when 0x5490B78C # Sandy Bridge
- :sandybridge
- when 0x1F65E835 # Ivy Bridge
- :ivybridge
- else
- :dunno
- end
+ case RUBY_PLATFORM.downcase
+ when /darwin/
+ require 'os/mac/hardware'
+ extend MacOSHardware
+ when /linux/
+ require 'os/linux/hardware'
+ extend LinuxHardware
+ else
+ raise "The system `#{`uname`.chomp}' is not supported."
end
- def self.processor_count
- @@processor_count ||= `/usr/sbin/sysctl -n hw.ncpu`.to_i
- end
-
def self.cores_as_words
case Hardware.processor_count
when 1 then 'single'
@@ -56,21 +24,7 @@ class Hardware
not self.is_64_bit?
end
- def self.is_64_bit?
- return @@is_64_bit if defined? @@is_64_bit
- @@is_64_bit = self.sysctl_bool("hw.cpu64bit_capable")
- end
-
def self.bits
Hardware.is_64_bit? ? 64 : 32
end
-
-protected
- def self.sysctl_bool(property)
- result = nil
- IO.popen("/usr/sbin/sysctl -n #{property} 2>/dev/null") do |f|
- result = f.gets.to_i # should be 0 or 1
- end
- $?.success? && result == 1 # sysctl call succeded and printed 1
- end
end
diff --git a/Library/Homebrew/mach.rb b/Library/Homebrew/mach.rb
index be93aca57..537b2588e 100644
--- a/Library/Homebrew/mach.rb
+++ b/Library/Homebrew/mach.rb
@@ -40,6 +40,8 @@ module MachO
end
when 0xcefaedfe, 0xcffaedfe, 0xfeedface, 0xfeedfacf # Single arch
offsets << 0
+ when 0x7f454c46 # ELF
+ mach_data << { :arch => :x86_64, :type => :executable }
else
raise "Not a Mach-O binary."
end
diff --git a/Library/Homebrew/macos.rb b/Library/Homebrew/macos.rb
index b28be62dc..2d378932c 100644
--- a/Library/Homebrew/macos.rb
+++ b/Library/Homebrew/macos.rb
@@ -1,4 +1,4 @@
-require 'macos/version'
+require 'os/mac/version'
module MacOS extend self
@@ -238,5 +238,5 @@ module MacOS extend self
end
end
-require 'macos/xcode'
-require 'macos/xquartz'
+require 'os/mac/xcode'
+require 'os/mac/xquartz'
diff --git a/Library/Homebrew/os/linux/hardware.rb b/Library/Homebrew/os/linux/hardware.rb
new file mode 100644
index 000000000..8fd4b09b9
--- /dev/null
+++ b/Library/Homebrew/os/linux/hardware.rb
@@ -0,0 +1,25 @@
+module LinuxHardware
+ def cpu_type
+ @@cpu_type ||= case `uname -m`
+ when /x86_64/
+ :intel
+ when /i386/
+ :intel
+ else
+ :dunno
+ end
+ end
+
+ def intel_family
+ :dunno
+ end
+
+ def processor_count
+ `grep -c ^processor /proc/cpuinfo`.to_i
+ end
+
+ def is_64_bit?
+ return @@is_64_bit if defined? @@is_64_bit
+ @@is_64_bit = /64/ === `uname -m`
+ end
+end
diff --git a/Library/Homebrew/os/mac/hardware.rb b/Library/Homebrew/os/mac/hardware.rb
new file mode 100644
index 000000000..ffdc6246c
--- /dev/null
+++ b/Library/Homebrew/os/mac/hardware.rb
@@ -0,0 +1,57 @@
+module MacOSHardware
+ # These methods use info spewed out by sysctl.
+ # Look in <mach/machine.h> for decoding info.
+ def cpu_type
+ @@cpu_type ||= `/usr/sbin/sysctl -n hw.cputype`.to_i
+
+ case @@cpu_type
+ when 7
+ :intel
+ when 18
+ :ppc
+ else
+ :dunno
+ end
+ end
+
+ def intel_family
+ @@intel_family ||= `/usr/sbin/sysctl -n hw.cpufamily`.to_i
+
+ case @@intel_family
+ when 0x73d67300 # Yonah: Core Solo/Duo
+ :core
+ when 0x426f69ef # Merom: Core 2 Duo
+ :core2
+ when 0x78ea4fbc # Penryn
+ :penryn
+ when 0x6b5a4cd2 # Nehalem
+ :nehalem
+ when 0x573B5EEC # Arrandale
+ :arrandale
+ when 0x5490B78C # Sandy Bridge
+ :sandybridge
+ when 0x1F65E835 # Ivy Bridge
+ :ivybridge
+ else
+ :dunno
+ end
+ end
+
+ def processor_count
+ @@processor_count ||= `/usr/sbin/sysctl -n hw.ncpu`.to_i
+ end
+
+ def is_64_bit?
+ return @@is_64_bit if defined? @@is_64_bit
+ @@is_64_bit = sysctl_bool("hw.cpu64bit_capable")
+ end
+
+protected
+ def sysctl_bool(property)
+ result = nil
+ IO.popen("/usr/sbin/sysctl -n #{property} 2>/dev/null") do |f|
+ result = f.gets.to_i # should be 0 or 1
+ end
+ $?.success? && result == 1 # sysctl call succeded and printed 1
+ end
+end
diff --git a/Library/Homebrew/macos/version.rb b/Library/Homebrew/os/mac/version.rb
index 090b1ffb7..090b1ffb7 100644
--- a/Library/Homebrew/macos/version.rb
+++ b/Library/Homebrew/os/mac/version.rb
diff --git a/Library/Homebrew/macos/xcode.rb b/Library/Homebrew/os/mac/xcode.rb
index 0bb68636a..0bb68636a 100644
--- a/Library/Homebrew/macos/xcode.rb
+++ b/Library/Homebrew/os/mac/xcode.rb
diff --git a/Library/Homebrew/macos/xquartz.rb b/Library/Homebrew/os/mac/xquartz.rb
index a515d8915..a515d8915 100644
--- a/Library/Homebrew/macos/xquartz.rb
+++ b/Library/Homebrew/os/mac/xquartz.rb
diff --git a/Library/Homebrew/test/test_version_subclasses.rb b/Library/Homebrew/test/test_version_subclasses.rb
index 93711ac44..6b18246ba 100644
--- a/Library/Homebrew/test/test_version_subclasses.rb
+++ b/Library/Homebrew/test/test_version_subclasses.rb
@@ -1,6 +1,6 @@
require 'testing_env'
require 'version'
-require 'macos/version'
+require 'os/mac/version'
class MacOSVersionTests < Test::Unit::TestCase
def setup