Class: Truffle::CExt::MkMf
- Inherits:
- 
      Object
      
        - Object
- Truffle::CExt::MkMf
 
- Defined in:
- truffle/src/main/ruby/core/truffle/cext/mkmf.rb
Overview
MkMf is the DSL to create Makefiles for C extensions. A basic 'extconf.rb' file will require 'mkmf', set some $CFLAGS and then call create_makefile. We run that 'extconf.rb' in an #instance_eval using an instance of this class. See Truffle::CExt.load_extconf.
Instance Attribute Summary (collapse)
- 
  
    
      - (Object) c_files 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute c_files. 
- 
  
    
      - (Object) target_name 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute target_name. 
Instance Method Summary (collapse)
- - (Object) create_makefile(target)
- 
  
    
      - (MkMf) initialize(directory) 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of MkMf. 
- 
  
    
      - (Object) require(path) 
    
    
  
  
  
  
  
  
  
  
  
    We're mocking mkmf so don't actually load it. 
Constructor Details
- (MkMf) initialize(directory)
Returns a new instance of MkMf
| 23 24 25 26 | # File 'truffle/src/main/ruby/core/truffle/cext/mkmf.rb', line 23 def initialize(directory) @directory = directory @c_files = [] end | 
Instance Attribute Details
- (Object) c_files (readonly)
Returns the value of attribute c_files
| 21 22 23 | # File 'truffle/src/main/ruby/core/truffle/cext/mkmf.rb', line 21 def c_files @c_files end | 
- (Object) target_name (readonly)
Returns the value of attribute target_name
| 20 21 22 | # File 'truffle/src/main/ruby/core/truffle/cext/mkmf.rb', line 20 def target_name @target_name end | 
Instance Method Details
- (Object) create_makefile(target)
| 34 35 36 37 | # File 'truffle/src/main/ruby/core/truffle/cext/mkmf.rb', line 34 def create_makefile(target) @target_name = target.split('/').last @c_files = Dir.glob(File.join(@directory, '**', '*.c')) end | 
- (Object) require(path)
We're mocking mkmf so don't actually load it
| 30 31 32 | # File 'truffle/src/main/ruby/core/truffle/cext/mkmf.rb', line 30 def require(path) super.require unless path == 'mkmf' end |