mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
Merge from ruby_1_8.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@16679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
0570e27b47
commit
f3589dd1fd
12 changed files with 94 additions and 4 deletions
|
@ -1,3 +1,9 @@
|
|||
Thu May 29 20:07:45 2008 Akinori MUSHA <knu@iDaemons.org>
|
||||
|
||||
* configure.in, win32/Makefile.sub, mkconfig.rb, instruby.rb,
|
||||
ruby.c, lib/mkmf.rb, README.EXT, README.EXT.ja: Backport the
|
||||
vendor_ruby directory support.
|
||||
|
||||
Wed May 28 17:54:29 2008 Akinori MUSHA <knu@iDaemons.org>
|
||||
|
||||
* string.c (rb_str_start_with): Remove an unused variable.
|
||||
|
|
19
NEWS
19
NEWS
|
@ -9,6 +9,25 @@ with all sufficient information, see the ChangeLog file.
|
|||
|
||||
== Changes since the 1.8.6 release
|
||||
|
||||
=== Configuration changes
|
||||
|
||||
* vendor_ruby directory
|
||||
|
||||
A new library directory named `vendor_ruby' is introduced in
|
||||
addition to `site_ruby'. The idea is to separate libraries
|
||||
installed by the package system (`vendor') from manually (`site')
|
||||
installed libraries preventing the former from getting overwritten
|
||||
by the latter, while preserving the user option to override vendor
|
||||
libraries with site libraries. (`site_ruby' takes precedence over
|
||||
`vendor_ruby')
|
||||
|
||||
If you are a package maintainer, make each library package configure
|
||||
the library passing the `--vendor' option to `extconf.rb' so that
|
||||
the library files will get installed under `vendor_ruby'.
|
||||
|
||||
You can change the directory locations using configure options such
|
||||
as `--with-sitedir=DIR' and `--with-vendordir=DIR'.
|
||||
|
||||
=== Library updates (outstanding ones only)
|
||||
|
||||
* new library
|
||||
|
|
|
@ -662,6 +662,11 @@ Try generating the Makefile by:
|
|||
|
||||
ruby extconf.rb
|
||||
|
||||
If the library should be installed under vendor_ruby directory
|
||||
instead of site_ruby directory, use --vendor option as follows.
|
||||
|
||||
ruby extconf.rb --vendor
|
||||
|
||||
You don't need this step if you put the extension library under the ext
|
||||
directory of the ruby source tree. In that case, compilation of the
|
||||
interpreter will do this step for you.
|
||||
|
|
|
@ -765,6 +765,12 @@ Makefile
|
|||
|
||||
としてください.
|
||||
|
||||
site_ruby ディレクトリでなく、
|
||||
vendor_ruby ディレクトリにインストールする場合には
|
||||
以下のように --vendor オプションを加えてください.
|
||||
|
||||
ruby extconf.rb --vendor
|
||||
|
||||
ディレクトリをext以下に用意した場合にはRuby全体のmakeの時に
|
||||
自動的にMakefileが生成されますので,このステップは不要です.
|
||||
|
||||
|
|
|
@ -294,9 +294,12 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/bcc32/Makefile.sub
|
|||
\#define RUBY_LIB "/lib/ruby/$(MAJOR).$(MINOR)"
|
||||
\#define RUBY_SITE_LIB "/lib/ruby/site_ruby"
|
||||
\#define RUBY_SITE_LIB2 "/lib/ruby/site_ruby/$(MAJOR).$(MINOR)"
|
||||
\#define RUBY_VENDOR_LIB "/lib/ruby/vendor_ruby"
|
||||
\#define RUBY_VENDOR_LIB2 "/lib/ruby/vendor_ruby/$(MAJOR).$(MINOR)"
|
||||
\#define RUBY_PLATFORM "$(ARCH)-$(OS)"
|
||||
\#define RUBY_ARCHLIB "/lib/ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(OS)"
|
||||
\#define RUBY_SITE_ARCHLIB "/lib/ruby/site_ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(OS)"
|
||||
\#define RUBY_VENDOR_ARCHLIB "/lib/ruby/vendor_ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(OS)"
|
||||
|
|
||||
@exit > $@
|
||||
|
||||
|
@ -409,6 +412,7 @@ s,@EXPORT_PREFIX@,_,;t t
|
|||
s,@arch@,$(ARCH)-$(OS),;t t
|
||||
s,@sitearch@,$(ARCH)-$(OS),;t t
|
||||
s,@sitedir@,$${prefix}/lib/ruby/site_ruby,;t t
|
||||
s,@vendordir@,$${prefix}/lib/ruby/vendor_ruby,;t t
|
||||
s,@configure_args@,--enable-shared $(configure_args),;t t
|
||||
s,@configure_input@,$$configure_input,;t t
|
||||
s,@srcdir@,$(srcdir),;t t
|
||||
|
|
22
configure.in
22
configure.in
|
@ -1710,9 +1710,28 @@ 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 [PREFIX/lib/ruby/vendor_ruby]],
|
||||
[vendordir=$withval],
|
||||
[vendordir='${prefix}/lib/ruby/vendor_ruby'])
|
||||
VENDOR_DIR=`eval echo \\"${vendordir}\\"`
|
||||
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_LIB_PATH="$VENDOR_DIR";;
|
||||
esac
|
||||
RUBY_VENDOR_LIB_PATH2="${RUBY_VENDOR_LIB_PATH}/${MAJOR}.${MINOR}"
|
||||
|
||||
AC_DEFINE_UNQUOTED(RUBY_LIB, "${RUBY_LIB_PATH}")
|
||||
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
|
||||
|
@ -1725,6 +1744,8 @@ if test "$fat_binary" != no ; then
|
|||
|
||||
AC_DEFINE_UNQUOTED(RUBY_SITE_THIN_ARCHLIB,
|
||||
"${RUBY_SITE_LIB_PATH}/" __ARCHITECTURE__ "-${target_os}")
|
||||
AC_DEFINE_UNQUOTED(RUBY_VENDOR_THIN_ARCHLIB,
|
||||
"${RUBY_VENDOR_LIB_PATH}/" __ARCHITECTURE__ "-${target_os}")
|
||||
AC_DEFINE_UNQUOTED(RUBY_PLATFORM, __ARCHITECTURE__ "-${target_os}")
|
||||
else
|
||||
arch="${target_cpu}-${target_os}"
|
||||
|
@ -1738,6 +1759,7 @@ 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_ARG_WITH(search-path,
|
||||
[ --with-search-path=DIR specify the additional search path],
|
||||
|
|
|
@ -10,7 +10,7 @@ require 'rbconfig'
|
|||
dir_config 'zlib'
|
||||
|
||||
|
||||
if %w'z libz zlib zdll'.find {|z| have_library(z, 'deflateReset')} and
|
||||
if %w'z libz zlib1 zlib zdll'.find {|z| have_library(z, 'deflateReset')} and
|
||||
have_header('zlib.h') then
|
||||
|
||||
defines = []
|
||||
|
@ -22,7 +22,7 @@ if %w'z libz zlib zdll'.find {|z| have_library(z, 'deflateReset')} and
|
|||
os_code = 'AMIGA'
|
||||
when /\Aos2[\-_]emx\z/ then
|
||||
os_code = 'OS2'
|
||||
when 'mswin32', 'mingw32', 'bccwin32' then
|
||||
when /mswin|mingw|bccwin/ then
|
||||
# NOTE: cygwin should be regarded as Unix.
|
||||
os_code = 'WIN32'
|
||||
else
|
||||
|
|
|
@ -213,6 +213,8 @@ rubylibdir = CONFIG["rubylibdir"]
|
|||
archlibdir = CONFIG["archdir"]
|
||||
sitelibdir = CONFIG["sitelibdir"]
|
||||
sitearchlibdir = CONFIG["sitearchdir"]
|
||||
vendorlibdir = CONFIG["vendorlibdir"]
|
||||
vendorarchlibdir = CONFIG["vendorarchdir"]
|
||||
mandir = File.join(CONFIG["mandir"], "man")
|
||||
configure_args = Shellwords.shellwords(CONFIG["configure_args"])
|
||||
enable_shared = CONFIG["ENABLE_SHARED"] == 'yes'
|
||||
|
@ -253,7 +255,7 @@ if $extout
|
|||
extout = "#$extout"
|
||||
install?(:ext, :arch, :'ext-arch') do
|
||||
puts "installing extension objects"
|
||||
makedirs [archlibdir, sitearchlibdir]
|
||||
makedirs [archlibdir, sitearchlibdir, vendorarchlibdir]
|
||||
if noinst = CONFIG["no_install_files"] and noinst.empty?
|
||||
noinst = nil
|
||||
end
|
||||
|
@ -261,7 +263,7 @@ if $extout
|
|||
end
|
||||
install?(:ext, :comm, :'ext-comm') do
|
||||
puts "installing extension scripts"
|
||||
makedirs [rubylibdir, sitelibdir]
|
||||
makedirs [rubylibdir, sitelibdir, vendorlibdir]
|
||||
install_recursive("#{extout}/common", rubylibdir, :mode => $data_mode)
|
||||
end
|
||||
end
|
||||
|
|
13
lib/mkmf.rb
13
lib/mkmf.rb
|
@ -51,6 +51,9 @@ $archdir = CONFIG["archdir"]
|
|||
$sitedir = CONFIG["sitedir"]
|
||||
$sitelibdir = CONFIG["sitelibdir"]
|
||||
$sitearchdir = CONFIG["sitearchdir"]
|
||||
$vendordir = CONFIG["vendordir"]
|
||||
$vendorlibdir = CONFIG["vendorlibdir"]
|
||||
$vendorarchdir = CONFIG["vendorarchdir"]
|
||||
|
||||
$mswin = /mswin/ =~ RUBY_PLATFORM
|
||||
$bccwin = /bccwin/ =~ RUBY_PLATFORM
|
||||
|
@ -76,11 +79,14 @@ end
|
|||
INSTALL_DIRS = [
|
||||
[dir_re('commondir'), "$(RUBYCOMMONDIR)"],
|
||||
[dir_re('sitedir'), "$(RUBYCOMMONDIR)"],
|
||||
[dir_re('vendordir'), "$(RUBYCOMMONDIR)"],
|
||||
[dir_re('rubylibdir'), "$(RUBYLIBDIR)"],
|
||||
[dir_re('archdir'), "$(RUBYARCHDIR)"],
|
||||
[dir_re('sitelibdir'), "$(RUBYLIBDIR)"],
|
||||
[dir_re('vendorlibdir'), "$(RUBYLIBDIR)"],
|
||||
[dir_re('sitearchdir'), "$(RUBYARCHDIR)"],
|
||||
[dir_re('bindir'), "$(BINDIR)"],
|
||||
[dir_re('vendorarchdir'), "$(RUBYARCHDIR)"],
|
||||
]
|
||||
|
||||
def install_dirs(target_prefix = nil)
|
||||
|
@ -100,6 +106,13 @@ def install_dirs(target_prefix = nil)
|
|||
['RUBYLIBDIR', '$(rubylibdir)$(target_prefix)'],
|
||||
['RUBYARCHDIR', '$(archdir)$(target_prefix)'],
|
||||
]
|
||||
elsif $configure_args.has_key?('--vendor')
|
||||
dirs = [
|
||||
['BINDIR', '$(bindir)'],
|
||||
['RUBYCOMMONDIR', '$(vendordir)$(target_prefix)'],
|
||||
['RUBYLIBDIR', '$(vendorlibdir)$(target_prefix)'],
|
||||
['RUBYARCHDIR', '$(vendorarchdir)$(target_prefix)'],
|
||||
]
|
||||
else
|
||||
dirs = [
|
||||
['BINDIR', '$(bindir)'],
|
||||
|
|
|
@ -144,6 +144,8 @@ print <<EOS
|
|||
CONFIG["archdir"] = "$(rubylibdir)/$(arch)"
|
||||
CONFIG["sitelibdir"] = "$(sitedir)/$(ruby_version)"
|
||||
CONFIG["sitearchdir"] = "$(sitelibdir)/$(sitearch)"
|
||||
CONFIG["vendorlibdir"] = "$(vendordir)/$(ruby_version)"
|
||||
CONFIG["vendorarchdir"] = "$(vendorlibdir)/$(sitearch)"
|
||||
CONFIG["topdir"] = File.dirname(__FILE__)
|
||||
MAKEFILE_CONFIG = {}
|
||||
CONFIG.each{|k,v| MAKEFILE_CONFIG[k] = v.dup}
|
||||
|
|
7
ruby.c
7
ruby.c
|
@ -322,6 +322,13 @@ ruby_init_loadpath()
|
|||
incpush(RUBY_RELATIVE(RUBY_SITE_ARCHLIB));
|
||||
incpush(RUBY_RELATIVE(RUBY_SITE_LIB));
|
||||
|
||||
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_LIB));
|
||||
|
||||
incpush(RUBY_RELATIVE(RUBY_LIB));
|
||||
#ifdef RUBY_THIN_ARCHLIB
|
||||
incpush(RUBY_RELATIVE(RUBY_THIN_ARCHLIB));
|
||||
|
|
|
@ -396,9 +396,12 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/win32/Makefile.sub $(win_srcdir)/Makefile.sub
|
|||
#define RUBY_LIB "/lib/ruby/$(MAJOR).$(MINOR)"
|
||||
#define RUBY_SITE_LIB "/lib/ruby/site_ruby"
|
||||
#define RUBY_SITE_LIB2 "/lib/ruby/site_ruby/$(MAJOR).$(MINOR)"
|
||||
#define RUBY_VENDOR_LIB "/lib/ruby/vendor_ruby"
|
||||
#define RUBY_VENDOR_LIB2 "/lib/ruby/vendor_ruby/$(MAJOR).$(MINOR)"
|
||||
#define RUBY_PLATFORM "$(arch)"
|
||||
#define RUBY_ARCHLIB "/lib/ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(OS)"
|
||||
#define RUBY_SITE_ARCHLIB "/lib/ruby/site_ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(RT)"
|
||||
#define RUBY_VENDOR_ARCHLIB "/lib/ruby/vendor_ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(RT)"
|
||||
#define LIBRUBY_SO "$(LIBRUBY_SO)"
|
||||
#if 0
|
||||
$(BANG)if "$(RUBY_SO_NAME)"!="$$(RUBY_SO_NAME)" || "$(ARCH)-$(OS)"!="$$(ARCH)-$$(OS)"
|
||||
|
@ -546,6 +549,7 @@ s,@EXPORT_PREFIX@, ,;t t
|
|||
s,@arch@,$(ARCH)-$(OS),;t t
|
||||
s,@sitearch@,$(ARCH)-$(RT),;t t
|
||||
s,@sitedir@,$${prefix}/lib/ruby/site_ruby,;t t
|
||||
s,@vendordir@,$${prefix}/lib/ruby/vendor_ruby,;t t
|
||||
s,@configure_args@,--with-make-prog=nmake --enable-shared $(configure_args),;t t
|
||||
s,@configure_input@,$$configure_input,;t t
|
||||
s,@srcdir@,$(srcdir),;t t
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue