From: duerst@... Date: 2020-01-19T06:29:51+00:00 Subject: [ruby-core:96941] [Ruby master Feature#16517] mkmf.rb - changes for Windows ? Issue #16517 has been updated by duerst (Martin D�rst). 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/rubyinstaller/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 publicly available MinGW builds for quite a while. Could something like the following be added? Not sure whether to rescue on LoadError or not, or whether 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 = have_library("crypto", "CRYPTO_malloc") && have_library("ssl", "SSL_new") return ret if ret if $mswin # OpenSSL >= 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 = nil, headers = nil, opt = "", &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 Windows specific build code in many extension gems. -- https://bugs.ruby-lang.org/ Unsubscribe: