Bram Moolenaar wrote:

> Vlad Sandrini wrote:
>
>> It has to do with the recent ruby changes, because "make" complained
>> about an extra "else" in row 218.
>>
>> I am very clumsy with diff, and I don't have ruby to say the truth,
>> but this trick below made me able to compile.
>>
>> diff -NrU3 ../before\vim72\src\Make_ming.mak .\vim72\src\Make_ming.mak
>> --- ../before\vim72\src\Make_ming.mak Thu Mar 11 10:46:19 2010
>> +++ .\vim72\src\Make_ming.mak Thu Mar 11 10:33:17 2010
>> @@ -215,10 +215,12 @@
>>  ifndef RUBY_PLATFORM
>>  ifeq ($(RUBY_VER), 16)
>>  RUBY_PLATFORM = i586-mswin32
>> -else ifneq ("X$(wildcard, $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-
>> mingw32)", X)
>> +else
>> +ifneq ("X$(wildcard, $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-
>> mingw32)", X)
>>  RUBY_PLATFORM = i386-mingw32
>>  else
>>  RUBY_PLATFORM = i386-mswin32
>> +endif
>>  endif
>>  endif


At line 218...

ifneq ("X$(wildcard, $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32)", X)

Why is there a comma just after wildcard?  That's looks wrong.
Shouldn't that be:

ifneq ("X$(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32)", X)

Also, the trick with the X is not necessary.  This should work:

ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32),)

But the comma after wildcard was there before the patch
so I suspect that the syntax error has to do with the "else ifneq"
construct which may not be accepted by all versions of make.
(it's fine with GNU-make-3.81 at least).  Line 218 (where it
complains) is in fact the only place where a "else if" is used
in Vim's Makefiles:

  $ cd vim/src ; grep -n 'else if' Make*

  Make_ming.mak:218:else ifneq ("X$(wildcard,
$(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32)", X)

To be more conservative, we can replace the...

  if ...
  RUBY_VER = ..
  else if ...
  RUBY_VER = ...
  else
  RUBY_VER =...
  endif

... with the slightly longer:

  if ...
    RUBY_VER = ...
  else
    if ...
      RUBY_VER = ...
    else
      RUBY_VER = ...
    endif
  endif

Attached patch "Make_ming.mak.patch" does that.

-- Dominique

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
diff -r aab202d244b6 src/Make_ming.mak
--- a/src/Make_ming.mak	Wed Mar 10 17:16:12 2010 +0100
+++ b/src/Make_ming.mak	Fri Mar 12 05:03:04 2010 +0100
@@ -215,12 +215,14 @@
 ifndef RUBY_PLATFORM
 ifeq ($(RUBY_VER), 16)
 RUBY_PLATFORM = i586-mswin32
-else ifneq ("X$(wildcard, $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32)", X)
+else 
+ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32),)
 RUBY_PLATFORM = i386-mingw32
 else
 RUBY_PLATFORM = i386-mswin32
 endif
 endif
+endif
 
 ifndef RUBY_INSTALL_NAME
 ifeq ($(RUBY_VER), 16)

Raspunde prin e-mail lui