At Sun, 30 Dec 2001 14:54:32 +0900,
nobu.nakada / nifty.ne.jp wrote:
> ヘッダ以外にも、データをインストールしたりするものもあるかも知
> れません。

はい,任意のファイルをインストールできるようになる方が
僕も嬉しいです.

> 今のインターフェースに合わせるとしたら、こんなのとか?
> $INSTALLFILES = {
>   :archdir => 'hoge.h',
>   :libdir => %w[hoge.data hoge.icon]
> }
> create_makefile("hoge")

この方法を実現するようなパッチを作ってみました.
個人的には任意のファイルをarchdirとlibdirにインストール
できるようになれば十分なので他に良い手段があればそちらで
も構いません.
-- 
Takaaki Tateishi <ttate / kt.jaist.ac.jp>

Index: mkmf.rb
===================================================================
RCS file: /src/ruby/lib/mkmf.rb,v
retrieving revision 1.68
diff -u -r1.68 mkmf.rb
--- mkmf.rb	2002/01/02 14:41:57	1.68
+++ mkmf.rb	2002/01/03 05:04:33
@@ -140,6 +140,35 @@
   end
 end
 
+def install_files(mfile, ifiles, srcdir = nil)
+  if( ! ifiles )
+    return
+  end
+  ifiles.each{|dir, files|
+    case dir
+    when :libdir
+      d = "$(rubylibdir)$(target_prefix)"
+    when :archdir
+      d = "$(archdir)$(target_prefix)"
+    when :sitelibdir
+      d = "$(sitelibdir)$(target_prefix)"
+    when :sitearchdir
+      d = "$(sitearchdir)$(target_prefix)"
+    else
+      d = nil
+    end
+    if( d )
+      files.each{|f|
+	if( srcdir )
+	  f = File.join(srcdir, f)
+	end
+	mfile.printf("\t@$(RUBY) -r ftools -e 'File::makedirs(*ARGV)' %s\n", d)
+	mfile.printf("\t@$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0644, true)' %s %s\n", f, d)
+      }
+    end
+  }
+end
+
 def install_rb(mfile, dest, srcdir = nil)
   libdir = "lib"
   libdir = srcdir + "/" + libdir if srcdir
@@ -512,6 +541,7 @@
 	@$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0555, true)' $(DLLIB) $(archdir)$(target_prefix)/$(DLLIB)
 EOMF
   install_rb(mfile, "$(rubylibdir)$(target_prefix)", srcdir)
+  install_files(mfile, $INSTALLFILES, srcdir)
   mfile.printf "\n"
 
   mfile.printf <<EOMF
@@ -520,6 +550,7 @@
 	@$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0555, true)' $(DLLIB) $(sitearchdir)$(target_prefix)/$(DLLIB)
 EOMF
   install_rb(mfile, "$(sitelibdir)$(target_prefix)", srcdir)
+  install_files(mfile, $INSTALLFILES, srcdir)
   mfile.printf "\n"
 
   unless /mswin32/ =~ RUBY_PLATFORM