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 + + * 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 * 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/'