diff -urN ruby-1.8.4-orig/configure.in ruby-1.8.4/configure.in --- ruby-1.8.4-orig/configure.in 2006-04-13 17:16:11 +0400 +++ ruby-1.8.4/configure.in 2006-04-13 17:36:26 +0400 @@ -72,7 +72,6 @@ program_prefix= fi AC_CANONICAL_TARGET -target_os=`echo $target_os | sed 's/linux-gnu$/linux/;s/linux-gnu/linux-/'` dnl checks for fat-binary AC_ARG_ENABLE(fat-binary, @@ -1438,32 +1437,70 @@ RUBY_LIB_PREFIX="/lib/ruby" ;; *) - RUBY_LIB_PREFIX="${prefix}/lib/ruby" + RUBY_LIB_PREFIX="${datadir}/ruby" + RUBY_LIB_PREFIX2="${libdir}/ruby" ;; esac RUBY_LIB_PATH="${RUBY_LIB_PREFIX}/${MAJOR}.${MINOR}" +RUBY_LIB_PATH2="${RUBY_LIB_PREFIX2}/${MAJOR}.${MINOR}" AC_ARG_WITH(sitedir, - [ --with-sitedir=DIR site libraries in DIR [PREFIX/lib/ruby/site_ruby]], + [ --with-sitedir=DIR site libraries in DIR [DATADIR/ruby/site_ruby]], [sitedir=$withval], - [sitedir='${prefix}/lib/ruby/site_ruby']) + [sitedir="${datadir}/ruby/site_ruby"]) +AC_ARG_WITH(sitearchdir, + [ --with-sitearchdir=DIR arch-dependant site libraries in DIR [LIBDIR/ruby/site_ruby]], + [sitearchdir=$withval], + [sitearchdir="${libdir}/ruby/site_ruby"]) SITE_DIR="`eval \"echo ${sitedir}\"`" +SITE_ARCHDIR="`eval \"echo ${sitearchdir}\"`" 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_SITE_ARCHLIB_PATH="`expr "$SITE_ARCHDIR" : "$prefix\(/.*\)"`" || + RUBY_SITE_ARCHLIB_PATH="$SITE_ARCHDIR";; *) - RUBY_SITE_LIB_PATH="$SITE_DIR";; + RUBY_SITE_LIB_PATH="$SITE_DIR" + RUBY_SITE_ARCHLIB_PATH="$SITE_ARCHDIR";; esac RUBY_SITE_LIB_PATH2="${RUBY_SITE_LIB_PATH}/${MAJOR}.${MINOR}" +RUBY_SITE_LIB_PATH3="${RUBY_SITE_ARCHLIB_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}") +AC_ARG_WITH(vendordir, + [ --with-vendordir=DIR vendor libraries in DIR [DATADIR/ruby/vendor_ruby]], + [vendordir=$withval], + [vendordir="${datadir}/ruby/vendor_ruby"]) +AC_ARG_WITH(vendorarchdir, + [ --with-vendorarchdir=DIR arch-dependant vendor libraries in DIR [LIBDIR/ruby/vendor_ruby]], + [vendorarchdir=$withval], + [vendorarchdir="${libdir}/ruby/vendor_ruby"]) +VENDOR_DIR="`eval \"echo ${vendordir}\"`" +VENDOR_ARCHDIR="`eval \"echo ${vendorarchdir}\"`" +case "$target_os" in + cygwin*|mingw*|*djgpp*|os2_emx*) + RUBY_VENDOR_LIB_PATH="`expr "$VENDOR_DIR" : "$prefix\(/.*\)"`" || + RUBY_VENDOR_LIB_PATH="$VENDOR_DIR" + RUBY_VENDOR_ARCHLIB_PATH="`expr "$VENDOR_ARCHDIR" : "$prefix\(/.*\)"`" || + RUBY_VENDOR_ARCHLIB_PATH="$VENDOR_ARCHDIR";; + *) + RUBY_VENDOR_LIB_PATH="$VENDOR_DIR" + RUBY_VENDOR_ARCHLIB_PATH="$VENDOR_ARCHDIR";; +esac +RUBY_VENDOR_LIB_PATH2="${RUBY_VENDOR_LIB_PATH}/${MAJOR}.${MINOR}" +RUBY_VENDOR_LIB_PATH3="${RUBY_VENDOR_ARCHLIB_PATH}/${MAJOR}.${MINOR}" + +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(sitedir)dnl +AC_SUBST(vendordir)dnl configure_args=$ac_configure_args AC_SUBST(configure_args)dnl @@ -1487,8 +1524,16 @@ *) sitearch="${arch}" ;; esac -AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, "${RUBY_LIB_PATH}/${arch}") -AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, "${RUBY_SITE_LIB_PATH2}/${sitearch}") +archdir="${RUBY_LIB_PATH2}/${arch}" +sitearchdir="${RUBY_SITE_LIB_PATH3}/${sitearch}" +vendorarchdir="${RUBY_VENDOR_LIB_PATH3}/${sitearch}" + +AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, "${archdir}") +AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, "${sitearchdir}") +AC_DEFINE_UNQUOTED(RUBY_VENDOR_ARCHLIB, "${vendorarchdir}") +AC_SUBST(archdir)dnl +AC_SUBST(sitearchdir)dnl +AC_SUBST(vendorarchdir)dnl AC_ARG_WITH(search-path, [ --with-search-path=DIR specify the additional search path], diff -urN ruby-1.8.4-orig/ext/dl/extconf.rb ruby-1.8.4/ext/dl/extconf.rb --- ruby-1.8.4-orig/ext/dl/extconf.rb 2003-11-08 07:48:35 +0300 +++ ruby-1.8.4/ext/dl/extconf.rb 2006-04-13 17:16:40 +0400 @@ -180,8 +180,8 @@ EOF $INSTALLFILES = [ - ["./dlconfig.h", "$(archdir)$(target_prefix)", "."], - ["dl.h", "$(archdir)$(target_prefix)", ""], + ["./dlconfig.h", "$(rubyincludedir)$(target_prefix)", "."], + ["dl.h", "$(rubyincludedir)$(target_prefix)", ""], ] $cleanfiles = %w[test/test.o] $distcleanfiles = %w[call.func callback.func cbtable.func dlconfig.rb diff -urN ruby-1.8.4-orig/ext/extmk.rb ruby-1.8.4/ext/extmk.rb --- ruby-1.8.4-orig/ext/extmk.rb 2005-11-16 17:25:53 +0300 +++ ruby-1.8.4/ext/extmk.rb 2006-04-13 17:16:40 +0400 @@ -222,7 +222,7 @@ end end opts.on('--dest-dir=DIR') do |v| - $destdir = v + $destdir = v if ENV['DESTDIR'].to_s.empty? end opts.on('--extout=DIR') do |v| $extout = (v unless v.empty?) @@ -379,8 +379,26 @@ if $extout Config.expand(extout = "#$extout", Config::CONFIG.merge("topdir"=>$topdir)) if $install - Config.expand(dest = "#{$destdir}#{$rubylibdir}") - FileUtils.cp_r(extout+"/.", dest, :verbose => true, :noop => $dryrun) + + Config.expand(rubylibdest = "#{$destdir}#{$rubylibdir}") + Config.expand(archdest = "#{$destdir}#{$archdir}") + Config.expand(rubyincludedest = "#{$destdir}#{$rubyincludedir}") + + Dir[extout+"/**"].each{|f| + case f + when /^#{extout}\/#{Config::CONFIG['arch']}/ + Dir[f+"/**"].each{|f| + FileUtils.cp_r(f, archdest, :verbose => true, :noop => $dryrun) + } + when /^#{extout}\/include/ + Dir[f+"/**"].each{|f| + FileUtils.cp_r(f, rubyincludedest, :verbose => true, :noop => $dryrun) + } + else + FileUtils.cp_r(f, rubylibdest, :verbose => true, :noop => $dryrun) + end + } + exit end unless $ignore diff -urN ruby-1.8.4-orig/instruby.rb ruby-1.8.4/instruby.rb --- ruby-1.8.4-orig/instruby.rb 2005-07-05 18:45:33 +0400 +++ ruby-1.8.4/instruby.rb 2006-04-13 17:16:40 +0400 @@ -82,7 +82,7 @@ end def with_destdir(dir) - return dir if !$destdir or $destdir.empty? + return dir if !$destdir or $destdir.empty? or not ENV['DESTDIR'].empty? dir = dir.sub(/\A\w:/, '') if File::PATH_SEPARATOR == ';' $destdir + dir end @@ -95,6 +95,7 @@ version = CONFIG["ruby_version"] bindir = with_destdir(CONFIG["bindir"]) libdir = with_destdir(CONFIG["libdir"]) +rubyincludedir = with_destdir(CONFIG["rubyincludedir"]) rubylibdir = with_destdir(CONFIG["rubylibdir"]) archlibdir = with_destdir(CONFIG["archdir"]) sitelibdir = with_destdir(CONFIG["sitelibdir"]) @@ -106,7 +107,7 @@ lib = CONFIG["LIBRUBY"] arc = CONFIG["LIBRUBY_A"] -makedirs [bindir, libdir, rubylibdir, archlibdir, sitelibdir, sitearchlibdir] +makedirs [bindir, libdir, rubyincludedir, rubylibdir, archlibdir, sitelibdir, sitearchlibdir] install?(:bin) do ruby_bin = File.join(bindir, ruby_install_name) @@ -118,7 +119,7 @@ install dll, bindir, :mode => 0755 if enable_shared and dll != lib install lib, libdir, :mode => 0755 unless lib == arc install arc, libdir, :mode => 0644 -install "config.h", archlibdir, :mode => 0644 +install "config.h", rubyincludedir, :mode => 0644 install "rbconfig.rb", archlibdir, :mode => 0644 if CONFIG["ARCHFILE"] for file in CONFIG["ARCHFILE"].split @@ -136,7 +137,7 @@ Dir.chdir srcdir install?(:lib) do -ruby_shebang = File.join(CONFIG["bindir"], ruby_install_name) +ruby_shebang = File.join(CONFIG["bindir"], ruby_install_name).sub(/^#{Config::DESTDIR}/,'') if File::ALT_SEPARATOR ruby_bin_dosish = ruby_shebang.tr(File::SEPARATOR, File::ALT_SEPARATOR) end @@ -192,7 +193,7 @@ install?(:bin) do for f in Dir["*.h"] - install f, archlibdir, :mode => 0644 + install f, rubyincludedir, :mode => 0644 end if RUBY_PLATFORM =~ /mswin32|mingw|bccwin32/ diff -urN ruby-1.8.4-orig/lib/mkmf.rb ruby-1.8.4/lib/mkmf.rb --- ruby-1.8.4-orig/lib/mkmf.rb 2005-11-28 03:22:53 +0300 +++ ruby-1.8.4/lib/mkmf.rb 2006-04-13 17:16:41 +0400 @@ -47,6 +47,7 @@ $libdir = CONFIG["libdir"] $rubylibdir = CONFIG["rubylibdir"] $archdir = CONFIG["archdir"] +$rubyincludedir = CONFIG["rubyincludedir"] $sitedir = CONFIG["sitedir"] $sitelibdir = CONFIG["sitelibdir"] $sitearchdir = CONFIG["sitearchdir"] @@ -74,6 +75,7 @@ [dir_re("sitedir"), "$(RUBYCOMMONDIR)"], [dir_re('rubylibdir'), "$(RUBYLIBDIR)"], [dir_re('archdir'), "$(RUBYARCHDIR)"], + [dir_re('rubyincludedir'), "$(RUBYINCLUDEDIR)"], [dir_re('sitelibdir'), "$(RUBYLIBDIR)"], [dir_re('sitearchdir'), "$(RUBYARCHDIR)"] ] @@ -84,6 +86,7 @@ ['RUBYCOMMONDIR', '$(extout)'], ['RUBYLIBDIR', '$(extout)$(target_prefix)'], ['RUBYARCHDIR', '$(extout)/$(arch)$(target_prefix)'], + ['RUBYINCLUDEDIR','$(extout)/include'], ['extout', "#$extout"], ['extout_prefix', "#$extout_prefix"], ] @@ -92,12 +95,14 @@ ['RUBYCOMMONDIR', '$(rubylibdir)'], ['RUBYLIBDIR', '$(rubylibdir)$(target_prefix)'], ['RUBYARCHDIR', '$(archdir)$(target_prefix)'], + ['RUBYINCLUDEDIR','$(rubyincludedir)'], ] else dirs = [ ['RUBYCOMMONDIR', '$(sitedir)$(target_prefix)'], ['RUBYLIBDIR', '$(sitelibdir)$(target_prefix)'], ['RUBYARCHDIR', '$(sitearchdir)$(target_prefix)'], + ['RUBYINCLUDEDIR','$(rubyincludedir)'], ] end dirs << ['target_prefix', (target_prefix ? "/#{target_prefix}" : "")] @@ -112,8 +117,8 @@ topdir = File.dirname(libdir = File.dirname(__FILE__)) extdir = File.expand_path("ext", topdir) $extmk = File.expand_path($0)[0, extdir.size+1] == extdir+"/" -if not $extmk and File.exist?(Config::CONFIG["archdir"] + "/ruby.h") - $hdrdir = $topdir = Config::CONFIG["archdir"] +if not $extmk and File.exist?(Config::CONFIG["rubyincludedir"] + "/ruby.h") + $hdrdir = $topdir = Config::CONFIG["rubyincludedir"] elsif File.exist?(($top_srcdir ||= topdir) + "/ruby.h") and File.exist?(($topdir ||= Config::CONFIG["topdir"]) + "/config.h") $hdrdir = $top_srcdir @@ -269,7 +274,7 @@ 'LDFLAGS' => "#$LDFLAGS #{ldflags}", 'LIBPATH' => libpathflag(libpath), 'LOCAL_LIBS' => "#$LOCAL_LIBS #$libs", - 'LIBS' => "#$LIBRUBYARG_STATIC #{opt} #$LIBS")) + 'LIBS' => "#$LIBRUBYARG #{opt} #$LIBS")) end def cc_command(opt="") diff -urN ruby-1.8.4-orig/mkconfig.rb ruby-1.8.4/mkconfig.rb --- ruby-1.8.4-orig/mkconfig.rb 2005-11-11 02:22:03 +0300 +++ ruby-1.8.4/mkconfig.rb 2006-04-13 17:16:41 +0400 @@ -76,7 +76,7 @@ prefix = '/lib/ruby/' + RUBY_VERSION.sub(/\.\d+$/, '') + '/' + RUBY_PLATFORM print " TOPDIR = File.dirname(__FILE__).chomp!(#{prefix.dump})\n" -print " DESTDIR = ", (drive ? "TOPDIR && TOPDIR[/\\A[a-z]:/i] || " : ""), "'' unless defined? DESTDIR\n" +print " DESTDIR = ", (drive ? "TOPDIR && TOPDIR[/\\A[a-z]:/i] || " : ""), "ENV['DESTDIR'].to_s unless defined? DESTDIR\n" print " CONFIG = {}\n" print " CONFIG[\"DESTDIR\"] = DESTDIR\n" @@ -108,10 +108,17 @@ print v_fast, v_others print <