五十嵐です。

dhasen.rb, dhasenc.rbとdrb.rbを添付した chasen1.5.tar.gz を
in.coming に置きます。よろしくお願いします。

# 調査は、時間のあるときで結構です > ごとけんさん

m_seki / mva.biglobe.ne.jpさんwrote:
>site_ruby にディレクトリを掘って、*.rb をインストールするような
>スクリプトを書くには何を参考にしたらよいでしょう。

mkmf.rb中の、install_rb でしているような処理 + αで
いいと思います。....ということで、ほとんど mkmf.rb を
抜粋して extconf.rb を書いてみました。
使い方は、lib/ 以下にインストールしたいファイル(*.rb)を
置いて実行すると Makefile が作られるので、そこで
make install 
すれば、インストールされます。

本当は、extconf.rb に対するパッチにしたほうがいいのでしょうが、
時間がないので、とりあえず。

-- ここから
require 'rbconfig'
require 'find'

include Config

$srcdir = CONFIG["srcdir"]
$libdir = CONFIG["libdir"]+"/ruby/"+CONFIG["MAJOR"]+"."+CONFIG["MINOR"]
$archdir = $libdir+"/"+CONFIG["arch"]

def install_rb(mfile, srcdir = nil)
  libdir = "lib"
  libdir = srcdir + "/" + libdir if srcdir
  path = []
  dir = []
  Find.find(libdir) do |f|
    next unless /\.rb$/ =~ f
    f = f[libdir.length+1..-1]
    path.push f
    dir |= File.dirname(f)
  end
  for f in dir
    next if f == "."
    mfile.printf "\t@$(RUBY) -r ftools -e 'File::makedirs(*ARGV)' $(libdir)/%s\n", f
  end
  for f in path
    mfile.printf "\t@$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0644, true)' lib/%s $(libdir)/%s\n", f, f
  end
end

def create_makefile
  mfile = open("Makefile", "w")
  mfile.print  <<EOMF
SHELL = /bin/sh

#### Start of system configuration section. ####

srcdir = #{$srcdir}
libdir = #{$libdir+"/site_ruby"}
archdir = #{$archdir}

#### End of system configuration section. ####

RUBY = #{CONFIG["ruby_install_name"]}

all: 
	# do nothing

install:
EOMF
  install_rb(mfile)
  mfile.printf "\n"
  mfile.close
end

create_makefile

-- ここまで


-- 
IKARASHI Akira(ikarashi / d3.dion.ne.jp)