西澤様:
京大の山本です。
ruby-lapack-1.5で
Mac OSX では rake でのインストールにいくつか問題がありましたのでご報告します。
#gem からのインストールは未確認です。
Mac OSX (ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-darwin10]) では
rake 時に
1. lapack.so が lapack.bundle という名前で作られるので lapack.so がないといってこける
rake install 時に
2. dst = File.join(destdir, archdir, target_prefix) で destdir が nil だと joinできないと言われてこける
3. install lib, dst, :mode => 644 だと実行されるのが install -c -m 01204 になってる
これらは以下のように Rakefile を書き換えると回避できました。
diff -u Rakefile.orig Rakefile
--- Rakefile.orig 2011-05-02 11:14:40.000000000 +0900
+++ Rakefile 2011-05-03 23:23:11.000000000 +0900
@@ -14,9 +14,15 @@
NAME = "lapack"
LIBS = FileList["lib/#{target_prefix}/*rb"]
+
+case Config::CONFIG["host_os"]
+when /darwin/
+DLLIB = "ext/#{NAME}.bundle"
+so_file = File.join("lib", target_prefix, "#{NAME}.bundle")
+else
DLLIB = "ext/#{NAME}.so"
so_file = File.join("lib", target_prefix, "#{NAME}.so")
-
+end
task :default => so_file
@@ -47,17 +53,26 @@
task :install => [:install_so, :install_rb]
task :install_so => DLLIB do
+if destdir then
dst = File.join(destdir, archdir, target_prefix)
+else
+ dst = File.join(archdir, target_prefix)
+end
+p dst
mkdir_p dst
install DLLIB, dst, :mode => 0755
end
task :install_rb => LIBS do
- dst = File.join(destdir, libdir, target_prefix)
+if destdir then
+ dst = File.join(destdir, archdir, target_prefix)
+else
+ dst = File.join(archdir, target_prefix)
+end
mkdir_p dst
- LIBS.each do |lib|
- install lib, dst, :mode => 644
- end
+ LIBS.each do |lib|
+ install lib, dst, :mode => 0644
+ end
end
CLEAN.include("ext/*.o")
Attachment:
patch-Rakefile.diff
Description: Binary data
On 2011/05/02, at 11:53, Seiya Nishizawa wrote: > 佐々木様 > > 2011/5/2 Youhei SASAKI <uwabami@xxxxxxxxxxxxxx>: >> もし問題無ければ, 現状の git 版を ruby-1.5.0 としてリリースして頂けませんか? >> # 1.5.0 を使って debian へ upload しようと思います.... > > 1.5 をリリースしました。 > よろしくお願いいたします。 > > > 西澤誠也 > > -- > Seiya Nishizawa > Center for Planetary Science, Kobe University > TEL : 078-803-6472 > FAX : 078-803-5731 > 山本 博基 hiroki@xxxxxxxxxxxxxxxxxx 京都大学大学院理学研究科 地球惑星科学専攻 気象学研究室 博士 3年