summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeroen van Meeuwen (OGD) <j.van.meeuwen@ogd.nl>2009-12-22 01:34:35 +0100
committerJeroen van Meeuwen (OGD) <j.van.meeuwen@ogd.nl>2009-12-22 01:34:35 +0100
commit6c8ae98039e8481c694599dc23863e763625c444 (patch)
treecf67070bcd0bec3819fab39b71b15f122521e4f4
parent2f562cc2b75d1f0fa1152c2ce440da34c80964fc (diff)
Provide the following searchpath for ruby-1.9.1:
/usr/local/lib{,64}/ruby/1.9.1/ /usr/local/lib{,64}/ruby/1.9/ /usr/local/lib{,64}/ruby/ /usr/local/share/ruby/1.9.1/ /usr/local/share/ruby/1.9/ /usr/local/share/ruby/ /usr/lib{,64}/ruby/1.9.1/ /usr/lib{,64}/ruby/1.9/ /usr/lib{,64}/ruby/ /usr/share/ruby/1.9.1/ /usr/share/ruby/1.9/ /usr/share/ruby/
-rw-r--r--Makefile.in4
-rw-r--r--configure.in60
-rw-r--r--gem_prelude.rb10
-rwxr-xr-xmkconfig.rb10
-rw-r--r--ruby.c26
5 files changed, 70 insertions, 40 deletions
diff --git a/Makefile.in b/Makefile.in
index c0a9fe55d..7b3b313e3 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -28,7 +28,11 @@ datadir = @datadir@
arch = @arch@
sitearch = @sitearch@
sitedir = @sitedir@
+sitearchdir = @sitearchdir@
+vendordir = @vendordir@
+vendorarchdir = @vendorarchdir@
ruby_version = @ruby_version@
+ruby_mm_version = @ruby_mm_version@
TESTUI = console
TESTS =
diff --git a/configure.in b/configure.in
index 94ff4201e..2e6297e42 100644
--- a/configure.in
+++ b/configure.in
@@ -2011,6 +2011,7 @@ AC_ARG_WITH(ruby-version,
case "$ruby_version" in
full)
ruby_version="${MAJOR}.${MINOR}.${TEENY}"
+ ruby_mm_version="${MAJOR}.${MINOR}"
;;
minor)
ruby_version="${MAJOR}.${MINOR}"
@@ -2023,12 +2024,24 @@ AC_ARG_WITH(sitedir,
[sitedir='${libdir}/${RUBY_INSTALL_NAME}/site_ruby'])
SITE_DIR=`eval echo \\"${sitedir}\\"`
+AC_ARG_WITH(sitearchdir,
+ [ --with-sitearchdir=DIR site arch. libraries in DIR [[LIBDIR/ruby/site_ruby]]],
+ [sitearchdir=$withval],
+ [sitearchdir='${libdir}/${RUBY_INSTALL_NAME}/site_ruby'])
+SITE_ARCH_DIR=`eval echo \\"${sitearchdir}\\"`
+
AC_ARG_WITH(vendordir,
[ --with-vendordir=DIR vendor libraries in DIR [[LIBDIR/ruby/vendor_ruby]]],
[vendordir=$withval],
[vendordir='${libdir}/${RUBY_INSTALL_NAME}/vendor_ruby'])
VENDOR_DIR=`eval echo \\"${vendordir}\\"`
+AC_ARG_WITH(vendorarchdir,
+ [ --with-vendorarchdir=DIR vendor arch. libraries in DIR [[LIBDIR/ruby/vendor_ruby]]],
+ [vendorarchdir=$withval],
+ [vendorarchdir='${libdir}/${RUBY_INSTALL_NAME}/vendor_ruby'])
+VENDOR_ARCH_DIR=`eval echo \\"${vendorarchdir}\\"`
+
case "$target_os" in
cygwin*|mingw*|*djgpp*|os2-emx*)
RUBY_LIB_PREFIX="`eval echo "$RUBY_LIB_PREFIX" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"
@@ -2037,25 +2050,48 @@ case "$target_os" in
;;
*)
RUBY_LIB_PREFIX="`eval echo \\"$RUBY_LIB_PREFIX\\" | sed 's|^NONE/|'"$prefix"'/|'`"
+ RUBY_SITE_ARCH_PATH="`eval echo \\"$SITE_ARCH_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
RUBY_SITE_LIB_PATH="`eval echo \\"$SITE_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
RUBY_VENDOR_LIB_PATH="`eval echo \\"$VENDOR_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
+ RUBY_VENDOR_ARCH_PATH="`eval echo \\"$VENDOR_ARCH_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
;;
esac
RUBY_LIB_PATH="${RUBY_LIB_PREFIX}/${ruby_version}"
-RUBY_SITE_LIB_PATH2="${RUBY_SITE_LIB_PATH}/${ruby_version}"
-RUBY_VENDOR_LIB_PATH2="${RUBY_VENDOR_LIB_PATH}/${ruby_version}"
+RUBY_SITE_ARCH_PATH_1="${RUBY_SITE_ARCH_PATH}${ruby_version}"
+RUBY_SITE_ARCH_PATH_2="${RUBY_SITE_ARCH_PATH}${ruby_mm_version}"
+RUBY_SITE_ARCH_PATH_3="${RUBY_SITE_ARCH_PATH}"
+RUBY_SITE_LIB_PATH_1="${RUBY_SITE_LIB_PATH}${ruby_version}"
+RUBY_SITE_LIB_PATH_2="${RUBY_SITE_LIB_PATH}${ruby_mm_version}"
+RUBY_SITE_LIB_PATH_3="${RUBY_SITE_LIB_PATH}"
+RUBY_VENDOR_ARCH_PATH_1="${RUBY_VENDOR_ARCH_PATH}${ruby_version}"
+RUBY_VENDOR_ARCH_PATH_2="${RUBY_VENDOR_ARCH_PATH}${ruby_mm_version}"
+RUBY_VENDOR_ARCH_PATH_3="${RUBY_VENDOR_ARCH_PATH}"
+RUBY_VENDOR_LIB_PATH_1="${RUBY_VENDOR_LIB_PATH}${ruby_version}"
+RUBY_VENDOR_LIB_PATH_2="${RUBY_VENDOR_LIB_PATH}${ruby_mm_version}"
+RUBY_VENDOR_LIB_PATH_3="${RUBY_VENDOR_LIB_PATH}"
AC_DEFINE_UNQUOTED(RUBY_LIB, "${RUBY_LIB_PATH}")
-AC_DEFINE_UNQUOTED(RUBY_SITE_LIB, "${RUBY_SITE_LIB_PATH}")
-AC_DEFINE_UNQUOTED(RUBY_SITE_LIB2, "${RUBY_SITE_LIB_PATH2}")
-AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB, "${RUBY_VENDOR_LIB_PATH}")
-AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB2, "${RUBY_VENDOR_LIB_PATH2}")
+AC_DEFINE_UNQUOTED(RUBY_SITE_ARCH, "${RUBY_SITE_ARCH_PATH_1}")
+AC_DEFINE_UNQUOTED(RUBY_SITE_ARCH2, "${RUBY_SITE_ARCH_PATH_2}")
+AC_DEFINE_UNQUOTED(RUBY_SITE_ARCH3, "${RUBY_SITE_ARCH_PATH_3}")
+AC_DEFINE_UNQUOTED(RUBY_SITE_LIB, "${RUBY_SITE_LIB_PATH_1}")
+AC_DEFINE_UNQUOTED(RUBY_SITE_LIB2, "${RUBY_SITE_LIB_PATH_2}")
+AC_DEFINE_UNQUOTED(RUBY_SITE_LIB3, "${RUBY_SITE_LIB_PATH_3}")
+AC_DEFINE_UNQUOTED(RUBY_VENDOR_ARCH, "${RUBY_VENDOR_ARCH_PATH_1}")
+AC_DEFINE_UNQUOTED(RUBY_VENDOR_ARCH2, "${RUBY_VENDOR_ARCH_PATH_2}")
+AC_DEFINE_UNQUOTED(RUBY_VENDOR_ARCH3, "${RUBY_VENDOR_ARCH_PATH_3}")
+AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB, "${RUBY_VENDOR_LIB_PATH_1}")
+AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB2, "${RUBY_VENDOR_LIB_PATH_2}")
+AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB3, "${RUBY_VENDOR_LIB_PATH_3}")
AC_SUBST(arch)dnl
AC_SUBST(sitearch)dnl
AC_SUBST(ruby_version)dnl
+AC_SUBST(ruby_mm_version)dnl
AC_SUBST(sitedir)dnl
+AC_SUBST(sitearchdir)dnl
AC_SUBST(vendordir)dnl
+AC_SUBST(vendorarchdir)dnl
configure_args=$ac_configure_args
AC_SUBST(configure_args)dnl
@@ -2066,12 +2102,12 @@ if test "$fat_binary" != no ; then
arch="fat-${target_os}"
AC_DEFINE_UNQUOTED(RUBY_THIN_ARCHLIB,
- "${RUBY_LIB_PATH}/" __ARCHITECTURE__ "-${target_os}")
+ "${RUBY_LIB_PATH}")
AC_DEFINE_UNQUOTED(RUBY_SITE_THIN_ARCHLIB,
- "${RUBY_SITE_LIB_PATH}/" __ARCHITECTURE__ "-${target_os}")
+ "${RUBY_SITE_LIB_PATH}")
AC_DEFINE_UNQUOTED(RUBY_VENDOR_THIN_ARCHLIB,
- "${RUBY_VENDOR_LIB_PATH}/" __ARCHITECTURE__ "-${target_os}")
+ "${RUBY_VENDOR_LIB_PATH}")
AC_DEFINE_UNQUOTED(RUBY_PLATFORM, __ARCHITECTURE__ "-${target_os}")
else
arch="${target_cpu}-${target_os}"
@@ -2083,9 +2119,9 @@ case "$target_os" in
*) sitearch="${arch}" ;;
esac
-AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, "${RUBY_LIB_PATH}/${arch}")
-AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, "${RUBY_SITE_LIB_PATH2}/${sitearch}")
-AC_DEFINE_UNQUOTED(RUBY_VENDOR_ARCHLIB, "${RUBY_VENDOR_LIB_PATH2}/${sitearch}")
+AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, "${RUBY_LIB_PATH}")
+AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, "${RUBY_SITE_LIB_PATH3}")
+AC_DEFINE_UNQUOTED(RUBY_VENDOR_ARCHLIB, "${RUBY_VENDOR_LIB_PATH3}")
AC_ARG_WITH(search-path,
[ --with-search-path=DIR specify the additional search path],
diff --git a/gem_prelude.rb b/gem_prelude.rb
index b5da35e18..d2efb8c3a 100644
--- a/gem_prelude.rb
+++ b/gem_prelude.rb
@@ -113,14 +113,11 @@ if defined?(Gem) then
def self.default_dir
if defined? RUBY_FRAMEWORK_VERSION then
- File.join File.dirname(ConfigMap[:sitedir]), 'Gems',
- ConfigMap[:ruby_version]
+ File.join File.dirname(ConfigMap[:sitedir]), 'Gems'
elsif RUBY_VERSION > '1.9' then
- File.join(ConfigMap[:libdir], ConfigMap[:ruby_install_name], 'gems',
- ConfigMap[:ruby_version])
+ File.join(ConfigMap[:libdir], ConfigMap[:ruby_install_name], 'gems')
else
- File.join(ConfigMap[:libdir], ruby_engine, 'gems',
- ConfigMap[:ruby_version])
+ File.join(ConfigMap[:libdir], ruby_engine, 'gems')
end
end
@@ -354,6 +351,7 @@ if defined?(Gem) then
Gem.push_all_highest_version_gems_on_load_path
$" << File.join(Gem::ConfigMap[:libdir], Gem::ConfigMap[:ruby_install_name],
Gem::ConfigMap[:ruby_version], "rubygems.rb")
+
rescue Exception => e
puts "Error loading gem paths on load path in gem_prelude"
puts e
diff --git a/mkconfig.rb b/mkconfig.rb
index d6a9d0398..24c8b9fd8 100755
--- a/mkconfig.rb
+++ b/mkconfig.rb
@@ -140,12 +140,10 @@ end
print(*v_fast)
print(*v_others)
print <<EOS
- CONFIG["rubylibdir"] = "$(libdir)/$(ruby_install_name)/$(ruby_version)"
- CONFIG["archdir"] = "$(rubylibdir)/$(arch)"
- CONFIG["sitelibdir"] = "$(sitedir)/$(ruby_version)"
- CONFIG["sitearchdir"] = "$(sitelibdir)/$(sitearch)"
- CONFIG["vendorlibdir"] = "$(vendordir)/$(ruby_version)"
- CONFIG["vendorarchdir"] = "$(vendorlibdir)/$(sitearch)"
+ CONFIG["rubylibdir"] = "$(vendordir)/$(ruby_version)"
+ CONFIG["archdir"] = "$(libdir)/ruby/$(ruby_version)"
+ CONFIG["sitelibdir"] = "$(sitedir)"
+ CONFIG["vendorlibdir"] = "$(vendordir)"
CONFIG["topdir"] = File.dirname(__FILE__)
MAKEFILE_CONFIG = {}
CONFIG.each{|k,v| MAKEFILE_CONFIG[k] = v.dup}
diff --git a/ruby.c b/ruby.c
index b50ee4507..854854b0a 100644
--- a/ruby.c
+++ b/ruby.c
@@ -407,25 +407,19 @@ ruby_init_loadpath_safe(int safe_level)
incpush(RUBY_RELATIVE(RUBY_SEARCH_PATH));
#endif
- incpush(RUBY_RELATIVE(RUBY_SITE_LIB2));
-#ifdef RUBY_SITE_THIN_ARCHLIB
- incpush(RUBY_RELATIVE(RUBY_SITE_THIN_ARCHLIB));
-#endif
- incpush(RUBY_RELATIVE(RUBY_SITE_ARCHLIB));
+ incpush(RUBY_RELATIVE(RUBY_SITE_ARCH));
+ incpush(RUBY_RELATIVE(RUBY_SITE_ARCH2));
+ incpush(RUBY_RELATIVE(RUBY_SITE_ARCH3));
incpush(RUBY_RELATIVE(RUBY_SITE_LIB));
+ incpush(RUBY_RELATIVE(RUBY_SITE_LIB2));
+ incpush(RUBY_RELATIVE(RUBY_SITE_LIB3));
- incpush(RUBY_RELATIVE(RUBY_VENDOR_LIB2));
-#ifdef RUBY_VENDOR_THIN_ARCHLIB
- incpush(RUBY_RELATIVE(RUBY_VENDOR_THIN_ARCHLIB));
-#endif
- incpush(RUBY_RELATIVE(RUBY_VENDOR_ARCHLIB));
+ incpush(RUBY_RELATIVE(RUBY_VENDOR_ARCH));
+ incpush(RUBY_RELATIVE(RUBY_VENDOR_ARCH2));
+ incpush(RUBY_RELATIVE(RUBY_VENDOR_ARCH3));
incpush(RUBY_RELATIVE(RUBY_VENDOR_LIB));
-
- incpush(RUBY_RELATIVE(RUBY_LIB));
-#ifdef RUBY_THIN_ARCHLIB
- incpush(RUBY_RELATIVE(RUBY_THIN_ARCHLIB));
-#endif
- incpush(RUBY_RELATIVE(RUBY_ARCHLIB));
+ incpush(RUBY_RELATIVE(RUBY_VENDOR_LIB2));
+ incpush(RUBY_RELATIVE(RUBY_VENDOR_LIB3));
if (safe_level == 0) {
incpush(".");