Issue #16517 has been updated by duerst (Martin D=FCrst).


nobu (Nobuyoshi Nakada) wrote:

> What is `devkit`?
> Is it https://rubygems.org/gems/devkit ?

I don't think so. Please have a look at https://github.com/oneclick/rubyins=
taller/wiki/Development-Kit.


----------------------------------------
Feature #16517: mkmf.rb - changes for Windows ?
https://bugs.ruby-lang.org/issues/16517#change-83968

* Author: MSP-Greg (Greg L)
* Status: Open
* Priority: Normal
* Assignee: =

* Target version: =

----------------------------------------
I propose two changes to mkmf.rb to make it more Windows friendly.

1) mingw - `devkit` has been the standard for 'enabling' compile tools in p=
ublicly available MinGW builds for quite a while.  Could something like the=
 following be added?  Not sure whether to rescue on LoadError or not, or wh=
ether to output anything if it doesn't load.

```ruby
if $mingw
  begin
    require 'devkit'
  rescue
  end
end
```

2) mswin - most compile tools other than msvc will find libraries without a=
 lib prefix.  Note the following code in extconf.rb for OpenSSL:

```ruby
ret =3D have_library("crypto", "CRYPTO_malloc") &&
  have_library("ssl", "SSL_new")
return ret if ret

if $mswin
  # OpenSSL >=3D 1.1.0: libcrypto.lib and libssl.lib.
  if have_library("libcrypto", "CRYPTO_malloc") &&
      have_library("libssl", "SSL_new")
    return true
  end
```

If something like the following was added, the above wouldn't be needed:

```ruby
if $mswin
  alias_method :orig_find_library, :find_library
  =

  def find_library(lib, func, *paths, &b)
    orig_find_library(lib, func, *paths, b) || orig_find_library("lib#{lib}=
", func, *paths, b)
  end

  alias_method :orig_have_library, :have_library

  def have_library(lib, func =3D nil, headers =3D nil, opt =3D "", &b)
    orig_have_library(lib, func, headers, opt, b) || orig_have_library("lib=
#{lib}", func, headers, opt, b)
  end
end
```

Adding something similar to above two items would remove the need for Windo=
ws specific build code in many extension gems.




-- =

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

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