Class Gem::Ext::Builder
In: lib/rubygems/ext/builder.rb
Parent: Object

Methods

class_name   make   redirector   run  

Public Class methods

[Source]

    # File lib/rubygems/ext/builder.rb, line 11
11:   def self.class_name
12:     name =~ /Ext::(.*)Builder/
13:     $1.downcase
14:   end

[Source]

    # File lib/rubygems/ext/builder.rb, line 16
16:   def self.make(dest_path, results)
17:     unless File.exist? 'Makefile' then
18:       raise Gem::InstallError, "Makefile not found:\n\n#{results.join "\n"}" 
19:     end
20: 
21:     mf = File.read('Makefile')
22:     mf = mf.gsub(/^RUBYARCHDIR\s*=\s*\$[^$]*/, "RUBYARCHDIR = #{dest_path}")
23:     mf = mf.gsub(/^RUBYLIBDIR\s*=\s*\$[^$]*/, "RUBYLIBDIR = #{dest_path}")
24: 
25:     File.open('Makefile', 'wb') {|f| f.print mf}
26: 
27:     make_program = ENV['make']
28:     unless make_program then
29:       make_program = (/mswin/ =~ RUBY_PLATFORM) ? 'nmake' : 'make'
30:     end
31: 
32:     ['', ' install'].each do |target|
33:       cmd = "#{make_program}#{target}"
34:       results << cmd
35:       results << `#{cmd} #{redirector}`
36: 
37:       raise Gem::InstallError, "make#{target} failed:\n\n#{results}" unless
38:         $?.exitstatus.zero?
39:     end
40:   end

[Source]

    # File lib/rubygems/ext/builder.rb, line 42
42:   def self.redirector
43:     '2>&1'
44:   end

[Source]

    # File lib/rubygems/ext/builder.rb, line 46
46:   def self.run(command, results)
47:     results << command
48:     results << `#{command} #{redirector}`
49: 
50:     unless $?.exitstatus.zero? then
51:       raise Gem::InstallError, "#{class_name} failed:\n\n#{results.join "\n"}"
52:     end
53:   end

[Validate]