[Win32utils-devel] Strange nmake bug with Sapphire, Vista, VC 9

Heesob Park phasis at gmail.com
Sun Jan 24 04:43:07 EST 2010


Hi,

2010/1/24 Daniel Berger <djberg96 at gmail.com>:
> I see this when I try to compile Sapphire on Vista with VC 9:
>
> compiling Win32API
>
> Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
> Copyright (C) Microsoft Corporation.  All rights reserved.
>
> makefile(1) : fatal error U1007: double quotation mark not allowed in name
> Stop.
> NMAKE : fatal error U1077: '.\miniruby.exe' : return code '0x1'
> Stop.
>
> Sapphire is based on ruby-1.8.6-p383, though a fresh download of that source
> builds fine. I don't see this behavior on OS X, either.
>
> Any ideas? Could it be this commit?
>
> http://github.com/djberg96/Sapphire/commit/8bfbabe633b270af655709fd030c9556f
> bf2c6a0
>
> Otherwise, I'm not sure what the heck I did and I'll to revert one commit at
> a time until I find the culprit. :(
>
The culprit is Array#to_s, of course.
Here is a patch for lib/mkmf.rb:

--- mkmf.rb.old 2010-01-24 18:35:22.000000000 +0900
+++ mkmf.rb     2010-01-24 18:35:01.000000000 +0900
@@ -1236,7 +1236,7 @@
   dllib = target ? "$(TARGET).#{CONFIG['DLEXT']}" : ""
   staticlib = target ? "$(TARGET).#$LIBEXT" : ""
   mfile = open("Makefile", "wb")
-  mfile.print configuration(srcprefix)
+  mfile.print configuration(srcprefix).join("")
   mfile.print "
 libpath = #{($DEFLIBPATH|$LIBPATH).join(" ")}
 LIBPATH = #{libpath}
@@ -1427,7 +1427,7 @@
       mfile.print ".SUFFIXES: .", suffixes.uniq.join(" ."), "\n\n"
     end
     mfile.print "$(OBJS): $(RUBY_EXTCONF_H)\n\n" if $extconf_h
-    mfile.print depout
+    mfile.print depout.join("")
   else
     headers = %w[ruby.h defines.h]
     if RULE_SUBST


Regards,

Park Heesob


More information about the win32utils-devel mailing list