module Debugger::RubyCoreSource

Constants

REVISION_MAP
VERSION

Public Class Methods

create_makefile_with_core(hdrs, name) click to toggle source
# File lib/debugger/ruby_core_source.rb, line 19
def self.create_makefile_with_core(hdrs, name)
  # First, see if the gem already has the needed headers
  if hdrs.call
    create_makefile(name)
    return true
  end

  ruby_dir = if RUBY_PATCHLEVEL < 0
    REVISION_MAP[RUBY_REVISION] or
      no_source_abort("ruby-#{RUBY_VERSION} (revision #{RUBY_REVISION})")
  else
    "ruby-#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"
  end

  # Check if core headers were already downloaded; if so, use them
  if RbConfig::CONFIG["rubyhdrdir"]
    dest_dir = RbConfig::CONFIG["rubyhdrdir"] + "/" + ruby_dir
    with_cppflags("-I" + dest_dir) {
      if hdrs.call
        create_makefile(name)
        return true
      end
    }
  end

  # Look for sources that ship with gem
  dest_dir = File.dirname(__FILE__) + "/ruby_core_source/#{ruby_dir}"
  no_source_abort(ruby_dir) unless File.directory?(dest_dir)

  with_cppflags("-I" + dest_dir) {
    if hdrs.call
      create_makefile(name)
      return true
    end
  }
  return false
end
no_source_abort(ruby_version) click to toggle source
# File lib/debugger/ruby_core_source.rb, line 57
    def self.no_source_abort(ruby_version)
      abort <<-STR
Makefile creation failed
**************************************************************************
No source for #{ruby_version} provided with debugger-ruby_core_source gem.
**************************************************************************
STR
    end