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

Daniel Berger djberg96 at gmail.com
Sun Jan 24 08:41:44 EST 2010


On Sun, Jan 24, 2010 at 2:43 AM, Heesob Park <phasis at gmail.com> wrote:
> 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

Thanks!

I ultimately decided to undo the change that originally caused this
error instead.

Regards,

Dan


More information about the win32utils-devel mailing list