From 855f97202af9c55307a19c45c4a8d95cfb7d99d0 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 19 Feb 2013 06:50:03 +0000 Subject: merge revision(s) 39267,39273,39294,39298,39313: * 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] * configure.in (shvar_to_cpp): do not substitute exec_prefix itself with RUBY_EXEC_PREFIX, which cause recursive definition. [ruby-core:52296] [Bug #7860] * configure.in (unexpand_shvar): regularize a shell variable by unexpanding shell variables in it. * configure.in (unexpand_shvar): regularize a shell variable by unexpanding shell variables in it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@39320 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- configure.in | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) (limited to 'configure.in') diff --git a/configure.in b/configure.in index 6890b7e4c8..19b9b40039 100644 --- a/configure.in +++ b/configure.in @@ -2512,9 +2512,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 @@ -3149,6 +3154,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' \ @@ -3171,6 +3179,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/' @@ -3178,6 +3189,23 @@ shvar_to_cpp() { eval $var='"$val"' } +unexpand_shvar() { + local var=$1 val n v expr quote + shift + test "$#" == 0 && return + quote=['s/${[^${}"]*}/"&"/g'] + for n do + eval v='"$'$n'"' + v="`echo \"$v\" | sed -e \"$quote\" -e ['s/[][$|.\\?*]/\\\\&/g']`" + if test -n "$v"; then + expr=["${expr};s|"'\("[^$"]*\)'"$v|\\1\${$n}\"|g"] + AS_CASE(["$v"], [*'${'*'}'*], [expr=["$expr;s|$v|\"\${$n}\"|g"]]) + fi + done + expr=["${quote}${expr};"'s/"\(\${[^${}"]*}\)"/\1/g'] + eval $var='"`echo \"\\\"${'$var'}\\\"\" | sed \"$expr;s/\\\"\\\"//g;s/^\\\"//;s/\\\"\\\$//\"`"' +} + rubylibprefix='${libdir}/${RUBY_BASE_NAME}' AC_ARG_WITH(rubylibprefix, AS_HELP_STRING([--with-rubylibprefix=DIR], [prefix for ruby libraries [[LIBDIR/RUBY_BASE_NAME]]]), @@ -3260,6 +3288,9 @@ AC_ARG_WITH(vendorarchdir, [vendorarchdir=$withval], [vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby/${ruby_version}'}${multiarch-'${vendorlibdir}/${sitearch}'}]) +unexpand_shvar rubylibprefix exec_prefix libdir RUBY_BASE_NAME +unexpand_shvar rubyarchprefix exec_prefix libdir arch RUBY_BASE_NAME archlibdir rubylibprefix +unexpand_shvar rubysitearchprefix exec_prefix libdir sitearch arch RUBY_BASE_NAME archlibdir sitearchlibdir rubylibprefix if test "${LOAD_RELATIVE+set}"; then AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE) RUBY_EXEC_PREFIX='""' @@ -3270,6 +3301,7 @@ 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}" +unexpand_shvar exec_prefix prefix if test ${RUBY_LIB_VERSION_STYLE+set}; then AC_DEFINE_UNQUOTED(RUBY_LIB_VERSION_STYLE, $RUBY_LIB_VERSION_STYLE !!) -- cgit v1.2.3