diff --git a/lib/mkmf.rb b/lib/mkmf.rb index 3abf168d20..383579eb71 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -2822,7 +2822,12 @@ realclean: distclean end end -include MakeMakefile +# MakeMakefile::Global = # +m = Module.new { + include(MakeMakefile) + private(*MakeMakefile.public_instance_methods(false)) +} +include m if not $extmk and /\A(extconf|makefile).rb\z/ =~ File.basename($0) END {mkmf_failed($0)} diff --git a/test/mkmf/test_mkmf.rb b/test/mkmf/test_mkmf.rb new file mode 100644 index 0000000000..adb86eca8d --- /dev/null +++ b/test/mkmf/test_mkmf.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: false +require 'test/unit' +require 'mkmf' + +class TestMkmf < Test::Unit::TestCase + class TestGlobal < TestMkmf + main = TOPLEVEL_BINDING.receiver + MakeMakefile.public_instance_methods(false).each do |m| + define_method(:"test_global_#{m}") do + assert_respond_to(main, [m, true]) + assert_not_respond_to(main, [m, false]) + end + end + end +end