From: Katsuyuki Komatsu Date: 2000-09-06T23:57:30+09:00 Subject: [ruby-list:24847] Re: win32 で RDtool 小松です. In the message of [ruby-list:24843] Re: win32 で RDtool on 2000/9/6 22:23:44 rubikitch wrote: > > ruby setup.rb config --make-prog=nmake > > とかできるとうれしい. > これはすぐに対処可能ですね。 これができてると,mswin32でもstrscanやraccは以下でインストール できます. ruby setup.rb config --make-prog=nmake ruby setup.rb setup ruby setup.rb install rdtoolの方は,mswin32でnmakeだと,${}と, .ry.tab.rb : が通りません. また,BSD系installを仮定しているので,Solarisなんかだと インストールに失敗します. このため,rdtoolconf.rbをこんな感じにして使っています. NTでraccをracc.rbにして,拡張子の関連付けをしておけば, mswin32でも以下で作れます. ruby rdtoolconf.rb nmake RACC=racc.rb nmake install C:\>type Makefile .SUFFIXES : .html .rd .tab.rb .ry .ry.tab.rb : $(RACC) $(RACC_OPT) $< C:\>nmake -nologo makefile(2) : fatal error U1092: ルールに名前が多すぎます。 Stop. C:\> --- rdtool-0.6.5/rdtoolconf.rb.dist Sun Jun 25 01:44:25 2000 +++ rdtool-0.6.5/rdtoolconf.rb Sun Jun 25 05:00:25 2000 @@ -53,33 +53,37 @@ MADE_FILE = rd/rdblockparser.tab.rb \\ -all : rd2 ${RD_LIBS} ${PARSERS} ${HTML_DOCS} +all : rd2 $(RD_LIBS) $(PARSERS) $(HTML_DOCS) clean : - rm -f ${MADE_FILE} + rm -f $(MADE_FILE) rm -f ./Makefile -install : rd2 ${RD_LIBS} ${PARSERS} - install -c -m 755 rd2 ${BIN_DIR} - install -d ${SITE_RUBY}/rd - install -c -m 644 ${RD_LIBS} ${PARSERS} ${SITE_RUBY}/rd/ - -install-nonext : rd2 ${RD_LIBS} ${PARSERS_NONEXT} - install -c -m 755 rd2 ${BIN_DIR} - install -d ${SITE_RUBY}/rd - install -c -m 644 ${RD_LIBS} ${PARSERS_NONEXT} ${SITE_RUBY}/rd/ - install -c -m 644 missing/strscan.rb ${SITE_RUBY}/ +install : rd2 $(RD_LIBS) $(PARSERS) + @$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0755, true)' rd2 $(BIN_DIR) + @$(RUBY) -r ftools -e 'File::makedirs(*ARGV)' $(SITE_RUBY)/rd + @$(RUBY) -r ftools -e "dest = ARGV[-1]; ARGV.each { |file| File::install(file, dest, 0644, true) if file != dest }" $(RD_LIBS) $(PARSERS) $(SITE_RUBY)/rd + +install-nonext : rd2 $(RD_LIBS) $(PARSERS_NONEXT) + @$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0755, true)' rd2 $(BIN_DIR) + @$(RUBY) -r ftools -e 'File::makedirs(*ARGV)' $(SITE_RUBY)/rd + @$(RUBY) -r ftools -e "dest = ARGV[-1]; ARGV.each { |file| File::install(file, dest, 0644, true) if file != dest }" $(RD_LIBS) $(PARSERS_NONEXT) $(SITE_RUBY)/rd + @$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0644, true)' missing/strscan.rb $(SITE_RUBY) install-rmi2html : rmi2html.rb - install -c -m 755 rmi2html.rb ${BIN_DIR} - install -c -m 644 rd/rd2rmi-lib.rb ${SITE_RUBY}/rd/ + @$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0755, true)' rmi2html.rb $(BIN_DIR) + @$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0644, true)' rd/rd2rmi-lib.rb $(SITE_RUBY)/rd dist : - ${RACC} ${RACC_OPT} -E -o missing/rdblockparser.tab.rb rd/rdblockparser.ry - ${RACC} ${RACC_OPT} -E -o missing/rdinlineparser.tab.rb rd/rdinlineparser.ry + $(RACC) $(RACC_OPT) -E -o missing/rdblockparser.tab.rb rd/rdblockparser.ry + $(RACC) $(RACC_OPT) -E -o missing/rdinlineparser.tab.rb rd/rdinlineparser.ry .SUFFIXES : .html .rd .tab.rb .ry -.ry.tab.rb : - ${RACC} ${RACC_OPT} $< + +rd/rdblockparser.tab.rb : rd/rdblockparser.ry + $(RACC) $(RACC_OPT) rd/rdblockparser.ry + +rd/rdinlineparser.tab.rb : rd/rdinlineparser.ry + $(RACC) $(RACC_OPT) rd/rdinlineparser.ry .rd.html : - ${RUBY} ${RUBY_OPT} rd2 -r rd/rd2html-lib.rb $< > $@ + $(RUBY) $(RUBY_OPT) rd2 -r rd/rd2html-lib.rb $< > $@ EOM -- 小松克行 / Katsuyuki Komatsu