* Makefile.in, */Makefile.sub, common.mk (clean-local, distclean-local):
  separate files under directories due to directory separator.

* */Makefile.sub (MKFILES): common.mk and */Makefile.sub should not be
  removed.

* win32/Makefile.sub, wince/Makefile.sub: $* cannot appear in explicit
  rules.

* cygwin/GNUmakefile.in: some mingw stuffs were missed.

* lib/mkmf.rb (create_makefile): Borland make wrongly removes braces
  from command lines.


Index: Makefile.in
===================================================================
RCS file: /cvs/ruby/src/ruby/Makefile.in,v
retrieving revision 1.66
diff -u -2 -p -d -r1.66 Makefile.in
--- Makefile.in	21 Mar 2004 23:21:29 -0000	1.66
+++ Makefile.in	22 Mar 2004 07:34:35 -0000
@@ -117,4 +117,5 @@ $(LIBRUBY_SO):
 						  File.symlink "$(LIBRUBY_SO)", link}' \
 				$(LIBRUBY_ALIASES) || true
+
 fake.rb:	Makefile
 		@echo ' \
@@ -167,2 +168,7 @@ lex.c: keywords
 	$(CC) $(CFLAGS) $(CPPFLAGS) -c $<
 
+clean-local::
+	@$(RM) ext/extinit.c ext/extinit.$(OBJEXT)
+
+distclean-local::
+	@$(RM) ext/config.cache $(RBCONFIG)
Index: common.mk
===================================================================
RCS file: /cvs/ruby/src/ruby/common.mk,v
retrieving revision 1.1
diff -u -2 -p -d -r1.1 common.mk
--- common.mk	21 Mar 2004 23:21:29 -0000	1.1
+++ common.mk	22 Mar 2004 10:19:17 -0000
@@ -100,7 +100,6 @@ install-doc: $(PROGRAM)
 clean: clean-ext clean-local
 clean-local::
-	@$(RM) $(OBJS) $(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY_ALIASES)
-	@$(RM) ext/extinit.c ext/extinit.$(OBJEXT) dmyext.$(OBJEXT)
-	@$(RM) $(PROGRAM) $(WPROGRAM) miniruby$(EXEEXT)
+	@$(RM) $(OBJS) $(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY) $(LIBRUBY_ALIASES)
+	@$(RM) $(PROGRAM) $(WPROGRAM) miniruby$(EXEEXT) dmyext.$(OBJEXT)
 clean-ext:
 	@-$(MINIRUBY) $(srcdir)/ext/extmk.rb $(EXTMK_ARGS) clean
@@ -108,9 +107,9 @@ clean-ext:
 distclean: distclean-ext distclean-local
 distclean-local:: clean-local
-	@$(RM) $(MKFILES) config.h rbconfig.rb $(RBCONFIG)
-	@$(RM) ext/config.cache config.cache config.log config.status
+	@$(RM) $(MKFILES) config.h rbconfig.rb
+	@$(RM) config.cache config.log config.status
 	@$(RM) *~ *.bak *.stackdump core *.core gmon.out y.tab.c y.output ruby.imp
 distclean-ext:
-	@-$(MINIRUBY) $(srcdir)/ext/extmk.rb $(EXTMK_ARGS) distclean 2> $(NULL)
+	@-$(MINIRUBY) $(srcdir)/ext/extmk.rb $(EXTMK_ARGS) distclean
 
 realclean:: distclean
Index: bcc32/Makefile.sub
===================================================================
RCS file: /cvs/ruby/src/ruby/bcc32/Makefile.sub,v
retrieving revision 1.57
diff -u -2 -p -d -r1.57 Makefile.sub
--- bcc32/Makefile.sub	21 Mar 2004 23:21:30 -0000	1.57
+++ bcc32/Makefile.sub	22 Mar 2004 12:08:10 -0000
@@ -2,5 +2,5 @@
 
 SHELL = $(COMSPEC)
-MKFILES = Makefile $(srcdir)bcc32/Makefile.sub $(srcdir)common.mk
+MKFILES = Makefile
 
 #### Start of system configuration section. ####
@@ -187,5 +187,5 @@ WINMAINOBJ    = winmain.$(OBJEXT)
 	@del y.tab.c
 
-all:
+all: $(srcdir)bcc32/Makefile.sub $(srcdir)common.mk
 
 !include $(srcdir)/common.mk
@@ -272,9 +272,10 @@ config.h:
 |
 
-config.status: $(MKFILES)
+config.status: $(MKFILES) $(srcdir)bcc32/Makefile.sub $(srcdir)common.mk
 	@echo Creating $@
 	@type > $@ &&|
 # Generated automatically by Makefile.sub.
 s,@SHELL@,$$(COMSPEC),;t t
+s,@PATH_SEPARATOR@,;,;t t
 s,@CFLAGS@,$(CFLAGS),;t t
 s,@CPPFLAGS@,$(CPPFLAGS),;t t
@@ -404,6 +405,13 @@ $(RUBYDEF):	$(LIBRUBY_A) $(PREP)
 		$(MINIRUBY) $(srcdir)win32/mkexports.rb -output=$@ -base=$(RUBY_SO_NAME) $(LIBRUBY_A)
 
+$(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc: rbconfig.rb
+		@$(MINIRUBY) $(srcdir)win32/resource.rb \
+			-ruby_name=$(RUBY_INSTALL_NAME) \
+			-rubyw_name=$(RUBYW_INSTALL_NAME) \
+			-so_name=$(RUBY_SO_NAME) \
+			. $(icondirs) $(srcdir)win32
+
 clean-local::
-		@$(RM) ext\extinit.c ext\extinit.$(OBJEXT) *.tds *.il?
+		@$(RM) ext\extinit.c ext\extinit.$(OBJEXT) *.tds *.il? $(RUBY_SO_NAME).lib
 		@$(RM) $(RUBY_INSTALL_NAME).res $(RUBYW_INSTALL_NAME).res $(RUBY_SO_NAME).res
 
Index: cygwin/GNUmakefile.in
===================================================================
RCS file: /cvs/ruby/src/ruby/cygwin/GNUmakefile.in,v
retrieving revision 1.28
diff -u -2 -p -d -r1.28 GNUmakefile.in
--- cygwin/GNUmakefile.in	21 Mar 2004 23:21:30 -0000	1.28
+++ cygwin/GNUmakefile.in	22 Mar 2004 09:21:46 -0000
@@ -2,4 +2,5 @@ include Makefile
 
 ENABLE_SHARED=@ENABLE_SHARED@
+DLLWRAP = @DLLWRAP@ --target=@target_os@
 
 ifeq (@target_os@,cygwin)
@@ -7,4 +8,6 @@ ifeq (@target_os@,cygwin)
 else
   DLL_BASE_NAME := $(RUBY_SO_NAME)
+  DLLWRAP += -mno-cygwin
+  VPATH += $(srcdir)/win32
 endif
 
@@ -45,5 +48,5 @@ $(WPROGRAM): $(RUBYW_INSTALL_NAME).res.@
 
 $(RUBY_EXP): $(LIBRUBY_A)
-	@DLLWRAP@ --target=@target_os@ --driver-name=$(CC) \
+	$(DLLWRAP) \
 	  --output-exp=$(RUBY_EXP) \
 	  --export-all $(LIBRUBY_A) $(LIBS) -o $(PROGRAM)
Index: ext/extmk.rb
===================================================================
RCS file: /cvs/ruby/src/ruby/ext/extmk.rb,v
retrieving revision 1.58
diff -u -2 -p -d -r1.58 extmk.rb
--- ext/extmk.rb	20 Mar 2004 12:22:48 -0000	1.58
+++ ext/extmk.rb	22 Mar 2004 11:49:01 -0000
@@ -117,4 +117,7 @@ def extmake(target)
       $ignore or $continue or return false
     end
+    if $clean and $clean != true
+      File.unlink(makefile) rescue nil
+    end
     if $static
       $extflags ||= ""
@@ -216,9 +219,9 @@ parse_args()
 if target = ARGV.shift and /^[a-z-]+$/ =~ target
   $mflags.push(target)
-  target = target.sub(/^(?:dist|real)(?=(?:clean)?$)/, '\1')
+  target = target.sub(/^(dist|real)(?=(?:clean)?$)/, '')
   case target
   when /clean/
     $ignore ||= true
-    $clean = true
+    $clean = $1 ? $1[0] : true
   when /^install\b/
     $install = true
Index: lib/mkmf.rb
===================================================================
RCS file: /cvs/ruby/src/ruby/lib/mkmf.rb,v
retrieving revision 1.181
diff -u -2 -p -d -r1.181 mkmf.rb
--- lib/mkmf.rb	19 Mar 2004 02:35:27 -0000	1.181
+++ lib/mkmf.rb	22 Mar 2004 11:41:08 -0000
@@ -898,6 +898,7 @@ RUBYARCHDIR   = $(sitearchdir)$(target_p
 }
   end
+  n = ($extout ? '$(RUBYARCHDIR)/' : '') + '$(TARGET).'
   mfile.print %{
-CLEANLIBS     = #{$extout ? '$(RUBYARCHDIR)/' : ''}$(TARGET).{#{CONFIG['DLEXT']},il?,tds,map}
+CLEANLIBS     = #{n}#{CONFIG['DLEXT']} #{n}il? #{n}tds #{n}map
 CLEANOBJS     = *.#{$OBJEXT} *.#{$LIBEXT} *.s[ol] *.pdb *.exp *.bak
 
@@ -1025,6 +1026,6 @@ def init_mkmf(config = CONFIG)
   $LOCAL_LIBS = ""
 
-  $cleanfiles = []
-  $distcleanfiles = []
+  $cleanfiles = config_string('CLEANFILES') {|s| Shellwords.shellwords(s)} || []
+  $distcleanfiles = config_string('DISTCLEANFILES') {|s| Shellwords.shellwords(s)} || []
 
   $extout ||= nil
Index: win32/Makefile.sub
===================================================================
RCS file: /cvs/ruby/src/ruby/win32/Makefile.sub,v
retrieving revision 1.76
diff -u -2 -p -d -r1.76 Makefile.sub
--- win32/Makefile.sub	21 Mar 2004 23:21:30 -0000	1.76
+++ win32/Makefile.sub	22 Mar 2004 12:18:00 -0000
@@ -2,5 +2,5 @@
 
 SHELL = $(COMSPEC)
-MKFILES = Makefile $(srcdir)/win32/Makefile.sub $(srcdir)/common.mk
+MKFILES = Makefile
 NULL = nul
 
@@ -172,5 +172,5 @@ DLDOBJS       = 
 WINMAINOBJ    = winmain.$(OBJEXT)
 
-all:
+all: $(srcdir)/win32/Makefile.sub $(srcdir)/common.mk
 
 !include $(srcdir)/common.mk
@@ -272,8 +272,9 @@ config.h:
 <<KEEP
 
-config.status: $(MKFILES)
+config.status: $(MKFILES) $(srcdir)/win32/Makefile.sub $(srcdir)/common.mk
 	@echo Creating <<$@
 # Generated automatically by Makefile.sub.
 s,@SHELL@,$$(COMSPEC),;t t
+s,@PATH_SEPARATOR@,;,;t t
 s,@CFLAGS@,$(CFLAGS),;t t
 s,@CPPFLAGS@,$(CPPFLAGS),;t t
@@ -367,4 +368,5 @@ s,@COMMON_LIBS@,m,;t t
 s,@COMMON_MACROS@,WIN32_LEAN_AND_MEAN;t t
 s,@COMMON_HEADERS@,winsock2.h windows.h,;t t
+s,@DISTCLEANFILES@,vc*.pdb,;t t
 s,@EXPORT_PREFIX@, ,;t t
 s,@arch@,$(ARCH)-$(OS),;t t
@@ -381,11 +383,12 @@ miniruby$(EXEEXT):
 		$(PURIFY) $(CC) $(MAINOBJ) $(LIBRUBY_A) $(LIBS) -Fe$@ $(LDFLAGS)
 
-$(PROGRAM):	$*.res
-		$(PURIFY) $(CC) $(MAINOBJ) $*.res \
+$(PROGRAM):	$(RUBY_INSTALL_NAME).res
+		$(PURIFY) $(CC) $(MAINOBJ) $(RUBY_INSTALL_NAME).res \
 			$(OUTFLAG)$@ $(LIBRUBYARG) $(LDFLAGS) $(XLDFLAGS)
 
-$(WPROGRAM):	$(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_SO) $*.res
-		$(PURIFY) $(CC) $(MAINOBJ) $(WINMAINOBJ) $*.res \
-			$(OUTFLAG)$@ $(LIBRUBYARG) $(LDFLAGS) $(XLDFLAGS) -subsystem:Windows
+$(WPROGRAM):	$(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_SO) $(RUBYW_INSTALL_NAME).res
+		$(PURIFY) $(CC) $(MAINOBJ) $(WINMAINOBJ) \
+			$(RUBYW_INSTALL_NAME).res $(OUTFLAG)$@ $(LIBRUBYARG) \
+			$(LDFLAGS) $(XLDFLAGS) -subsystem:Windows
 
 $(LIBRUBY_A):	$(OBJS) $(DMYEXT)
@@ -395,8 +398,9 @@ $(LIBRUBY):	$(RUBYDEF)
 		$(AR) $(ARFLAGS)$@ -def:$(RUBYDEF)
 
-$(LIBRUBY_SO):	$(LIBRUBY_A) $(DLDOBJS) $(RUBYDEF) $*.res
+$(LIBRUBY_SO):	$(LIBRUBY_A) $(DLDOBJS) $(RUBYDEF) $(RUBY_SO_NAME).res
 		@echo. $(DLDOBJS)
-		$(LDSHARED) $(MAINOBJ) $(DLDOBJS) $(LIBRUBY_A) $*.res $(LIBS) \
-			-Fe$@ $(LDFLAGS) $(LIBRUBY_DLDFLAGS)
+		$(LDSHARED) $(MAINOBJ) $(DLDOBJS) $(LIBRUBY_A) \
+			$(RUBY_SO_NAME).res $(LIBS) -Fe$@ $(LDFLAGS) \
+			$(LIBRUBY_DLDFLAGS)
 
 $(RUBYDEF):	$(LIBRUBY_A) $(PREP)
Index: win32/rm.bat
===================================================================
RCS file: /cvs/ruby/src/ruby/win32/rm.bat,v
retrieving revision 1.1
diff -u -2 -p -d -r1.1 rm.bat
--- win32/rm.bat	21 Mar 2004 23:21:30 -0000	1.1
+++ win32/rm.bat	22 Mar 2004 07:54:24 -0000
@@ -4,5 +4,5 @@ if "%1" == "-f" shift
 :begin
 if "%1" == "" goto :end
-if exist %1 del %1
+if exist "%1" del "%1"
 shift
 goto :begin
Index: wince/Makefile.sub
===================================================================
RCS file: /cvs/ruby/src/ruby/wince/Makefile.sub,v
retrieving revision 1.24
diff -u -2 -p -d -r1.24 Makefile.sub
--- wince/Makefile.sub	21 Mar 2004 23:21:31 -0000	1.24
+++ wince/Makefile.sub	22 Mar 2004 12:18:48 -0000
@@ -2,5 +2,5 @@
 
 SHELL = $(COMSPEC)
-MKFILES = Makefile $(srcdir)/wince/Makefile.sub $(srcdir)/common.mk
+MKFILES = Makefile
 NULL = nul
 
@@ -179,5 +179,5 @@ DLDOBJS       = 
 WINMAINOBJ    = wincemain.$(OBJEXT)
 
-all:
+all: $(srcdir)/wince/Makefile.sub $(srcdir)/common.mk
 ruby: $(PROGRAM)
 lib: $(LIBRUBY)
@@ -298,8 +298,9 @@ $(BANG)endif
 <<KEEP
 
-config.status: $(MKFILES)
+config.status: $(MKFILES) $(srcdir)/wince/Makefile.sub $(srcdir)/common.mk
 	@echo Creating <<$@
 # Generated automatically by Makefile.sub.
 s,@SHELL@,$$(COMSPEC),;t t
+s,@PATH_SEPARATOR@,;,;t t
 s,@CFLAGS@,$(CFLAGS),;t t
 s,@CPPFLAGS@,$(CPPFLAGS),;t t
@@ -413,8 +414,9 @@ $(LIBRUBY):	$(RUBYDEF)
 		$(AR) $(ARFLAGS)$@ -def:$(RUBYDEF)
 
-$(LIBRUBY_SO):	$(LIBRUBY_A) $(DLDOBJS) $(RUBYDEF) $*.res
+$(LIBRUBY_SO):	$(LIBRUBY_A) $(DLDOBJS) $(RUBYDEF) $(RUBY_SO_NAME).res
 		@echo. $(DLDOBJS)
-		$(LDSHARED) $(MAINOBJ) $(DLDOBJS) $(LIBRUBY_A) $*.res $(LIBS) \
-			-Fe$@ $(LDFLAGS) $(LIBRUBY_DLDFLAGS)
+		$(LDSHARED) $(MAINOBJ) $(DLDOBJS) $(LIBRUBY_A) \
+			$(RUBY_SO_NAME).res $(LIBS) -Fe$@ $(LDFLAGS) \
+			$(LIBRUBY_DLDFLAGS)
 
 $(RUBYDEF):	$(LIBRUBY_A) $(PREP)
