summaryrefslogtreecommitdiff
path: root/instruby.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-03-09 05:33:59 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-03-09 05:33:59 +0000
commitf2be33ac7629e664756016171df4c882c290504c (patch)
tree10fbc72441b9e343acfb421f38e17776e15dabcd /instruby.rb
parentd84595deb0a38a88d2b501969f135fba8da34b80 (diff)
* instruby.rb: prints names of the directories where files are
installed to. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22848 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'instruby.rb')
-rwxr-xr-xinstruby.rb103
1 files changed, 58 insertions, 45 deletions
diff --git a/instruby.rb b/instruby.rb
index 0d661d8941..6687595856 100755
--- a/instruby.rb
+++ b/instruby.rb
@@ -259,6 +259,23 @@ def with_destdir(dir)
$destdir + dir
end
+def prepare(mesg, basedir, subdirs=nil)
+ case
+ when !subdirs
+ dirs = basedir
+ when subdirs.size == 0
+ subdirs = nil
+ when subdirs.size == 1
+ dirs = [basedir = File.join(basedir, subdirs)]
+ subdirs = nil
+ else
+ dirs = [basedir, *subdirs.collect {|dir| File.join(basedir, dir)}]
+ end
+ printf("installing %-18s %s%s\n", "#{mesg}:", basedir,
+ (subdirs ? " (#{subdirs.join(', ')})" : ""))
+ makedirs(dirs)
+end
+
exeext = CONFIG["EXEEXT"]
ruby_install_name = CONFIG["ruby_install_name"]
@@ -276,7 +293,7 @@ sitelibdir = CONFIG["sitelibdir"]
sitearchlibdir = CONFIG["sitearchdir"]
vendorlibdir = CONFIG["vendorlibdir"]
vendorarchlibdir = CONFIG["vendorarchdir"]
-mandir = File.join(CONFIG["mandir"], "man")
+mandir = CONFIG["mandir"]
capidir = CONFIG["docdir"]
configure_args = Shellwords.shellwords(CONFIG["configure_args"])
enable_shared = CONFIG["ENABLE_SHARED"] == 'yes'
@@ -285,9 +302,7 @@ lib = CONFIG["LIBRUBY"]
arc = CONFIG["LIBRUBY_A"]
install?(:local, :arch, :bin, :'bin-arch') do
- puts "installing binary commands"
-
- makedirs [bindir, libdir, archlibdir]
+ prepare "binary commands", bindir
install ruby_install_name+exeext, bindir, :mode => $prog_mode, :strip => $strip
if rubyw_install_name and !rubyw_install_name.empty?
@@ -299,68 +314,74 @@ install?(:local, :arch, :bin, :'bin-arch') do
if enable_shared and dll != lib
install dll, bindir, :mode => $prog_mode, :strip => $strip
end
+end
+
+install?(:local, :arch, :lib) do
+ prepare "base libraries", libdir
+
install lib, libdir, :mode => $prog_mode, :strip => $strip unless lib == arc
install arc, libdir, :mode => $data_mode
+ if dll == lib and dll != arc
+ for link in CONFIG["LIBRUBY_ALIASES"].split
+ ln_sf(dll, File.join(libdir, link))
+ end
+ end
+
+ prepare "arch files", archlibdir
install "rbconfig.rb", archlibdir, :mode => $data_mode
if CONFIG["ARCHFILE"]
for file in CONFIG["ARCHFILE"].split
install file, archlibdir, :mode => $data_mode
end
end
-
- if dll == lib and dll != arc
- for link in CONFIG["LIBRUBY_ALIASES"].split
- ln_sf(dll, File.join(libdir, link))
- end
- end
end
if $extout
extout = "#$extout"
install?(:ext, :arch, :'ext-arch') do
- puts "installing extension objects"
- makedirs [archlibdir, sitearchlibdir, vendorarchlibdir, archhdrdir]
+ prepare "extension objects", archlibdir
noinst = %w[-*] | (CONFIG["no_install_files"] || "").split
install_recursive("#{extout}/#{CONFIG['arch']}", archlibdir, :no_install => noinst, :mode => $prog_mode, :strip => $strip)
+ prepare "extension objects", sitearchlibdir
+ prepare "extension objects", vendorarchlibdir
+ end
+ install?(:ext, :arch, :'ext-arch') do
+ prepare "extension headers", archhdrdir
install_recursive("#{extout}/include/#{CONFIG['arch']}", archhdrdir, :glob => "*.h", :mode => $data_mode)
end
install?(:ext, :comm, :'ext-comm') do
- puts "installing extension scripts"
- hdrdir = rubyhdrdir + "/ruby"
- makedirs [rubylibdir, sitelibdir, vendorlibdir, hdrdir]
+ prepare "extension scripts", rubylibdir
install_recursive("#{extout}/common", rubylibdir, :mode => $data_mode)
+ prepare "extension scripts", sitelibdir
+ prepare "extension scripts", vendorlibdir
+ end
+ install?(:ext, :comm, :'ext-comm') do
+ hdrdir = rubyhdrdir + "/ruby"
+ prepare "extension headers", hdrdir
install_recursive("#{extout}/include/ruby", hdrdir, :glob => "*.h", :mode => $data_mode)
end
end
install?(:doc, :rdoc) do
if $rdocdir
- puts "installing rdoc"
-
ridatadir = File.join(CONFIG['datadir'], "ri", CONFIG['ruby_version'], "system")
- makedirs [ridatadir]
+ prepare "rdoc", ridatadir
install_recursive($rdocdir, ridatadir, :mode => $data_mode)
end
end
install?(:doc, :capi) do
- puts "installing capi-docs"
-
- makedirs [capidir]
- Dir.chdir("doc")
- install_recursive "capi", capidir, :mode => $data_mode
+ prepare "capi-docs", capidir
+ install_recursive "doc/capi", capidir, :mode => $data_mode
end
install?(:local, :comm, :bin, :'bin-comm') do
- puts "installing command scripts"
-
- Dir.chdir srcdir
- makedirs [bindir, rubylibdir]
+ prepare "command scripts", bindir
ruby_shebang = File.join(bindir, ruby_install_name)
if File::ALT_SEPARATOR
ruby_bin = ruby_shebang.tr(File::SEPARATOR, File::ALT_SEPARATOR)
end
- for src in Dir["bin/*"]
+ for src in Dir[File.join(srcdir, "bin/*")]
next unless File.file?(src)
next if /\/[.#]|(\.(old|bak|orig|rej|diff|patch|core)|~|\/core)$/i =~ src
@@ -406,45 +427,39 @@ EOF
end
install?(:local, :comm, :lib) do
- puts "installing library scripts"
-
- makedirs [rubylibdir]
+ prepare "library scripts", rubylibdir
noinst = %w[README* *.txt *.rdoc]
install_recursive(File.join(srcdir, "lib"), rubylibdir, :no_install => noinst, :mode => $data_mode)
end
install?(:local, :arch, :lib) do
- puts "installing headers"
+ prepare "common headers", rubyhdrdir
- Dir.chdir(srcdir)
- makedirs [rubyhdrdir]
noinst = []
unless RUBY_PLATFORM =~ /mswin|mingw|bccwin/
noinst << "win32.h"
end
noinst = nil if noinst.empty?
- install_recursive("include", rubyhdrdir, :no_install => noinst, :glob => "*.h", :mode => $data_mode)
+ install_recursive(File.join(srcdir, "include"), rubyhdrdir, :no_install => noinst, :glob => "*.h", :mode => $data_mode)
end
install?(:local, :comm, :man) do
- puts "installing manpages"
+ mdocs = Dir["#{srcdir}/man/*.[1-9]"]
+ prepare "manpages", mandir, ([] | mdocs.collect {|mdoc| mdoc[/\d+$/]}).sort.collect {|sec| "man#{sec}"}
+ mandir = File.join(mandir, "man")
has_goruby = File.exist?(goruby_install_name+exeext)
require File.join(srcdir, "tool/mdoc2man.rb") if $mantype != "doc"
- Dir.chdir("#{srcdir}/man")
- for mdoc in Dir["*.[1-9]"]
+ mdocs.each do |mdoc|
next unless File.file?(mdoc) and open(mdoc){|fh| fh.read(1) == '.'}
if mdoc == "goruby.1"
next unless has_goruby
end
- destdir = mandir + mdoc[/(\d+)$/]
- section = $1
+ destdir = mandir + (section = mdoc[/\d+$/])
destname = ruby_install_name.sub(/ruby/, File.basename(mdoc, ".#{section}"))
destfile = File.join(destdir, "#{destname}.#{section}")
- makedirs destdir
-
if $mantype == "doc"
install mdoc, destfile, :mode => $data_mode
else
@@ -460,8 +475,6 @@ install?(:local, :comm, :man) do
end
install?(:ext, :comm, :gem) do
- puts "creating default gem directories"
-
directories = []
IO.foreach(File.join(srcdir, "lib/rubygems.rb")) do |line|
if /^\s*DIRECTORIES\s*=\s*%w\[(.*?)\]/ =~ line
@@ -470,7 +483,7 @@ install?(:ext, :comm, :gem) do
end
end
gpath = CONFIG["sitelibdir"].sub(%r'/site_ruby/(?=[^/]+)', '/gems/')
- makedirs directories.collect {|dir| File.join(gpath, dir)}
+ prepare "default gems", gpath, directories
end
$install << :local << :ext if $install.empty?