From: Usaku NAKAMURA Date: 2011-04-25T10:25:18+09:00 Subject: [ruby-dev:43436] [Ruby 1.9 - Feature #4602] naming ruby dll (win32/64) Issue #4602 has been updated by Usaku NAKAMURA. そんな地雷踏みに行かんでも、と思ったりはしますが... えーと、他プラットフォームだと、たしかRUBY_SO_NAMEはprefixやsuffixによっては変えられなくて、transformは効く、とかでしたよね。 なんでそれで問題が起きないのかというと、異なるarchであれば(共有)ライブラリは異なるディレクトリにインストールされるのが当然だからだと思います。 でと、Windowsだとどうするのがいいのかなあ。 RUBY_SO_NAMEを変えられるようにする影響はいまいち読めないのですが、今回の話だけであれば、単に若くてまだ流行ってない方(=win64)のDLLに64とか付けるだけでいいかもしれません。 ---------------------------------------- Feature #4602: naming ruby dll (win32/64) http://redmine.ruby-lang.org/issues/4602 Author: Akio Tajima Status: Open Priority: Normal Assignee: Category: build Target version: 同一ディレクトリへwin32版rubyとwin64版rubyをインストールしようとしてdll名が競合したので気付いたのですが、 MSWin版Rubyは、本体がDLLで、かつ、DLL名にconfigureで指定したprogram-suffixやprogram-prefixが反映されない ため、同一ディレクトリへのインストールができません。 Windows版ではファイルは分離しているものの、exeとdllは不可分なので(dllへの分離は組み込み用の利便性と理解 しています)exe同様にdllに対してもconfigreで指定したprogram-suffixやprogram-prefixを反映させたほうが良い と思います。 --- win32/Makefile.sub~ 2011-04-12 00:47:07.000000000 +0900 +++ win32/Makefile.sub 2011-04-24 03:12:39.000000000 +0900 @@ -129,7 +129,7 @@ ruby_version = $(MAJOR).$(MINOR).$(TEENY !endif !ifndef RUBY_SO_NAME -RUBY_SO_NAME = $(RT)-$(RUBY_BASE_NAME)$(MAJOR)$(MINOR)$(TEENY) +RUBY_SO_NAME = $(RT)-$(PROGRAM_PREFIX)$(RUBY_BASE_NAME)$(PROGRAM_SUFFIX)$(MAJOR)$(MINOR)$(TEENY) !endif !ifndef RUBY_PLATFORM RUBY_PLATFORM = $(arch) -- http://redmine.ruby-lang.org