class Autorake::MkConfig

Attributes

mkconfig[R]
outfile[RW]

Public Class Methods

inherited(cls) click to toggle source
# File lib/autorake/mkconfig.rb, line 28
def inherited cls
  @mkconfig = cls
end
new(definition) click to toggle source
# File lib/autorake/mkconfig.rb, line 45
def initialize definition
  @definition = definition
end

Public Instance Methods

keep!() click to toggle source
# File lib/autorake/mkconfig.rb, line 40
def keep!
  Builder.verbose = :keep
end
verbose!() click to toggle source
# File lib/autorake/mkconfig.rb, line 36
def verbose!
  @verbose = true
  Builder.verbose ||= @verbose
end

Private Instance Methods

cleaned() click to toggle source

overwrite this to do additional work

# File lib/autorake/mkconfig.rb, line 136
def cleaned
end
define_options() click to toggle source
Calls superclass method Autorake::Application#define_options
# File lib/autorake/mkconfig.rb, line 51
def define_options
  add_option %w(o outfile), "specify output file",
                                Configuration::CONFIG_FILE, :outfile=
  add_option %w(c clean),   "delete config file resp. -o outfile",
                                                    nil, :clean!
  add_option %w(d dump),    "just dump the results", nil, :dump
  add_option %w(v verbose), "lots of ugly debugging information",
                                                    nil, :verbose!
  add_option %w(k keep),    "keep temporary files",
                                                    nil, :keep!
  super
  @definition.directories.each { |k,v|
    add_option %W(dir-#{k}), "set directory #{k}", v, :set_dir, k
  }
  @definition.features.each { |k,v|
    de, dd = "[default]", nil
    de, dd = dd, de unless v
    add_option %W(enable-#{k}),  "enable  #{k} #{de}", nil,
                                                    :set_feature, k, true
    add_option %W(disable-#{k}), "disable #{k} #{dd}", nil,
                                                    :set_feature, k, false
  }
  @definition.parameters.each { |k,v|
    add_option %W(with-#{k}), "define a parameter and C macro #{k}", v,
                                                            :set_parm, k
  }
  @definition.incpath.each { |k,v|
    add_option %W(incdir-#{k}), "include directory #{k}", v, :set_incdir, k
  }
  @definition.libpath.each { |k,v|
    add_option %W(libdir-#{k}), "library directory #{k}", v, :set_libdir, k
  }
end
dump() click to toggle source
# File lib/autorake/mkconfig.rb, line 109
def dump
  @definition.dump
  raise Done
end
environ(name, val) click to toggle source
# File lib/autorake/mkconfig.rb, line 114
def environ name, val
  @definition.environment[ name] = val
end
execute() click to toggle source
# File lib/autorake/mkconfig.rb, line 118
def execute
  if @clean then
    File.unlink @outfile if File.file? @outfile
    cleaned
  else
    cfg = @definition.perform
    File.open @outfile, "w" do |f|
      f.write cfg.to_yaml
    end
    made
  end
end
made() click to toggle source

overwrite this to do additional work

# File lib/autorake/mkconfig.rb, line 132
def made
end
set_dir(name, val) click to toggle source
# File lib/autorake/mkconfig.rb, line 85
def set_dir name, val
  @definition.directories[ name] = val
end
set_feature(name, val) click to toggle source
# File lib/autorake/mkconfig.rb, line 89
def set_feature name, val
  @definition.features[ name.to_sym] = val
end
set_incdir(name, val) click to toggle source
# File lib/autorake/mkconfig.rb, line 101
def set_incdir name, val
  @definition.incpath[ name.to_sym] = val
end
set_libdir(name, val) click to toggle source
# File lib/autorake/mkconfig.rb, line 105
def set_libdir name, val
  @definition.libpath[ name.to_sym] = val
end
set_parm(name, val) click to toggle source
# File lib/autorake/mkconfig.rb, line 93
def set_parm name, val
  n = name.to_sym
  if Numeric === @definition.parameters[ n] and val =~ /\A(0x)?\d+\z/ then
    val = Integer val
  end
  @definition.parameters[ n] = val
end