Feature #15914

Updated by glebm (Gleb Mazovetskiy) over 2 years ago

It would be nice to be able to use `mkmf` without `libruby`. 

 Motivating use-case: 
 Many gems provide Ruby bindings to C ABI via [Ruby FFI]( instead of libruby. 
 This is because Ruby FFI is easier to use, is compatible with JRuby out-of-the-box, and allows binding to system libraries without compilation. 

 I currently use the following set of hacks to stop `mkmf` from including libruby: 

 `ext/extconf.rb`: extconf.rb: 

 ``` ruby 
 # Don't link libruby. 

 # Disable .def file generation for mingw, as it defines an 
 # `Init_libsass` export which we don't have. 
 MakeMakefile.send(:remove_const, :EXPORT_PREFIX) 
 MakeMakefile::EXPORT_PREFIX = nil 

 `ext/depend`: depend: 

 ``` ruby 
 # Replaces default mkmf dependencies. Default mkmf dependencies include all libruby headers. 
 # We don't need libruby and some of these headers are missing on JRuby (breaking compilation there). 
 $(OBJS): $(HDRS) 


 (full example: 

 It'd be nice to have mkmf support for this without hacks.