From: Katsuyuki Komatsu Date: 2000-08-04T21:57:54+09:00 Subject: [ruby-dev:10572] Re: environment variables 小松です。 In the message of [ruby-dev:10569] Re: environment variables on 2000/8/4 19:28:30 "Nobuyoshi.Nakada" 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