From: "Nobuyoshi.Nakada" Date: 2000-09-02T00:21:44+09:00 Subject: [ruby-dev:10797] Re: bmingw package なかだです。 At Wed, 30 Aug 2000 12:54:46 +0900 WATANABE Hirofumi wrote: > DLL の名前には cygwin が入ってるわけだし, 入れましょうか. > 今のままでも libruby.a を作るのをやめて, 直接 > ruby.{cygwin,mingw32}.dll をリンクするようにすれば > -lruby.{cygwin,ruby} でいいかって気もします. > #/usr/local/lib に ruby.{cygwin,mingw32}.dll を ln -s か cp. とりあえず暫定的に ruby.$(os).dll と libruby.$(os).a という形にしてみま した。 # ついでに rubyw もインストールするように。 > それは DLL の名前にもバージョンを含めるかどうかも決めないと > いけないでしょうね. 遊びで ruby.cygwin.dll.1.6.0 というのを > 作ってみたら動いたので, 基本的にはなんでもよさそう > (ruby-cygwin.dll という名前以外は). DLL を ruby.cygwin.dll.1.6 とかにして、stub を libruby.cygwin.a にする とか。 diff -pruPX ./.excludes current/Makefile.in devel/Makefile.in --- current/Makefile.in Thu Aug 3 18:50:32 2000 +++ devel/Makefile.in Fri Sep 1 23:27:16 2000 @@ -24,6 +24,7 @@ DLDFLAGS = @LIBRUBY_DLDFLAGS@ SOLIBS = @SOLIBS@ RUBY_INSTALL_NAME=@RUBY_INSTALL_NAME@ +RUBY_SO_NAME=@RUBY_SO_NAME@ EXEEXT = @EXEEXT@ PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT) diff -pruPX ./.excludes current/configure.in devel/configure.in --- current/configure.in Mon Aug 28 18:53:24 2000 +++ devel/configure.in Sat Sep 2 00:16:59 2000 @@ -849,17 +849,18 @@ case "$target_os" in esac ;; cygwin*|mingw*) + RUBY_SO_NAME='$(RUBY_INSTALL_NAME).'$target_os if test x"$enable_shared" = xyes; then - LIBRUBY_SO='$(RUBY_INSTALL_NAME).'$target_os.dll + LIBRUBY_SO='$(RUBY_SO_NAME).'.dll LIBRUBY_DLDFLAGS='--dllname=$@ --output-lib=$(LIBRUBY) --add-stdcall-alias --def=$(RUBYDEF)' else LIBRUBY_SO=dummy - LIBRUBY_DLDFLAGS='--output-exp=$(RUBY_INSTALL_NAME).exp --dllname=$(RUBY_INSTALL_NAME)$(EXEEXT) --output-lib=$(LIBRUBY) --add-stdcall-alias --def=$(RUBYDEF)' + LIBRUBY_DLDFLAGS='--output-exp=$(RUBY_SO_NAME).exp --dllname=$(RUBY_SO_NAME)$(EXEEXT) --output-lib=$(LIBRUBY) --add-stdcall-alias --def=$(RUBYDEF)' fi LIBRUBY_ALIASES='' LIBRUBY_A='lib$(RUBY_INSTALL_NAME)s.a' - LIBRUBY='lib$(RUBY_INSTALL_NAME).a' - LIBRUBYARG='-L. -l$(RUBY_INSTALL_NAME)' + LIBRUBY='lib$(RUBY_SO_NAME).a' + LIBRUBYARG='-L. -l$(RUBY_SO_NAME)' FIRSTMAKEFILE=GNUmakefile:cygwin/GNUmakefile.in SOLIBS='$(LIBS)' case "$target_os" in diff -pruPX ./.excludes current/instruby.rb devel/instruby.rb --- current/instruby.rb Fri Sep 1 18:18:11 2000 +++ devel/instruby.rb Fri Sep 1 23:48:47 2000 @@ -32,6 +32,10 @@ wdir = Dir.getwd File.makedirs bindir, true File.install ruby_install_name+exeext, "#{bindir}/#{ruby_install_name}#{exeext}", 0755, true +rubyw = ruby_install_name.sub(/ruby/, '\&w')+exeext +if File.exist? rubyw + File.install rubyw, "#{bindir}/#{rubyw}", 0755, true +end for dll in Dir['*.dll'] File.install dll, "#{bindir}/#{dll}", 0755, true end @@ -86,9 +90,6 @@ end if RUBY_PLATFORM =~ /mswin32|mingw/ File.makedirs archlibdir + "/win32", true File.install "win32/win32.h", archlibdir + "/win32", 0644, true - if File.exist? wdir+'/'+CONFIG["LIBRUBY"] - File.install wdir+'/'+CONFIG["LIBRUBY"], archlibdir, 0644, true - end end File.install wdir+'/'+CONFIG['LIBRUBY_A'], archlibdir, 0644, true -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦