From: Greg.mpls@gmail.com
To: ruby-core@ruby-lang.org
Subject: [ruby-core:81200] [Ruby trunk Feature#13570] Using mkmf for ruby/spec C API specs
Date: Tue, 16 May 2017 21:11:45 +0000 [thread overview]
Message-ID: <redmine.journal-64855.20170516211144.c15040348932c768@ruby-lang.org> (raw)
In-Reply-To: redmine.issue-13570.20170516124746@ruby-lang.org
Issue #13570 has been updated by MSP-Greg (Greg L).
> Does mkmf works well on Windows?
I'm not a c type. With MinGW builds, I've got 89 mkmf.log files in the build dir, and [test-all results](https://msp-greg.github.io/file.mingw_test-all.html) are consistent and reasonable low. I'm guessing that means yes.
FYI, I ran test-spec with -j on 58760, and it matched (or very closely matched) results without -j. test-all has the same results, but assertions and skips are different.
----------------------------------------
Feature #13570: Using mkmf for ruby/spec C API specs
https://bugs.ruby-lang.org/issues/13570#change-64855
* Author: Eregon (Benoit Daloze)
* Status: Open
* Priority: Normal
* Assignee:
* Target version:
----------------------------------------
Hello all,
I am thinking to use mkmf to compile the C API specs.
https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/optional/capi/spec_helper.rb
is getting pretty complex and hard to maintain.
I have a few questions:
* Does mkmf works well on Windows?
* What is a good way to compile a single .c file with mkmf to a given library file in another directory?
I tried this but I am not sure it's correct:
~~~ ruby
def compile_extension(name)
objdir = object_path
ext = "#{name}_spec"
lib = "#{objdir}/#{ext}.#{RbConfig::CONFIG['DLEXT']}"
require 'mkmf' # TODO: probably best to use a subprocess to avoid polluting the namespace
Dir.chdir(objdir) do
$srcs = ["#{extension_path}/#{ext}.c"]
$objs = ["#{extension_path}/#{ext}.o"] # should probably be in objdir but that does not seem to work
create_makefile(ext)
system "make"
end
lib
end
~~~
Alternatively, we can copy the needed files to a temporary directory, build there and copy the shared library back.
It's a bit more work but not a big deal either.
--
https://bugs.ruby-lang.org/
next prev parent reply other threads:[~2017-05-16 20:27 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <redmine.issue-13570.20170516124746@ruby-lang.org>
2017-05-16 12:47 ` [ruby-core:81199] [Ruby trunk Feature#13570] Using mkmf for ruby/spec C API specs eregontp
2017-05-16 21:11 ` Greg.mpls [this message]
2017-05-28 11:38 ` [ruby-core:81434] [Ruby trunk Feature#13570][Closed] " eregontp
2017-05-29 15:33 ` [ruby-core:81455] [Ruby trunk Feature#13570] " eregontp
2017-05-29 15:33 ` [ruby-core:81456] [Ruby trunk Feature#13570][Assigned] " eregontp
2017-05-29 16:39 ` [ruby-core:81458] [Ruby trunk Feature#13570] " Greg.mpls
2017-05-31 22:25 ` [ruby-core:81490] " Greg.mpls
2017-06-01 16:21 ` [ruby-core:81510] " eregontp
2017-06-01 16:44 ` [ruby-core:81511] " Greg.mpls
2017-06-01 19:08 ` [ruby-core:81513] " eregontp
2017-06-02 2:00 ` [ruby-core:81517] " nobu
2017-06-02 9:09 ` [ruby-core:81520] " eregontp
2017-06-02 9:15 ` [ruby-core:81521] " eregontp
2017-06-02 13:16 ` [ruby-core:81524] " Greg.mpls
2017-06-02 14:33 ` [ruby-core:81527] " Greg.mpls
2017-06-02 19:26 ` [ruby-core:81538] " Greg.mpls
2017-06-05 6:13 ` [ruby-core:81575] " usa
2017-06-05 8:03 ` [ruby-core:81576] " nobu
2017-06-05 16:32 ` [ruby-core:81582] " Greg.mpls
2017-06-15 13:51 ` [ruby-core:81693] " eregontp
2018-12-28 19:04 ` [ruby-core:90779] " eregontp
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.ruby-lang.org/en/community/mailing-lists/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=redmine.journal-64855.20170516211144.c15040348932c768@ruby-lang.org \
--to=ruby-core@ruby-lang.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).