@@ -394,8 +394,24 @@ OUTDIR=$(OBJDIR)
394394
395395!if $(MSVCVER) < 1900
396396MSVC_MAJOR = ($(MSVCVER ) / 100 - 6)
397+ MSVCRT_VER = ($(MSVCVER ) / 10 - 60)
397398!else
398399MSVC_MAJOR = ($(MSVCVER ) / 100 - 5)
400+ MSVCRT_VER = ($(MSVCVER ) / 10 - 50)
401+ !endif
402+
403+ # Calculate MSVCRT_VER
404+ !if [(set /a MSVCRT_VER="$(MSVCRT_VER)" > nul) && set MSVCRT_VER > msvcrtver.~] == 0
405+ !include msvcrtver.~
406+ !if [del msvcrtver.~]
407+ !endif
408+ !endif
409+
410+ # Base name of the msvcrXX.dll
411+ !if $(MSVCRT_VER) <= 60
412+ MSVCRT_NAME = msvcrt
413+ !else
414+ MSVCRT_NAME = msvcr$(MSVCRT_VER )
399415!endif
400416
401417!if $(MSVC_MAJOR) == 6
@@ -858,19 +874,39 @@ RUBY_API_VER = $(RUBY_VER_LONG:.=)
858874!endif
859875
860876!if $(RUBY_VER) >= 18
877+
861878!ifndef RUBY_PLATFORM
879+ !if "$(CPU)" == "i386"
862880RUBY_PLATFORM = i386-mswin32
863- !endif
881+ !else # CPU
882+ RUBY_PLATFORM = x64-mswin64
883+ !endif # CPU
884+ !if $(MSVCRT_VER) >= 70
885+ RUBY_PLATFORM = $(RUBY_PLATFORM ) _$(MSVCRT_VER )
886+ !endif # MSVCRT_VER
887+ !endif # RUBY_PLATFORM
888+
864889!ifndef RUBY_INSTALL_NAME
865- RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER )
866- !endif
867- !else
890+ !ifndef RUBY_MSVCRT_NAME
891+ # Base name of msvcrXX.dll which is used by ruby's dll.
892+ RUBY_MSVCRT_NAME = $(MSVCRT_NAME )
893+ !endif # RUBY_MSVCRT_NAME
894+ !if "$(CPU)" == "i386"
895+ RUBY_INSTALL_NAME = $(RUBY_MSVCRT_NAME ) -ruby$(RUBY_API_VER )
896+ !else # CPU
897+ RUBY_INSTALL_NAME = x64-$(RUBY_MSVCRT_NAME ) -ruby$(RUBY_API_VER )
898+ !endif # CPU
899+ !endif # RUBY_INSTALL_NAME
900+
901+ !else # $(RUBY_VER) >= 18
902+
868903!ifndef RUBY_PLATFORM
869904RUBY_PLATFORM = i586-mswin32
870905!endif
871906!ifndef RUBY_INSTALL_NAME
872907RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER )
873908!endif
909+
874910!endif # $(RUBY_VER) >= 18
875911
876912!message Ruby requested (version $(RUBY_VER)) - root dir is "$(RUBY)"
0 commit comments