summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--configure.in22
-rw-r--r--template/ruby.pc.in1
-rw-r--r--test/test_rbconfig.rb41
-rw-r--r--win32/Makefile.sub4
5 files changed, 65 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index b1473943e0..e20d624566 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Feb 19 12:25:27 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * win32/Makefile.sub (config.status): site and vendor directories
+ should use sitearch, not arch. [ruby-dev:46964] [Bug #7823]
+
Tue Feb 19 07:51:01 2013 Koichi Sasada <ko1@atdot.net>
* backport r39275 from trunk. [ruby-dev:46994] [Bug #7774]
diff --git a/configure.in b/configure.in
index 5850bbf488..6890b7e4c8 100644
--- a/configure.in
+++ b/configure.in
@@ -3142,10 +3142,10 @@ AC_ARG_ENABLE(multiarch,
AS_HELP_STRING([--enable-multiarch], [enable multiarch compatible directories]),
[multiarch=], [unset multiarch])
-archlibdir='${libdir}'${multiarch+'/${arch}'}
-sitearchlibdir='${libdir}'${multiarch+'/${sitearch}'}
-archincludedir='${includedir}'${multiarch+'/${arch}'}
-sitearchincludedir='${includedir}'${multiarch+'/${sitearch}'}
+archlibdir='${libdir}/${arch}'
+sitearchlibdir='${libdir}/${sitearch}'
+archincludedir='${includedir}/${arch}'
+sitearchincludedir='${includedir}/${sitearch}'
shvar_to_cpp() {
local var="$1" val="$2"
@@ -3169,6 +3169,7 @@ shvar_to_cpp() {
-e 's/\${rubylibdir}/"RUBY_LIB"/g' \
-e 's/\${rubylibprefix}/"RUBY_LIB_PREFIX"/g' \
-e 's/\${rubyarchprefix}/"RUBY_ARCH_PREFIX_FOR(arch)"/g' \
+ -e 's/\${rubysitearchprefix}/"RUBY_SITEARCH_PREFIX_FOR(arch)"/g' \
-e 's/\${exec_prefix}/"RUBY_EXEC_PREFIX"/g' \
-e 's|^\"NONE/|RUBY_EXEC_PREFIX\"/|' \
-e 's|^\"NONE\"|\"'"${prefix}"'\"|' \
@@ -3195,6 +3196,13 @@ AC_ARG_WITH(rubyarchprefix,
[rubyarchprefix="$withval"])
AC_SUBST(rubyarchprefix)
+rubysitearchprefix=${multiarch+'${sitearchlibdir}/${RUBY_BASE_NAME}'}${multiarch-'${rubylibprefix}/${sitearch}'}
+AC_ARG_WITH(rubysitearchprefix,
+ AS_HELP_STRING([--with-rubysitearchprefix=DIR],
+ [prefix for architecture dependent site libraries [[RUBYLIBPREFIX/SITEARCH]]]),
+ [rubysitearchprefix="$withval"])
+AC_SUBST(rubysitearchprefix)
+
RI_BASE_NAME=`echo ${RUBY_BASE_NAME} | sed 's/ruby/ri/'`
ridir='${datarootdir}/${RI_BASE_NAME}'
AC_ARG_WITH(ridir,
@@ -3238,7 +3246,7 @@ AC_ARG_WITH(sitearchdir,
AS_HELP_STRING([--with-arch-sitedir=DIR],
[architecture dependent site libraries in DIR [[SITEDIR/SITEARCH]], "no" to disable site directory]),
[sitearchdir=$withval],
- [sitearchdir=${multiarch+'${rubyarchprefix}/site_ruby/${ruby_version}'}${multiarch-'${sitelibdir}/${sitearch}'}])
+ [sitearchdir=${multiarch+'${rubysitearchprefix}/site_ruby/${ruby_version}'}${multiarch-'${sitelibdir}/${sitearch}'}])
AC_ARG_WITH(vendordir,
AS_HELP_STRING([--with-vendordir=DIR], [vendor libraries in DIR [[RUBY_LIB_PREFIX/vendor_ruby]], "no" to disable vendor directory]),
@@ -3250,7 +3258,7 @@ AC_ARG_WITH(vendorarchdir,
AS_HELP_STRING([--with-arch-vendordir=DIR],
[architecture dependent vendor libraries in DIR [[VENDORDIR/SITEARCH]], "no" to disable vendor directory]),
[vendorarchdir=$withval],
- [vendorarchdir=${multiarch+'${rubyarchprefix}/vendor_ruby/${ruby_version}'}${multiarch-'${vendorlibdir}/${sitearch}'}])
+ [vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby/${ruby_version}'}${multiarch-'${vendorlibdir}/${sitearch}'}])
if test "${LOAD_RELATIVE+set}"; then
AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)
@@ -3260,6 +3268,7 @@ else
fi
shvar_to_cpp RUBY_LIB_PREFIX "${rubylibprefix}"
shvar_to_cpp RUBY_ARCH_PREFIX_FOR "${rubyarchprefix}"
+shvar_to_cpp RUBY_SITEARCH_PREFIX_FOR "${rubysitearchprefix}"
shvar_to_cpp RIDIR "${ridir}"
if test ${RUBY_LIB_VERSION_STYLE+set}; then
@@ -3270,6 +3279,7 @@ fi
AC_DEFINE_UNQUOTED(RUBY_EXEC_PREFIX, ${RUBY_EXEC_PREFIX})
AC_DEFINE_UNQUOTED(RUBY_LIB_PREFIX, ${RUBY_LIB_PREFIX} !<verconf>!)
AC_DEFINE_UNQUOTED(RUBY_ARCH_PREFIX_FOR(arch), ${RUBY_ARCH_PREFIX_FOR} !<verconf>!)
+AC_DEFINE_UNQUOTED(RUBY_SITEARCH_PREFIX_FOR(arch), ${RUBY_SITEARCH_PREFIX_FOR} !<verconf>!)
shvar_to_cpp RUBY_LIB "${rubylibdir}"
if test "x${RUBY_LIB}" != 'xRUBY_LIB_PREFIX"/"RUBY_LIB_VERSION'; then
diff --git a/template/ruby.pc.in b/template/ruby.pc.in
index 7ffd2d43d0..65a3f79857 100644
--- a/template/ruby.pc.in
+++ b/template/ruby.pc.in
@@ -31,6 +31,7 @@ sitearchincludedir=@sitearchincludedir@
ruby=${bindir}/${RUBY_INSTALL_NAME}@EXEEXT@
rubylibprefix=@rubylibprefix@
rubyarchprefix=@rubyarchprefix@
+rubysitearchprefix=@rubysitearchprefix@
rubylibdir=@rubylibdir@
vendordir=@vendordir@
sitedir=@sitedir@
diff --git a/test/test_rbconfig.rb b/test/test_rbconfig.rb
new file mode 100644
index 0000000000..49d65e9d06
--- /dev/null
+++ b/test/test_rbconfig.rb
@@ -0,0 +1,41 @@
+require 'test/unit'
+require 'rbconfig'
+
+class TestRbConfig < Test::Unit::TestCase
+ def test_sitedirs
+ RbConfig::MAKEFILE_CONFIG.each do |key, val|
+ next unless /\Asite(?!arch)/ =~ key
+ assert_match(/(?:\$\(|\/)site/, val, key)
+ end
+ end
+
+ def test_vendordirs
+ RbConfig::MAKEFILE_CONFIG.each do |key, val|
+ next unless /\Avendor(?!arch)/ =~ key
+ assert_match(/(?:\$\(|\/)vendor/, val, key)
+ end
+ end
+
+ def test_archdirs
+ RbConfig::MAKEFILE_CONFIG.each do |key, val|
+ next unless /\A(?!site|vendor|archdir\z).*arch.*dir\z/ =~ key
+ assert_match(/\$\(arch|\$\(rubyarchprefix\)/, val, key)
+ end
+ end
+
+ def test_sitearchdirs
+ bug7823 = '[ruby-dev:46964] [Bug #7823]'
+ RbConfig::MAKEFILE_CONFIG.each do |key, val|
+ next unless /\Asite.*arch.*dir\z/ =~ key
+ assert_match(/\$\(sitearch|\$\(rubysitearchprefix\)/, val, "#{key} #{bug7823}")
+ end
+ end
+
+ def test_vendorarchdirs
+ bug7823 = '[ruby-dev:46964] [Bug #7823]'
+ RbConfig::MAKEFILE_CONFIG.each do |key, val|
+ next unless /\Avendor.*arch.*dir\z/ =~ key
+ assert_match(/\$\(sitearch|\$\(rubysitearchprefix\)/, val, "#{key} #{bug7823}")
+ end
+ end
+end
diff --git a/win32/Makefile.sub b/win32/Makefile.sub
index 5ac8ca1ea4..4346e73751 100644
--- a/win32/Makefile.sub
+++ b/win32/Makefile.sub
@@ -850,10 +850,10 @@ s,@rubylibprefix@,$${prefix}/lib/$${RUBY_BASE_NAME},;t t
s,@rubyarchdir@,$${rubylibdir}/$${arch},;t t
s,@rubylibdir@,$${rubylibprefix}/$${ruby_version},;t t
s,@sitedir@,$${rubylibprefix}/site_ruby,;t t
-s,@sitearchdir@,$${sitelibdir}/$${arch},;t t
+s,@sitearchdir@,$${sitelibdir}/$${sitearch},;t t
s,@sitelibdir@,$${sitedir}/$${ruby_version},;t t
s,@vendordir@,$${rubylibprefix}/vendor_ruby,;t t
-s,@vendorarchdir@,$${vendirlibdir}/$${arch},;t t
+s,@vendorarchdir@,$${vendirlibdir}/$${sitearch},;t t
s,@vendorlibdir@,$${vendordir}/$${ruby_version},;t t
s,@rubyhdrdir@,$$(includedir)/$${RUBY_BASE_NAME}-$$(ruby_version),;t t
s,@sitehdrdir@,$$(rubyhdrdir)/site_ruby,;t t