1
0
Fork 0
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:
Nobuyoshi Nakada 2021-03-30 23:28:49 +09:00 committed by GitHub
parent 9713acd731
commit 5cdf99f64e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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

View file

@ -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
View 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