diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 374447f87..cb33a8d24 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -42,6 +42,11 @@ jobs: - name: depends run: bundle install + # Enable the verbose option in mkmf.rb to print the compiling commands. + - name: enable mkmf verbose + run: tool/enable-mkmf-verbose + if: runner.os == 'Linux' || runner.os == 'macOS' + - name: compile run: rake compile -- --enable-debug @@ -129,6 +134,10 @@ jobs: - name: depends run: bundle install + - name: enable mkmf verbose + run: tool/enable-mkmf-verbose + if: runner.os == 'Linux' || runner.os == 'macOS' + - name: compile run: rake compile -- --enable-debug --with-openssl-dir=$HOME/.openssl/${{ matrix.openssl }} diff --git a/tool/enable-mkmf-verbose b/tool/enable-mkmf-verbose new file mode 100755 index 000000000..be039077c --- /dev/null +++ b/tool/enable-mkmf-verbose @@ -0,0 +1,24 @@ +#!/bin/sh + +set -eux + +gem_home="$(gem environment home)" +mkmf_rb_path="$(find "${gem_home}"/../.. -name mkmf.rb)" + +# Backup the original file. +cp -p "${mkmf_rb_path}" "${mkmf_rb_path}.orig" + +# Replace the target line to set the verbose option. +sed -i -e 's/^V = .*/V = 1/' "${mkmf_rb_path}" + +# Print the difference between the original and modified file. This is useful +# to debug when the `mkmf.rb` may change in the future. And check if the +#`mkmf.rb` was modified. Because the `sed` command returns the exit status 0 no +# matter it replaces successfully or not. +if diff "${mkmf_rb_path}.orig" "${mkmf_rb_path}"; then + echo "error: ${mkmf_rb_path} was not modified." 1>&2 + exit 1 +elif [ "${?}" != 1 ]; then + echo "error: diff was failed." 1>&2 + exit 1 +fi