Граф коммитов

90 Коммитов

Автор SHA1 Сообщение Дата
Yuta Saito 8b55aaa85c [Feature #20345] Add `--target-rbconfig` option to mkmf
Introduce a new mkmf option `--target-rbconfig` to specify the RbConfig
file for the deployment target platform. This option is useful for
cross-compiling Ruby extensions without faking the global top-level
`RbConfig` constant.
2024-04-02 14:24:54 +09:00
Jun Aruga 57459b83a9
mkmf: Add the extra option `--with-verbose` to enable verbose mode. (#7863)
This commit is to add an extra option to enable verbose mode (V=1) in the
generated `Makefile` at runtime of the Ruby to print compiler command lines by
the commands below when building native extensions. It's possible to enable the
verbose mode by setting the environment variable `MAKEFLAGS="V=1"`[1]
implemented in GNU make. However, I wanted to make a consistent user-interface
not depending on the specific make's implementation.

```
$ ruby /path/to/extconf.rb -- --with-verbose
```

You can also add the extra option via rake-compiler gem.

```
$ rake compiler -- --with-verbose
```

If the extra option is not given, the value of the
`RbConfig::CONFIG["MKMF_VERBOSE"]` enabled by the configure option below is
used.

```
$ ./configure --enable-mkmf-verbose
```

For the unit tests, updated the following files.

* The `test/mkmf/test_configuration.rb` was created to test the cases with the
  `configuration` method and this implementation.
* Updated the `TestMkmf#assert_separately` to set the extra
  arguments in `test/mkmf/base.rb`. Updated tests using the `assert_separately`.
* Added tests for `MakeMakefile#with_config` in the `test/mkmf/test_config.rb`.

[1] https://www.gnu.org/software/make/manual/html_node/Variables_002fRecursion.html

Fixes [Bug #19695]

Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2023-05-29 10:09:32 +02:00
Nobuyoshi Nakada 3a7367ccc3 mkconfig: Map `includedir` only for system ruby
Only when installing to the system path on macOS, prepend '$(SDKROOT)'
and remap `includedir`.
Fix https://github.com/rbenv/ruby-build/discussions/2123
2023-01-31 06:33:16 +09:00
Nobuyoshi Nakada de9c612d63
Also the tests should use the configured pkg-config 2022-10-02 15:19:14 +09:00
Takashi Kokubun af9fa16c96
Make sure super is called and fix teardown 2022-08-25 11:31:16 -07:00
Takashi Kokubun 52560a9263
Skip flaky mkmf tests on AppVeyor
It seems like TestMkmfTryConstant started to randomly fail, maybe
related to 96562a517d or 073f3b7e0a.

Some of them seem to have failed even after retries, so it feels like
there's a bug in the implementation, which leaves an unrecoverable situation.
https://ci.appveyor.com/project/ruby/ruby/builds/44559958/job/7uub5bmkvy4pwwl8
https://ci.appveyor.com/project/ruby/ruby/builds/44579924/job/n81xmb2mqs6no7dm
https://ci.appveyor.com/project/ruby/ruby/builds/44558471/job/s4qwymmlxmfjjd35

Until we figure out what it is, I'd like to stabilize the CI by not
running it.
2022-08-25 11:11:16 -07:00
Jeremy Evans ab3cb29bd9 Avoid defining the same test class in multiple files
Should fix issues with parallel testing sometimes not running all
tests.

This should be viewed skipping whitespace changes.

Fixes [Bug #18731]
2022-04-22 15:00:16 -07:00
Nobuyoshi Nakada acbc2bdd30
Update the test for [Feature #18615] 2022-03-17 15:07:18 +09:00
Mike Dalessio b90e56e624 mkmf: pkg_config accepts multiple options 2022-01-29 15:22:52 +09:00
Mike Dalessio 24c7e75ded test: backfill coverage for MakeMakefile.pkg_config 2022-01-29 15:22:52 +09:00
Nobuyoshi Nakada ea64e742f5
Revert "mkmf.rb: try linking at try_var" [Bug #18235]
This reverts commit 524513be39,
which can return false positive by existing but unusable symbol,
including functions.
2021-10-03 18:23:39 +09:00
Nobuyoshi Nakada 524513be39
mkmf.rb: try linking at try_var
To check for variables accessible but not declared.
2021-07-08 18:18:35 +09:00
Nobuyoshi Nakada 2d3572a154
Separate toolchain dependent test 2021-07-03 22:11:24 +09:00
Nobuyoshi Nakada 5cdf99f64e
mkmf: fixed install directories of header files in extension libraries [Bug #17761]
When installing an extension library which provides a header, that
header should be installed under site_ruby (or vendor_ruby when
"--vendor" option was given to extconf.rb).  However, currently
this file is about to be installed in the core include directory.
2021-03-30 23:28:49 +09:00
Nobuyoshi Nakada 7baedeffe9
Added tests for MakeMakefile#test_egrep_cpp 2021-02-05 13:59:27 +09:00
Nobuyoshi Nakada c2a6295ec0
Make the mkmf methods private in the global [Bug #16896] 2020-07-13 18:44:22 +09:00
Jeremy Evans e0b4599bba Fix keyword argument separation warnings in test 2019-08-30 12:39:31 -07:00
Nobuyoshi Nakada 1f0762ad21
Suppress messages from mkmf 2019-06-20 20:51:33 +09:00
k0kubun e1930666c7 test/mkmf/test_flags.rb: try to suppress random CI failure
on AIX ppc
https://rubyci.org/logs/rubyci.s3.amazonaws.com/aix71_ppc/ruby-trunk/log/20181226T113305Z.fail.html.gz

test/lib/test/unit/assertions.rb: ditto, for TestIO#test_copy_stream_no_busy_wait

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-27 16:24:46 +00:00
nobu 2b894084ef test/mkmf/base.rb: use CC_WRAPPER same as the toplevel
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-17 01:42:30 +00:00
shyouhei a5c76f8cfc a C source code must end with EOL
cf: ISO 9899 section 5.1.1.2


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-17 10:04:22 +00:00
nobu 30d23ec903 multiple arguments to write
Make write methods of IO-like objects accept multiple arguments,
as well as IO#write.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-23 14:05:07 +00:00
nobu 20d81b4287 test_framework.rb: for case-sensitive filesystem
* test/mkmf/test_framework.rb (test_single_framework): fix header
  file name for case-sensitive filesystem.  it may not be same as
  the framework name, but should be the actual file name.
  [ruby-dev:50093] [Bug #13489]

* test/mkmf/test_framework.rb (test_multi_frameworks): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-21 06:12:27 +00:00
nobu 22f1db4b8e mkmf: Unquote directory strings
* lib/mkmf.rb (find_executable0): On Windows, it is actually valid
  to surround individual PATH directory entries with double
  quotes. Remove these before joining the path as otherwise the
  literal quotes would become part of the path, resulting in the
  executable not to be found.  [Fix GH-1305]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-24 16:10:43 +00:00
nobu e7e0eeb084 test_find_executable.rb: each_exts
* test/mkmf/test_find_executable.rb (each_exts): extract common
  setup.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-24 16:04:51 +00:00
mrkn 88aa6abf9c * test/mkmf/test_have_func.rb (test_have_func):
Add assertion to examine the existence of HAVE_RUBY_INIT.

* test/mkmf/test_have_func.rb (test_not_have_func):
  Add assertion to examine the absence of HAVE_RUBY_INIT.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-29 01:37:20 +00:00
naruse 3e92b635fb Add frozen_string_literal: false for all files
When you change this to true, you may need to add more tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 05:07:31 +00:00
nobu 7995eb43cb mkmf/base.rb: capture output
* test/mkmf/base.rb (TestMkmf::Base::Capture#write): capture
  output inside mkmf method.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-04 01:31:15 +00:00
nobu d57e043ab5 test_framework.rb: use Ruby framework
* test/mkmf/test_framework.rb (test_single_framework): use Ruby
  framework, as CoreFoundation framework uses Apple extensions
  unsupported by standard GCC other than Apple-patched clang.

* test/mkmf/test_framework.rb (test_multi_frameworks): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-07 08:51:01 +00:00
nobu f6ed283fd5 mkmf/base.rb: clean up tmpdir
* test/mkmf/base.rb (TestMkmf#assert_separately): call teardown to
  clean up temporary directory.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-03 17:01:13 +00:00
nobu bca963220a mkmf/base.rb: fix constant scope
* test/mkmf/base.rb (TestMkmf::Base): fix constant scope for
  r49482.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49508 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-05 04:50:18 +00:00
nobu a91de8317c mkmf.rb: err by non existent file
* lib/mkmf.rb (try_cppflags, try_cflags, try_ldflags): err by non
  existent source file.  [ruby-core:67962] [Bug #10821]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49487 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-04 01:36:54 +00:00
nobu af5b7053f1 mkmf.rb: avoid interference
* lib/mkmf.rb (try_cppflags, try_cflags, try_ldflags): get rid of
  interference by modifying global variables in have_devel? method.
  [ruby-core:67962] [Bug #10821]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49482 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-03 08:15:47 +00:00
akr fb2008a73a * test/lib/envutil.rb: Moved from test/ruby/.
* test/lib/find_executable.rb: Ditto.

* test/lib/memory_status.rb: Ditto.

* test/lib/test/unit.rb: require envutil.

* test/: Don't require envutil in test files.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-13 16:05:37 +00:00
nobu 8a22a0530e mkmf.rb: try without -ObjC option
* lib/mkmf.rb (have_framework): try without -ObjC option first as
  MacPorts GCCs do not support it.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47010 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-30 16:17:55 +00:00
usa 5543a55b52 * test: get rid of warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-11 04:22:34 +00:00
nobu f09b772de6 test_config.rb: fix library path
* test/mkmf/test_config.rb (test_dir_config): fix expected library
  path.  [ruby-core:57535] [Bug #8972]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-01 11:36:47 +00:00
nobu fcb58bdb38 mkmf.rb: expand all macros
* lib/mkmf.rb (xsystem): expand environment variable in all macros not
  expanded with RbConfig.  [Bug #8702]
* test/mkmf/test_framework.rb (create_framework): replace all $@ not
  only once.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42223 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-29 05:52:53 +00:00
nobu 5d57230959 mkmf.rb: header in framework
* lib/mkmf.rb (have_framework): allow header file to check.
  [ruby-core:55745] [Bug #8593]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41777 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-04 15:25:46 +00:00
nobu 0eed101a54 test/mkmf: $extmk in parallel test
* test/mkmf/base.rb, test/mkmf/test_config.rb: needs to set $extmk
  since worker processes in parallel test mode.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-04 07:03:07 +00:00
nobu a536143507 test_have_library.rb: toolchains result
* test/mkmf/test_have_library.rb (create_library): check if toolchains
  work.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-04 07:03:05 +00:00
nobu 246c66f702 mkmf.rb: CONFTEST
* lib/mkmf.rb (CONFTEST): constify hardcoded filename.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41769 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-04 07:03:01 +00:00
akr 8f671120f1 * test/csv/test_features.rb, test/logger/test_logger.rb
test/mkmf/test_have_macro.rb, test/net/http/test_http.rb,
  test/openssl/test_config.rb, test/psych/test_encoding.rb,
  test/psych/test_exception.rb, test/psych/test_psych.rb,
  test/psych/test_tainted.rb, test/readline/test_readline.rb,
  test/rexml/test_contrib.rb, test/ruby/test_autoload.rb,
  test/ruby/test_beginendblock.rb, test/ruby/test_exception.rb,
  test/ruby/test_file.rb, test/ruby/test_io.rb,
  test/ruby/test_marshal.rb, test/ruby/test_process.rb,
  test/ruby/test_require.rb, test/ruby/test_rubyoptions.rb,
  test/syslog/test_syslog_logger.rb, test/webrick/test_httpauth.rb,
  test/zlib/test_zlib.rb: Use Tempfile.create.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-20 23:03:52 +00:00
akr c09287bdaa * test/mkmf/test_have_macro.rb: remove temporally files in the tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-23 17:16:21 +00:00
nobu 79ea4d627f * test/mkmf/test_config.rb (TestMkmf): fix superclass mismatch.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-11 12:12:15 +00:00
usa 2f20defa7a * test/mkmf/base.rb: class name conflict.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-11 10:23:12 +00:00
nobu 76d8cc33f9 mkmf.rb: defer use of instance variable
* lib/mkmf.rb (MakeMakefile#dir_config, MakeMakefile#_libdir_basename):
  defer use of instance variable until needed.  [Bug #8074]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39717 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-11 02:53:47 +00:00
nobu 3d88196632 assertions.rb: allow proc
* lib/test/unit/assertions.rb (Test::Unit::Assertions#message):
  convert msg by call if it is a proc, as well as assert.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-08 07:02:37 +00:00
nobu 13b11810e2 mkmf.rb: fix merge_libs
* lib/mkmf.rb (MakeMakefile#merge_libs): insert following reversal
  ordered elements just after the duplicated element, not overwriting
  successive elements.  [ruby-core:50314] [Bug #7467]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-07 06:33:22 +00:00
nobu fd0c338df7 test_libs.rb: new test
* test/mkmf/test_libs.rb (TestMkmf:TestLibs): tests for $libs operations.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-07 06:32:12 +00:00