class Setup::Compiler

Public Instance Methods

clean() click to toggle source
# File lib/setup/compiler.rb, line 36
def clean
  extdirs.each do |dir|
    Dir.chdir(dir) do
      make('clean')
    end
  end
end
compile() click to toggle source
# File lib/setup/compiler.rb, line 27
def compile
  extdirs.each do |dir|
    Dir.chdir(dir) do
      make
    end
  end
end
compiles?() click to toggle source
# File lib/setup/compiler.rb, line 9
def compiles?
  !extdirs.empty?
  #extdirs.any?{ |dir| File.exist?(File.join(dir, 'extconf.rb')) }
end
configure() click to toggle source
# File lib/setup/compiler.rb, line 15
def configure
  extdirs.each do |dir|
    Dir.chdir(dir) do
      if File.exist?('extconf.rb') && !FileUtils.uptodate?('Makefile', ['extconf.rb'])
        #load("extconf.rb", true)
        ruby("extconf.rb")
      end
    end
  end
end
distclean() click to toggle source
# File lib/setup/compiler.rb, line 45
def distclean
  extdirs.each do |dir|
    Dir.chdir(dir) do
      make('distclean')
    end
  end
end
extdirs() click to toggle source

TODO: get from project

# File lib/setup/compiler.rb, line 54
def extdirs
  Dir['ext/**/*/{MANIFEST,extconf.rb}'].map do |f|
    File.dirname(f)
  end.uniq
end
make(task=nil) click to toggle source
# File lib/setup/compiler.rb, line 61
def make(task=nil)
  return unless File.exist?('Makefile')
  bash(*[config.makeprog, task].compact)
end