summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--configure.in17
2 files changed, 20 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index f6a0cce829..f9fca45677 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Sat Feb 16 12:45:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in: unexpand arch sitearch and exec_prefix values, so
+ directly specified bindir, libdir, rubyprefix, etc can be properly
+ substituted. [ruby-core:52296] [Bug #7860]
+
Sat Feb 16 12:15:20 2013 Aaron Patterson <aaron@tenderlovemaking.com>
* parse.y: add dtrace probe for symbol create.
diff --git a/configure.in b/configure.in
index 4886791de2..8a3f458a3b 100644
--- a/configure.in
+++ b/configure.in
@@ -2551,9 +2551,14 @@ AS_CASE(["$target_os"],
AC_SUBST(setup)
-if test "$prefix" = NONE; then
- prefix=$ac_default_prefix
-fi
+test x"$prefix" = xNONE && prefix=$ac_default_prefix
+test x"${exec_prefix}" = xNONE && exec_prefix="$prefix"
+pat=`echo "${exec_prefix}" | tr -c '\012' .`'\(.*\)'
+for var in bindir libdir; do
+ eval val='"$'$var'"'
+ AS_CASE(["$val"], ["${exec_prefix}"*], [val='${exec_prefix}'"`expr \"$val\" : \"$pat\"`"])
+ eval $var='"$val"'
+done
BTESTRUBY='$(MINIRUBY)'
if test x"$cross_compiling" = xyes; then
@@ -3188,6 +3193,9 @@ sitearchincludedir='${includedir}/${sitearch}'
shvar_to_cpp() {
local var="$1" val="$2"
+ local exec_prefix_pat="`echo \"${exec_prefix}\" | sed 's/\\./\\\\./g'`"
+ local arch_pat="`echo \"${arch}\" | sed 's/\\./\\\\./g'`"
+ local sitearch_pat="`echo \"${sitearch}\" | sed 's/\\./\\\\./g'`"
val="`echo '"'"${val}"'"' |
sed \
-e 's/\${\([[A-Z][A-Z_]]*\)}/"\1"/g' \
@@ -3210,6 +3218,9 @@ shvar_to_cpp() {
-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|${exec_prefix_pat}|"'"RUBY_EXEC_PREFIX"|g' \
+ -e "s|${arch_pat}|"'"arch"|g' \
+ -e "s|${sitearch_pat}|"'"sitearch"|g' \
-e 's|^\"NONE/|RUBY_EXEC_PREFIX\"/|' \
-e 's|^\"NONE\"|\"'"${prefix}"'\"|' \
-e 's/^\"\"\(.\)/\1/;s/\(.\)\"\"$/\1/'