--pgp-sign-Multipart_Tue_Jul_15_00:21:16_2008-1
Content-Type: text/plain; charset=ISO-2022-JP

At Mon, 14 Jul 2008 18:33:03 +0900,
I wrote:
>  そういえば、 1.8.6 と 1.8.7 が prefix を分けないと(簡単には)
> 共存できないのは問題ですね。1.9.0 のように teeny もライブラリの
> ディレクトリ名に含めるオプションを設けるべきかも。

 configure オプション --with-ruby-version={minor|full|STR} の
追加を提案します。これと --program-suffix を組み合わせれば、
minorまで同じ、あるいはteenyまで同じバージョンのrubyを複数
インストールすることが容易になります。

 同オプションは ruby_version の値を決定します。

minor:
  ${MAJOR}.${MINOR} (1.8までのデフォルト)

full:
  ${MAJOR}.${MINOR}.${TEENY} (1.9.0のデフォルト)

上記以外
  指定した文字列


この値は rubylibdir, sitelibdir, vendorlibdir や gem, ri 等の
インストール先のディレクトリ名に反映されます。

 以下が ruby_1_8 用のパッチです。trunk 用もほぼ同じです。

Index: configure.in
===================================================================
--- configure.in	(revision 18055)
+++ configure.in	(working copy)
@@ -1751,6 +1751,19 @@ case "$target_os" in
 esac
 RUBY_LIB_PREFIX=`eval echo \\"${libdir}/ruby\\"`

+AC_ARG_WITH(ruby-version,
+	    [  --with-ruby-version=STR ruby version string that affects library directory names [[minor]] (full|minor|STR)],
+            [ruby_version=$withval],
+            [ruby_version=minor])
+case "$ruby_version" in
+  full)
+    ruby_version="${MAJOR}.${MINOR}.${TEENY}"
+    ;;
+  minor)
+    ruby_version="${MAJOR}.${MINOR}"
+    ;;
+esac
+
 AC_ARG_WITH(sitedir,
 	    [  --with-sitedir=DIR      site libraries in DIR [[LIBDIR/ruby/site_ruby]]],
             [sitedir=$withval],
@@ -1767,8 +1780,8 @@ case "$target_os" in
     RUBY_SITE_LIB_PATH="`eval echo \\"$SITE_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
     ;;
 esac
-RUBY_LIB_PATH="${RUBY_LIB_PREFIX}/${MAJOR}.${MINOR}"
-RUBY_SITE_LIB_PATH2="${RUBY_SITE_LIB_PATH}/${MAJOR}.${MINOR}"
+RUBY_LIB_PATH="${RUBY_LIB_PREFIX}/${ruby_version}"
+RUBY_SITE_LIB_PATH2="${RUBY_SITE_LIB_PATH}/${ruby_version}"

 AC_DEFINE_UNQUOTED(RUBY_LIB, "${RUBY_LIB_PATH}")
 AC_DEFINE_UNQUOTED(RUBY_SITE_LIB, "${RUBY_SITE_LIB_PATH}")
@@ -1787,13 +1800,14 @@ case "$target_os" in
     RUBY_VENDOR_LIB_PATH="`eval echo \\"$VENDOR_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
     ;;
 esac
-RUBY_VENDOR_LIB_PATH2="${RUBY_VENDOR_LIB_PATH}/${MAJOR}.${MINOR}"
+RUBY_VENDOR_LIB_PATH2="${RUBY_VENDOR_LIB_PATH}/${ruby_version}"

 AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB, "${RUBY_VENDOR_LIB_PATH}")
 AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB2, "${RUBY_VENDOR_LIB_PATH2}")

 AC_SUBST(arch)dnl
 AC_SUBST(sitearch)dnl
+AC_SUBST(ruby_version)dnl
 AC_SUBST(sitedir)dnl
 AC_SUBST(vendordir)dnl

Index: mkconfig.rb
===================================================================
--- mkconfig.rb	(revision 18055)
+++ mkconfig.rb	(working copy)
@@ -140,7 +140,6 @@ end
 print(*v_fast)
 print(*v_others)
 print <<EOS
-  CONFIG["ruby_version"] = "$(MAJOR).$(MINOR)"
   CONFIG["rubylibdir"] = "$(libdir)/ruby/$(ruby_version)"
   CONFIG["archdir"] = "$(rubylibdir)/$(arch)"
   CONFIG["sitelibdir"] = "$(sitedir)/$(ruby_version)"

--
Akinori MUSHA / http://akinori.org/

--pgp-sign-Multipart_Tue_Jul_15_00:21:16_2008-1
Content-Type: application/pgp-signature
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (FreeBSD)

iEYEABECAAYFAkh7buwACgkQkgvvx5/Z4e70pwCfRWZ2oFXMvZd4yAHt7Re2l0JZ
wSUAn2jYhZ0xlAUN99VHQyScKQABrHyS
=2bqv
-----END PGP SIGNATURE-----

--pgp-sign-Multipart_Tue_Jul_15_00:21:16_2008-1--