Issue #15914 has been updated by shevegen (Robert A. Heiler).


It took me a moment to understand what you mean. I guess the intention for
your change is to have more more flexibility; if this is the case then
personally I think this may be a useful change.

----------------------------------------
Feature #15914: mkmf without libruby
https://bugs.ruby-lang.org/issues/15914#change-78471

* Author: glebm (Gleb Mazovetskiy)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
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](https://github.com/ffi/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`:

``` ruby
# Don't link libruby.
$LIBRUBYARG = nil

# 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`:

``` 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: https://github.com/sass/sassc-ruby/tree/master/ext)

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



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>