From: Katsuyuki Komatsu Date: 2000-05-25T10:08:24+09:00 Subject: [ruby-dev:9820] Re: Forward: Error in NT makefile (PR#7) 小松です。 In the message of [ruby-dev:9812] Forward: Error in NT makefile (PR#7) on 2000/5/24 23:46:35 matz@netlab.co.jp (Yukihiro Matsumoto) wrote: > ということでwin32/Makefileでrmが使われていることに対するレポー > トですが、これってどう対処すべきものでしょう? cygwinを入れ > ろ? Cygwinじゃなくてもよいですが、標準のdelコマンドは制約多すぎてが どうにもならないので、rmは何とかして調達してもらいましょう。 [ruby-dev:7517]でも書いたように、mswin32版では、 標準コマンドとVC 6.0 SP3付属ツールとrmとmv の存在を仮定してきました。 # 昔のVCにはrm.exeやmv.exeが付属してた記憶があるんですが # いつからなくなったんだろう。 mvはrubymw.mapをrubydll.mapにrenameするだけにしか使ってないし、 わざわざ名前を変える必然性を思いつかないので消しましょう。 rmの方ですが、ruby.exe, miniruby.exe, rubymw.dllを作る前のrmは 消してもかまわないと思います。 そうすると、rubyを作る際のnmakeはrmやmvが無くても通るように なるので、rmの存在はあまり問題にならなくなると思います。 後は、nmake cleanの類だけでrmを使うことになりますが、 標準のdelコマンドはNT系と95系で互換性が無いので、 Windows 95, 98でも動くようにするためには、たとえば、 @rm -f Makefile ext/extmk.rb config.h は、command.comのdelは引数を1つしか受け付けないので、 @del Makefile ← delは結果を返さないので@-delにする必要はない @del ext\extmk.rb ← '/'と'\'の変換が必要 @del config.h ← エラーメッセージの出力は95, 98では抑制できない とかする必要があって、めんどくさすぎます。 ということで、rmの調達方法をいくつか挙げてみます。 1. Cygwinを使う Cygwin http://sourceware.cygnus.com/cygwin/ をインストールする。 # Cygwinを入れるならVCで作るよりmingw32版を作ったほうが # いいんじゃないかと思いますが。 2. GNU utilities for Win32を使う GNU utilities for Win32 http://www.weihenstephan.de/~syring/win32/UnxUtils.html からcygwin1.dllに依存しないnative Win32版のツールセット、 http://www.edv.agrar.tu-muenchen.de/~syring/win32/UnxUtils.zip および更新分、 http://www.edv.agrar.tu-muenchen.de/~syring/win32/UnxUpdates.zip を拾ってくる。 # bison, flex, gnumake, tar, gzip, zsh等が入っている。 3. VIDE用のツール群を使う Object Central http://objectcentral.com/ のVIDE用のツール群、 ftp://ftp.objectcentral.com/winutils.zip を拾ってくる。 # cp, grep, gzip, make, rm, tar, touchが入っている。中身はGNU。 4. MakefileはやめてVCのプロジェクトファイルを使う 小林さんのところ、 http://www.tinyforest.gr.jp/ruby/ruby.html から、 http://www.tinyforest.gr.jp/ruby/winide143.lzh を拾ってきてインストールし、Makefileは使わない。 5. Resource Kitのrm.exeを使う WindowsのResource Kitにもrm.exeは付属しているので適当な手段で 入手する。 ただし、すべてのバリエーションに付属しているかどうかは不明。 # 98だとCD-ROMに付属していたような気がする。 6. MKS Toolkitを買う MKS Toolkit http://www.datafocus.com/products/tk/ を買う。 # 他の製品に付属していることもある。 7. Windows NT Services for UNIX Add-On Packを買う Microsoft製品じゃなきゃいやで、Windows NTを持っているなら、 Windows NT Services for UNIX Add-On Pack http://www.microsoft.com/NTServer/nts/exec/overview/sfu.asp を買う。 Wed May 24 23:17:50 2000 Katsuyuki Komatsu * win32/Makefile: remove unnecessary mv and rm command call. --- ruby-1.5.4.dist/win32/Makefile Fri Mar 17 17:58:21 2000 +++ ruby-1.5.4/win32/Makefile Wed May 24 23:17:50 2000 @@ -92,9 +92,7 @@ miniruby$(EXEEXT): $(OBJS) $(MAINOBJ) $( @echo $(EXTOBJS) @echo $(LIBS) - @rm -f $@ $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(OBJS) $(LIBS) -o $@ $(PROGRAM): $(LIBRUBY) $(MAINOBJ) $(LIBRUBY_SO) - @rm -f $@ $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) -o $@ $(LIBRUBYARG) -link /STACK:$(STACK) @@ -107,7 +105,5 @@ rubymw.lib: ruby.def $(LIBRUBY_SO): $(LIBRUBY_A) $(EXTOBJS) ruby.def set LIB=.\win32;$(ORGLIBPATH) - @rm -f $@ $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBY_A) $(LIBS) -o $@ -link /DLL /DEF:ruby.def - @mv rubymw.map rubydll.map install: rbconfig.rb -- 小松克行 / Katsuyuki Komatsu