From: Katsuyuki Komatsu Date: 1999-08-02T23:27:17+09:00 Subject: [ruby-dev:7530] Re: [PATCH] for mswin32 final 小松です。 In [ruby-dev:7529] [PATCH] for mswin32 final (Re: [PATCH] find_library()) on 1999/8/2 21:03:31 Katsuyuki Komatsu wrote: |一応これで、ruby-1.3.6に対するmswin32の最終のパッチ(のつもり)です。 lib/mkmf.rbに入れたhave_library()とhave_func()の変更を ext/extmk.rb.inに反映し忘れてました。 あと、win32/Makefileのext/extmk.rbに対するstaticオプションを 消したのをもとに戻しました。 # やっぱり、最後にならなかった。 [ruby-dev:7529]のパッチに対するパッチです。 ところで、もう、ext/extmk.rbに対するstaticオプションをやめて ext/Setup.ntのoption nodynamicをコメントアウトしても いいと思いますがmswin32な方どうでしょうか? diff -u1p ext/extmk.rb.in-ruby-dev-7529 ext/extmk.rb.in --- ext/extmk.rb.in-ruby-dev-7529 Mon Aug 2 20:15:22 1999 +++ ext/extmk.rb.in Mon Aug 2 22:38:22 1999 @@ -182,3 +182,6 @@ def have_library(lib, func="main") libs = append_library($libs, lib) - unless try_link(<<"SRC", libs) + if /mswin32/ =~ RUBY_PLATFORM + r = try_link(<<"SRC", libs) +#include +#include int main() { return 0; } @@ -186,2 +189,17 @@ int t() { #{func}(); return 0; } SRC + unless r + r = try_link(<<"SRC", libs) +#include +#include +int main() { return 0; } +int t() { void ((*p)()); p = (void ((*)()))#{func}; return 0; } +SRC + end + else + r = try_link(<<"SRC", libs) +int main() { return 0; } +int t() { #{func}(); return 0; } +SRC + end + unless r $lib_cache[lib] = 'no' @@ -229,4 +247,6 @@ def have_func(func) - unless try_link(<<"SRC", libs) -char #{func}(); + if /mswin32/ =~ RUBY_PLATFORM + r = try_link(<<"SRC", libs) +#include +#include int main() { return 0; } @@ -234,2 +254,17 @@ int t() { #{func}(); return 0; } SRC + unless r + r = try_link(<<"SRC", libs) +#include +#include +int main() { return 0; } +int t() { void ((*p)()); p = (void ((*)()))#{func}; return 0; } +SRC + end + else + r = try_link(<<"SRC", libs) +int main() { return 0; } +int t() { #{func}(); return 0; } +SRC + end + unless r $func_cache[func] = 'no' diff -u1p win32/Makefile-ruby-dev-7529 win32/Makefile --- win32/Makefile-ruby-dev-7529 Mon Aug 2 20:14:43 1999 +++ win32/Makefile Mon Aug 2 23:03:48 1999 @@ -84,3 +84,3 @@ all: miniruby$(EXEEXT) rbconfig.rb ext/ set LIB=..\..\win32;$(ORGLIBPATH) - @.\miniruby$(EXEEXT) -Xext extmk.rb + @.\miniruby$(EXEEXT) -Xext extmk.rb static -- 小松克行 / Katsuyuki Komatsu