From: IKARASHI Akira Date: 1999-09-16T03:02:43+09:00 Subject: [ruby-list:16812] Re: d-chasen [dRuby/DRb] 五十嵐です。 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 <