mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
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.
This commit is contained in:
parent
9713acd731
commit
5cdf99f64e
Notes:
git
2021-03-30 23:29:16 +09:00
Merged: https://github.com/ruby/ruby/pull/4339 Merged-By: nobu <nobu@ruby-lang.org>
2 changed files with 34 additions and 4 deletions
|
@ -207,8 +207,8 @@ module MakeMakefile
|
|||
['RUBYCOMMONDIR', '$(vendordir)$(target_prefix)'],
|
||||
['RUBYLIBDIR', '$(vendorlibdir)$(target_prefix)'],
|
||||
['RUBYARCHDIR', '$(vendorarchdir)$(target_prefix)'],
|
||||
['HDRDIR', '$(rubyhdrdir)/ruby$(target_prefix)'],
|
||||
['ARCHHDRDIR', '$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],
|
||||
['HDRDIR', '$(vendorhdrdir)$(target_prefix)'],
|
||||
['ARCHHDRDIR', '$(vendorarchhdrdir)$(target_prefix)'],
|
||||
]
|
||||
else
|
||||
dirs = [
|
||||
|
@ -216,8 +216,8 @@ module MakeMakefile
|
|||
['RUBYCOMMONDIR', '$(sitedir)$(target_prefix)'],
|
||||
['RUBYLIBDIR', '$(sitelibdir)$(target_prefix)'],
|
||||
['RUBYARCHDIR', '$(sitearchdir)$(target_prefix)'],
|
||||
['HDRDIR', '$(rubyhdrdir)/ruby$(target_prefix)'],
|
||||
['ARCHHDRDIR', '$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],
|
||||
['HDRDIR', '$(sitehdrdir)$(target_prefix)'],
|
||||
['ARCHHDRDIR', '$(sitearchhdrdir)$(target_prefix)'],
|
||||
]
|
||||
end
|
||||
dirs << ['target_prefix', (target_prefix ? "/#{target_prefix}" : "")]
|
||||
|
|
30
test/mkmf/test_install.rb
Normal file
30
test/mkmf/test_install.rb
Normal file
|
@ -0,0 +1,30 @@
|
|||
# frozen_string_literal: false
|
||||
require_relative 'base'
|
||||
|
||||
class TestMkmf
|
||||
class TestInstall < TestMkmf
|
||||
def test_install_dirs
|
||||
Dir.mktmpdir do |dir|
|
||||
File.write(dir+"/extconf.rb", "require 'mkmf'; create_makefile('test')")
|
||||
all_assertions do |a|
|
||||
a.foreach(
|
||||
["site"],
|
||||
["vendor", "--vendor"],
|
||||
) do |dest, *options|
|
||||
assert_ruby_status(["-C", dir, "extconf.rb", *options])
|
||||
mf = File.read(dir+"/Makefile")
|
||||
a.foreach(
|
||||
["RUBYCOMMONDIR", "$(#{dest}dir)$(target_prefix)"],
|
||||
["RUBYLIBDIR", "$(#{dest}libdir)$(target_prefix)"],
|
||||
["RUBYARCHDIR", "$(#{dest}archdir)$(target_prefix)"],
|
||||
["HDRDIR", "$(#{dest}hdrdir)$(target_prefix)"],
|
||||
["ARCHHDRDIR", "$(#{dest}archhdrdir)$(target_prefix)"],
|
||||
) do |(var, path)|
|
||||
assert_equal path, mf[/^#{var}\s*=\s*(.*)$/, 1]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue