小松です。
In the message of [ruby-dev:10569] Re: environment variables
on 2000/8/4 19:28:30 "Nobuyoshi.Nakada" <nobu.nakada / nifty.ne.jp> wrote:
> > それと、win32/Makefile.subですが、ruby.exeとrubyw.exeを作るときに
> > $(LIBS)がなくてRubyCRT.dll化に差し支えるのでした。
>
> これってどういう話でしたっけ。
普段は、
[ruby-dev:9231] RubyCRT.dll (Re: xmalloc() in Windows)
の手順作ったRubyCRT.dll (かRubyCRTD.dll) を使ってmswin32版を
作っています。
で、このときmsvcrt.dll (かmsvcrtd.dll) がruby.exeやrubyw.exeに
使われないようにしたかったという理由です。
RubyCRTD.dllを使うときはwin32/Makefile.subとwin32/config.status.in
を以下のような感じで変えています。
# このパッチは参考です。本体にマージしてもらうつもりはありません。
wsock2.libではなくws2_32.libを使っているのは趣味です。
> > まとめをお願いしていいですか?>なかださん。
>
> では。
ひええ、djgpp/config.statusのパッチがおかしくなる。
% zcat /tmp/dllname.patch.gz | patch -p1
patching file configure.in
patching file cygwin/GNUmakefile.in
(Stripping trailing CRs from patch.)
patching file djgpp/config.status
Hunk #1 succeeded at 60 with fuzz 2.
patching file win32/Makefile.sub
patching file win32/resource.rb
patching file win32/setup.mak
%
どうやら、以下のように-pで生成される@@の行に^MがつくとCRを
無視するモードになるようですね。
--- current/djgpp/config.status Sat Jun 24 23:06:35 2000
+++ devel/djgpp/config.status Fri Aug 4 16:42:33 2000
@@ -60,4 +60,5 @@ s%@DLDLIBS@%-lc%g^M ← ここにも^Mがついている。
この@@の行の^Mを削除すると正常にパッチがあたります。
patchのバージョンは2.5.4でした。
うまくあたったもので、patchを-pつきで作り直してもう一度あてても
やっぱりだめでした。
うーむ、こんな問題があったとは。
diff -ru1p ruby-1.5.5.nakada/win32/Makefile.sub ruby-1.5.5/win32/Makefile.sub
--- ruby-1.5.5.nakada/win32/Makefile.sub Fri Aug 4 21:35:54 2000
+++ ruby-1.5.5/win32/Makefile.sub Thu Aug 3 12:28:10 2000
@@ -31,3 +31,3 @@ AUTOCONF = autoconf
prefix = /usr
-CFLAGS = -nologo -DNT=1 -Zi -O2b2x -G5
+CFLAGS = -nologo -DNT=1 -MDd -Zi
CPPFLAGS = -I$(srcdir) -I$(srcdir)/missing
@@ -36,3 +36,3 @@ XLDFLAGS =
#EXTLIBS =
-LIBS = user32.lib advapi32.lib wsock32.lib $(EXTLIBS)
+LIBS = RubyCRTD.lib user32.lib advapi32.lib ws2_32.lib $(EXTLIBS)
MISSING = crypt.obj alloca.obj win32.obj isinf.obj isnan.obj
diff -ru1p ruby-1.5.5.nakada/win32/config.status.in ruby-1.5.5/win32/config.status.in
--- ruby-1.5.5.nakada/win32/config.status.in Thu Aug 3 18:55:54 2000
+++ ruby-1.5.5/win32/config.status.in Thu Aug 3 10:03:09 2000
@@ -1,3 +1,3 @@
s%@SHELL@%%g
-s%@CFLAGS@%-nologo -DNT=1 -Zi -O2b2x -G5%g
+s%@CFLAGS@%-nologo -DNT=1 -MDd -Zi%g
s%@CPPFLAGS@%%g
@@ -7,4 +7,4 @@ s%@DEFS@%
-DUSE_THREAD -DSIZEOF_INT=4 -DSIZEOF_SHORT=2 -DSIZEOF_LONG=4 -DSIZEOF_VOIDP=4 -DSIZEOF_FLOAT=4 -DSIZEOF_DOUBLE=8 -DHAVE_PROTOTYPES=1 -DHAVE_STDARG_PROTOTYPES=1 -DHAVE_STDLIB_H=1 -DHAVE_LIMITS_H=1 -DHAVE_FCNTL_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ST_RDEV=1 -DGETGROUPS_T=int -DRETSIGTYPE=void -DHAVE_ALLOCA=1 -DHAVE_FMOD=1 -DHAVE_WAITPID=1 -DHAVE_GETCWD=1 -DHAVE_CHSIZE=1 -DHAVE_GETGROUPS=1 -DHAVE_GETLOGIN=1 -DRSHIFT=\(x,y\)\ \(\(x\)\>\>y\) -DFILE_COUNT=_cnt -DDLEXT=\".so\" -DDLEXT2=\".dll\" -DRUBY_PLATFORM=\"i586-mswin32\" %g
-s%@LDFLAGS@%-nologo -Ox%g
-s%@LIBS@%user32.lib advapi32.lib wsock32.lib%g
+s%@LDFLAGS@%-nologo -MDd -Zi%g
+s%@LIBS@%RubyCRTD.lib user32.lib advapi32.lib ws2_32.lib%g
s%@exec_prefix@%${prefix}%g
@@ -42,3 +42,3 @@ s%@OBJEXT@%obj%g
s%@XLDFLAGS@%%g
-s%@DLDFLAGS@%%g
+s%@DLDFLAGS@%-MDd -Zi%g
s%@STATIC@%%g
@@ -61,6 +61,6 @@ s%@LIBRUBYARG@%$(topdir)/$(RUBY_SO_NAME)
s%@SOLIBS@%%g
-s%@DLDLIBS@%%g
+s%@DLDLIBS@%RubyCRTD.lib%g
s%@arch@%i586-mswin32%g
s%@sitedir@%${prefix}/lib/ruby/site_ruby%g
-s%@configure_args@%--with-make-prog=nmake%g
+s%@configure_args@%--with-make-prog=nmake --with-tcllib=tcl83 --with-tklib=tk83%g
s%@configure_input@%$configure_input%g
--
小松克行 / Katsuyuki Komatsu <komatsu / sarion.co.jp>