Skip to content
  • Jun Aruga's avatar
    57459b83
    mkmf: Add the extra option `--with-verbose` to enable verbose mode. (#7863) · 57459b83
    Jun Aruga authored
    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: default avatarNobuyoshi Nakada <nobu@ruby-lang.org>
    57459b83
    mkmf: Add the extra option `--with-verbose` to enable verbose mode. (#7863)
    Jun Aruga authored
    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: default avatarNobuyoshi Nakada <nobu@ruby-lang.org>
Loading