summaryrefslogtreecommitdiff
path: root/test/mkmf
AgeCommit message (Collapse)Author
2025-08-09Revert "Convert `PKG_CONFIG_PATH` to msys/cygwin path"Nobuyoshi Nakada
This reverts commit 8e9ea4c202fb104d7c17ad1f3cc59d697120501a. The environment variable is converted internally.
2025-08-08Revert "Check if the found pkg-config is usable actually"Nobuyoshi Nakada
This reverts commit 79d8a3159f60d32396c8281fe438e86ab97e3daa. The second argument of `find_executable0` in mkmf is `path`, not arguments to the program like as `EnvUtil.find_executable`.
2025-08-05Check if the found pkg-config is usable actuallyNobuyoshi Nakada
2025-08-05Convert `PKG_CONFIG_PATH` to msys/cygwin pathNobuyoshi Nakada
2025-08-05Show mkmf.log contents even when `pkg-config` command failedNobuyoshi Nakada
2024-06-24Extend the timeout of test_try_ldflag_invalid_opt and ↵Yusuke Endoh
test_try_cppflag_invalid_opt
2024-04-02[Feature #20345] Add `--target-rbconfig` option to mkmfYuta Saito
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.
2023-05-29mkmf: Add the extra option `--with-verbose` to enable verbose mode. (#7863)Jun Aruga
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> Notes: Merged-By: junaruga
2023-01-31mkconfig: Map `includedir` only for system rubyNobuyoshi Nakada
Only when installing to the system path on macOS, prepend '$(SDKROOT)' and remap `includedir`. Fix https://github.com/rbenv/ruby-build/discussions/2123 Notes: Merged: https://github.com/ruby/ruby/pull/7197
2022-10-02Also the tests should use the configured pkg-configNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6482
2022-08-25Make sure super is called and fix teardownTakashi Kokubun
2022-08-25Skip flaky mkmf tests on AppVeyorTakashi Kokubun
It seems like TestMkmfTryConstant started to randomly fail, maybe related to 96562a517d3373466ec306b5f821a41f4758d2a6 or 073f3b7e0ad94657c04573983affb9d66e6bff2c. 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-04-22Avoid defining the same test class in multiple filesJeremy Evans
Should fix issues with parallel testing sometimes not running all tests. This should be viewed skipping whitespace changes. Fixes [Bug #18731] Notes: Merged: https://github.com/ruby/ruby/pull/5839
2022-03-17Update the test for [Feature #18615]Nobuyoshi Nakada
2022-01-29mkmf: pkg_config accepts multiple optionsMike Dalessio
Notes: Merged: https://github.com/ruby/ruby/pull/5436
2022-01-29test: backfill coverage for MakeMakefile.pkg_configMike Dalessio
Notes: Merged: https://github.com/ruby/ruby/pull/5436
2021-10-03Revert "mkmf.rb: try linking at try_var" [Bug #18235]Nobuyoshi Nakada
This reverts commit 524513be399e81bb170ec88aa0d501f33cbde8c3, which can return false positive by existing but unusable symbol, including functions.
2021-07-08mkmf.rb: try linking at try_varNobuyoshi Nakada
To check for variables accessible but not declared.
2021-07-03Separate toolchain dependent testNobuyoshi Nakada
2021-03-30mkmf: fixed install directories of header files in extension libraries [Bug ↵Nobuyoshi Nakada
#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. Notes: Merged: https://github.com/ruby/ruby/pull/4339 Merged-By: nobu <nobu@ruby-lang.org>
2021-02-05Added tests for MakeMakefile#test_egrep_cppNobuyoshi Nakada
2020-07-13Make the mkmf methods private in the global [Bug #16896]Nobuyoshi Nakada
2019-08-30Fix keyword argument separation warnings in testJeremy Evans
Notes: Merged: https://github.com/ruby/ruby/pull/2395
2019-06-20Suppress messages from mkmfNobuyoshi Nakada
2018-12-27test/mkmf/test_flags.rb: try to suppress random CI failurek0kubun
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-11-17test/mkmf/base.rb: use CC_WRAPPER same as the toplevelnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-17a C source code must end with EOLshyouhei
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
2017-10-23multiple arguments to writenobu
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-04-21test_framework.rb: for case-sensitive filesystemnobu
* 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
2016-03-24mkmf: Unquote directory stringsnobu
* 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-24test_find_executable.rb: each_extsnobu
* 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
2015-12-29* test/mkmf/test_have_func.rb (test_have_func):mrkn
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-16Add frozen_string_literal: false for all filesnaruse
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-11-04mkmf/base.rb: capture outputnobu
* 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-09-07test_framework.rb: use Ruby frameworknobu
* 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-03-03mkmf/base.rb: clean up tmpdirnobu
* 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-02-05mkmf/base.rb: fix constant scopenobu
* 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-04mkmf.rb: err by non existent filenobu
* 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-03mkmf.rb: avoid interferencenobu
* 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
2014-11-13* test/lib/envutil.rb: Moved from test/ruby/.akr
* 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-07-30mkmf.rb: try without -ObjC optionnobu
* 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-03-11* test: get rid of warnings.usa
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-01test_config.rb: fix library pathnobu
* 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-07-29mkmf.rb: expand all macrosnobu
* 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-04mkmf.rb: header in frameworknobu
* 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-04test/mkmf: $extmk in parallel testnobu
* 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-04test_have_library.rb: toolchains resultnobu
* 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-04mkmf.rb: CONFTESTnobu
* 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-04-20* test/csv/test_features.rb, test/logger/test_logger.rbakr
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-03-23* test/mkmf/test_have_macro.rb: remove temporally files in the tests.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e