From: "Nobuyoshi.Nakada" Date: 2000-12-21T16:50:11+09:00 Subject: [ruby-dev:11811] Re: mswin32 [PATCH] win32/Makefile.sub なかだです。 At Wed, 20 Dec 2000 12:01:38 +0900 "U.Nakamura" wrote: > 現状でmswin32版でparse.y→parse.cを作れないことに対するパッチ > です。 あ、そういえばそんな問題もあったような。 > +$(srcdir)/parse.c: $(srcdir)/parse.y > + $(YACC) $(YFLAGS) -o $(srcdir)/y.tab.c $(srcdir)/parse.y > + sed -e "s!^extern char \*getenv();!/* & */!" $(srcdir)/y.tab.c > $(srcdir)/parse.c > + @rm $(srcdir)/y.tab.c clean の方も $(srcdir)/parse.c を消すようにしとかないと。 あと、プラットフォームによって $(YACC) が違う可能性があるので $(srcdir) よりもカレントに作ろうとしたことがあるのですが、ルールの順番によってうま く行ったり行かなかったりと、苦労した痕跡が見えます(笑)。このへんは nmake のバージョンとかで変わるかもしれません。 diff -pruPX ./.excludes current/win32/Makefile.sub devel/win32/Makefile.sub --- current/win32/Makefile.sub Fri Dec 8 16:10:38 2000 +++ devel/win32/Makefile.sub Tue Dec 19 19:49:39 2000 @@ -21,6 +21,7 @@ RUBY_SO_NAME = rubymw ############### VPATH = $(srcdir):$(srcdir)/missing +.SUFFIXES: .y CC = cl YACC = byacc @@ -186,22 +187,24 @@ $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_ #config.status: $(srcdir)/configure # $(SHELL) ./config.status --recheck +{$(srcdir)/missing}.c.obj: + $(CC) $(CFLAGS) -I. -I$( parse.c - @rm y.tab.c +{$(srcdir)}.y.c: + $(YACC) $(YFLAGS) $(<:\=/) + sed -e "s!^extern char \*getenv();!/* & */!;s/^\(#.*\)y\.tab/\1parse/" y.tab.c > $@ + @del y.tab.c + +{$(srcdir)}parse.c: parse.y alloca.obj: $(srcdir)/missing/alloca.c crypt.obj: $(srcdir)/missing/crypt.c @@ -236,7 +240,7 @@ win32.obj: $(srcdir)/win32/win32.c # Prevent GNU make v3 from overflowing arg limit on SysV. .NOEXPORT: ### -parse.obj: $(srcdir)/parse.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/env.h $(srcdir)/node.h $(srcdir)/st.h $(srcdir)/regex.h $(srcdir)/util.h $(srcdir)/lex.c +parse.obj: {$(srcdir)}parse.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/env.h $(srcdir)/node.h $(srcdir)/st.h $(srcdir)/regex.h $(srcdir)/util.h $(srcdir)/lex.c ### array.obj: $(srcdir)/array.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h bignum.obj: $(srcdir)/bignum.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦