summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeroen van Meeuwen (OGD) <j.van.meeuwen@ogd.nl>2009-12-21 23:48:37 +0100
committerJeroen van Meeuwen (OGD) <j.van.meeuwen@ogd.nl>2009-12-22 01:36:19 +0100
commitf41c89f8f1401f7b3d8c14207c0779f53cdfcc4a (patch)
treef3233c6a0b0586d4f082921cdd5ac84ccb464d64
parentb2b9f9b79738646cdc6d7babd341913cc3587b53 (diff)
downloadruby-f41c89f8f1401f7b3d8c14207c0779f53cdfcc4a.tar.gz
ruby-f41c89f8f1401f7b3d8c14207c0779f53cdfcc4a.tar.xz
ruby-f41c89f8f1401f7b3d8c14207c0779f53cdfcc4a.zip
Provide the following searchpath for ruby-1.8.6:ruby_1_8_6_383-fedora
/usr/local/lib{,64}/ruby/1.8.6/ /usr/local/lib{,64}/ruby/1.8/ /usr/local/lib{,64}/ruby/ /usr/local/share/ruby/1.8.6/ /usr/local/share/ruby/1.8/ /usr/local/share/ruby/ /usr/lib{,64}/ruby/1.8.6/ /usr/lib{,64}/ruby/1.8/ /usr/lib{,64}/ruby/ /usr/share/ruby/1.8.6/ /usr/share/ruby/1.8/ /usr/share/ruby/
-rw-r--r--Makefile.in5
-rw-r--r--configure.in94
-rwxr-xr-xmkconfig.rb10
-rw-r--r--ruby.c23
4 files changed, 107 insertions, 25 deletions
diff --git a/Makefile.in b/Makefile.in
index 314e1ed25..bfa78ce09 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -24,6 +24,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 abba9bbfe..068c92507 100644
--- a/configure.in
+++ b/configure.in
@@ -1623,27 +1623,97 @@ case "$target_os" in
esac
RUBY_LIB_PATH="${RUBY_LIB_PREFIX}/${MAJOR}.${MINOR}"
+AC_ARG_WITH(ruby_version,
+ [ --with-ruby-version=full|minor Use full or Major.Minor [full]],
+ [ruby_version=$with_val]
+ [ruby_version="full"])
+
+case "$ruby_version" in
+ full)
+ ruby_version="${MAJOR}.${MINOR}.${TEENY}"
+ ruby_mm_version="${MAJOR}.${MINOR}"
+ ;;
+ minor)
+ ruby_version="${MAJOR}.${MINOR}"
+ ;;
+esac
+
AC_ARG_WITH(sitedir,
[ --with-sitedir=DIR site libraries in DIR [PREFIX/lib/ruby/site_ruby]],
[sitedir=$withval],
[sitedir="`eval "echo ${libdir}"`/ruby/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_SITE_LIB_PATH="`expr "$SITE_DIR" : "$prefix\(/.*\)"`" ||
RUBY_SITE_LIB_PATH="$SITE_DIR";;
*)
- RUBY_SITE_LIB_PATH="$SITE_DIR";;
+ 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_SITE_LIB_PATH2="${RUBY_SITE_LIB_PATH}/${MAJOR}.${MINOR}"
-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}")
+RUBY_LIB_PATH="${RUBY_LIB_PREFIX}/${ruby_version}"
+RUBY_SITE_ARCH_PATH_1="${RUBY_SITE_ARCH_PATH}${ruby_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_3="${RUBY_SITE_LIB_PATH}"
+RUBY_VENDOR_ARCH_PATH_1="${RUBY_VENDOR_ARCH_PATH}${ruby_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_3="${RUBY_VENDOR_LIB_PATH}"
+
+AC_DEFINE_UNQUOTED(RUBY_LIB_ARCH, "${RUBY_LIB_PATH}")
+AC_DEFINE_UNQUOTED(RUBY_SITE_ARCH, "${RUBY_SITE_ARCH_PATH_1}")
+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_LIB3, "${RUBY_SITE_LIB_PATH_3}")
+AC_DEFINE_UNQUOTED(RUBY_VENDOR_ARCH, "${RUBY_VENDOR_ARCH_PATH_1}")
+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_LIB3, "${RUBY_VENDOR_LIB_PATH_3}")
+
+if test "$ruby_mm_version" != NONE ; then
+ RUBY_SITE_ARCH_PATH_2="${RUBY_SITE_ARCH_PATH}${ruby_mm_version}"
+ RUBY_SITE_LIB_PATH_2="${RUBY_SITE_LIB_PATH}${ruby_mm_version}"
+ RUBY_VENDOR_ARCH_PATH_2="${RUBY_VENDOR_ARCH_PATH}${ruby_mm_version}"
+ RUBY_VENDOR_LIB_PATH_2="${RUBY_VENDOR_LIB_PATH}${ruby_mm_version}"
+ AC_DEFINE_UNQUOTED(RUBY_SITE_ARCH2, "${RUBY_SITE_ARCH_PATH_2}")
+ AC_DEFINE_UNQUOTED(RUBY_SITE_LIB2, "${RUBY_SITE_LIB_PATH_2}")
+ AC_DEFINE_UNQUOTED(RUBY_VENDOR_ARCH2, "${RUBY_VENDOR_ARCH_PATH_2}")
+ AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB2, "${RUBY_VENDOR_LIB_PATH_2}")
+ AC_SUBST(ruby_mm_version)dnl
+fi
AC_SUBST(arch)dnl
AC_SUBST(sitearch)dnl
+AC_SUBST(ruby_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
@@ -1654,10 +1724,14 @@ 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}")
+
AC_DEFINE_UNQUOTED(RUBY_PLATFORM, __ARCHITECTURE__ "-${target_os}")
else
arch="${target_cpu}-${target_os}"
@@ -1669,8 +1743,10 @@ 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_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/mkconfig.rb b/mkconfig.rb
index bffefdad1..6a3668e6a 100755
--- a/mkconfig.rb
+++ b/mkconfig.rb
@@ -138,11 +138,11 @@ 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)"
- CONFIG["sitearchdir"] = "$(sitelibdir)/$(sitearch)"
+ CONFIG["ruby_version"] = "$(MAJOR).$(MINOR).$(TEENY)"
+ CONFIG["rubylibdir"] = "$(vendordir)/$(ruby_version)"
+ CONFIG["archdir"] = "$(libdir)/ruby/$(ruby_version)"
+ CONFIG["sitelibdir"] = "$(sitedir)"
+ CONFIG["sitearchdir"] = "$(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 6fbb6d2dc..203fe3840 100644
--- a/ruby.c
+++ b/ruby.c
@@ -315,18 +315,19 @@ ruby_init_loadpath()
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_LIB));
-#ifdef RUBY_THIN_ARCHLIB
- incpush(RUBY_RELATIVE(RUBY_THIN_ARCHLIB));
-#endif
- incpush(RUBY_RELATIVE(RUBY_ARCHLIB));
+ incpush(RUBY_RELATIVE(RUBY_SITE_LIB2));
+ incpush(RUBY_RELATIVE(RUBY_SITE_LIB3));
+
+ 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_VENDOR_LIB2));
+ incpush(RUBY_RELATIVE(RUBY_VENDOR_LIB3));
if (rb_safe_level() == 0) {
incpush(".");