diff --git a/plugins/arclite/arclite.vcxproj b/plugins/arclite/arclite.vcxproj
index 37288307e1..55bdd10737 100644
--- a/plugins/arclite/arclite.vcxproj
+++ b/plugins/arclite/arclite.vcxproj
@@ -18,6 +18,12 @@
x64
+
+ v100
+ v110
+ v120
+ v140
+
diff --git a/plugins/arclite/example/makefile_vc b/plugins/arclite/example/makefile_vc
index 5455f8d879..2936b4430a 100644
--- a/plugins/arclite/example/makefile_vc
+++ b/plugins/arclite/example/makefile_vc
@@ -10,6 +10,10 @@ LINKFLAGS = -nologo -incremental:no -map -manifest:no -dynamicbase -nxcompat -la
RCFLAGS = -nologo
ASFLAGS = -nologo -c
+!if $(VC) >= 14
+FIXCRT_CPPFLAGS = /Zc:threadSafeInit-
+!endif
+
!if "$(BUILD_PLATFORM)" == "AMD64"
BITS = 64
RCFLAGS = $(RCFLAGS) -Dx64
@@ -64,7 +68,7 @@ $(OUTDIR)\vc_crt_fix.obj: ..\..\common\vc_crt_fix.asm
$(AS) $(ASFLAGS) ..\..\common\vc_crt_fix.asm
$(OUTDIR)\vc_crt_fix_impl.obj: ..\..\common\vc_crt_fix_impl.cpp
- $(CPP) $(CPPFLAGS) -Yuheaders.hpp -FIheaders.hpp -Fp$(OUTDIR)\headers.pch ..\..\common\vc_crt_fix_impl.cpp
+ $(CPP) $(CPPFLAGS) $(FIXCRT_CPPFLAGS) ..\..\common\vc_crt_fix_impl.cpp
depfile: $(OUTDIR)
$(TOOLSDIR)\tool gendep $(INCLUDES) > $(OUTDIR)\dep.mak
diff --git a/plugins/arclite/makefile_vc b/plugins/arclite/makefile_vc
index 423b884aeb..cb86562edc 100644
--- a/plugins/arclite/makefile_vc
+++ b/plugins/arclite/makefile_vc
@@ -38,6 +38,10 @@ CPPFLAGS = $(CPPFLAGS) -Fo$(OUTDIR)\ -Fd$(OUTDIR)\ $(INCLUDES) $(DEFINES) $(USER
RCFLAGS = $(RCFLAGS) $(INCLUDES) $(DEFINES)
ASFLAGS = $(ASFLAGS) -Fo$(OUTDIR)\
+!if $(VC) >= 14
+FIXCRT_CPPFLAGS = /Zc:threadSafeInit-
+!endif
+
!ifdef BUILD
!include $(OUTDIR)\far.ini
!endif
@@ -147,7 +151,7 @@ $(OUTDIR)\vc_crt_fix.obj: ..\common\vc_crt_fix.asm
$(AS) $(ASFLAGS) ..\common\vc_crt_fix.asm
$(OUTDIR)\vc_crt_fix_impl.obj: ..\common\vc_crt_fix_impl.cpp
- $(CPP) $(CPPFLAGS) -Yuheaders.hpp -FIheaders.hpp -Fp$(OUTDIR)\headers.pch ..\common\vc_crt_fix_impl.cpp
+ $(CPP) $(CPPFLAGS) $(FIXCRT_CPPFLAGS) ..\common\vc_crt_fix_impl.cpp
$(OUTDIR):
if not exist $(OUTDIR) mkdir $(OUTDIR)
diff --git a/plugins/makefile_all_vc b/plugins/makefile_all_vc
index cb39fa554b..bd32cb767c 100644
--- a/plugins/makefile_all_vc
+++ b/plugins/makefile_all_vc
@@ -34,11 +34,13 @@ INSTALL=$(DEFINSTALL)
!endif
!if !defined(VC) && defined(_NMAKE_VER)
-!if "$(_NMAKE_VER)">"9"
-VC=9
-!elseif "$(_NMAKE_VER)">"8"
-VC=8
-!elseif "$(_NMAKE_VER)">"10"
+
+!if "$(_NMAKE_VER)">"14"
+VC=14
+!elseif "$(_NMAKE_VER)">"11"
+VC=11
+!else
+#default
VC=10
!endif
!endif
diff --git a/plugins/makefile_vc_base b/plugins/makefile_vc_base
index 51831dc97f..8253e8a55a 100644
--- a/plugins/makefile_vc_base
+++ b/plugins/makefile_vc_base
@@ -14,12 +14,9 @@ DIRBIT = 32
!endif
!if !defined(VC) && defined(_NMAKE_VER)
-!if "$(_NMAKE_VER)">"9"
-VC=9
-!elseif "$(_NMAKE_VER)">"8"
-VC=8
-!elseif "$(_NMAKE_VER)">"10"
-VC=10
+
+!if "$(_NMAKE_VER)">"14"
+VC=14
!elseif "$(_NMAKE_VER)">"11"
VC=11
!else
@@ -28,7 +25,6 @@ VC=10
!endif
!endif
-
!ifndef ROOT_PATH
ROOT_PATH=../
!endif
diff --git a/plugins/makefile_vc_def_inc b/plugins/makefile_vc_def_inc
index e82770deb5..09a8dfa37e 100644
--- a/plugins/makefile_vc_def_inc
+++ b/plugins/makefile_vc_def_inc
@@ -128,6 +128,10 @@ CPPFLAGS=$(CPPFLAGS) /DDEBUG /Od
CPPFLAGS=$(CPPFLAGS) /Zi
!endif
+!if $(VC) >= 14
+FIXCRT_CPPFLAGS = /Zc:threadSafeInit-
+!endif
+
!if "$(BUILD_PLATFORM)" == "AMD64"
ULOUT=-Tpd+
!elseif "$(BUILD_PLATFORM)" == "IA64"
diff --git a/plugins/makefile_vc_target_inc b/plugins/makefile_vc_target_inc
index 7c5ecf40ca..25599bf4e3 100644
--- a/plugins/makefile_vc_target_inc
+++ b/plugins/makefile_vc_target_inc
@@ -1,4 +1,4 @@
-!ifdef NEEDDEFLIB
+!ifndef NODEFLIB
!if "$(BUILD_PLATFORM)" =="X86"
!ifndef ULINK
LINK_OBJS = $(LINK_OBJS) $(OBJDIR)\vc_crt_fix.obj $(OBJDIR)\vc_crt_fix_impl.obj
@@ -12,58 +12,59 @@ ALL: dirs $(INSTALL) $(DLLFULLNAME)
$(DLLFULLNAME) : $(LINK_OBJS) $(RES) $(LINK_DEP)
!ifndef __MAKE__
- @$(LNK) @<<
+ $(LNK) @<<
$(LINK_FLAGS) $(LIBS) $(LINK_OBJS) $(RES)
<<
!else
- @$(LNK) $(LINK_FLAGS) $(LIBS) $(LINK_OBJS) $(RES)
+ $(LNK) $(LINK_FLAGS) $(LIBS) $(LINK_OBJS) $(RES)
!endif
!ifdef DOCS
!ifndef __MAKE__
- @for %%i in ($(DOCS)) do @copy /Y %%i $(OUTDIR)$(ADDOUTDIR) > nul 2> nul
+ for %%i in ($(DOCS)) do @copy /Y %%i $(OUTDIR)$(ADDOUTDIR) > nul
!else
- @for %i in ($(DOCS)) do @copy /Y %i $(OUTDIR)$(ADDOUTDIR) > nul 2> nul
+ for %i in ($(DOCS)) do @copy /Y %i $(OUTDIR)$(ADDOUTDIR) > nul
!endif
!endif
!ifndef __MAKE__
.cpp{$(OBJDIR)}.obj::
- @$(CC) @<<
+ $(CC) @<<
$(CPPFLAGS) $<
<<
{$(COMMON)}.cpp{$(OBJDIR)}.obj::
- @$(CC) @<<
+ $(CC) @<<
$(CPPFLAGS) $<
<<
!else
.cpp{$(OBJDIR)}.obj:
- @$(CC) $(CPPFLAGS) { $< }
+ $(CC) $(CPPFLAGS) { $< }
{$(COMMON)}.cpp{$(OBJDIR)}.obj:
- @$(CC) $(CPPFLAGS) { $< }
+ $(CC) $(CPPFLAGS) { $< }
!endif
.asm{$(OBJDIR)}.obj:
- @$(AS) $(AFLAGS) $<
+ $(AS) $(AFLAGS) $<
{$(COMMON)}.asm{$(OBJDIR)}.obj:
- @$(AS) $(AFLAGS) $<
+ $(AS) $(AFLAGS) $<
$(RES): $(RC_NAME).rc $(COMINC)\farversion.hpp $(COMINC)\plugin.hpp
- @$(RC) /nologo /I"$(COMINC)" $(ENV_INC_OPT) $(RC_WIDE) /fo"$(RES)" $(RC_NAME).rc
+ $(RC) /nologo /I"$(COMINC)" $(ENV_INC_OPT) $(RC_WIDE) /fo"$(RES)" $(RC_NAME).rc
-$(OUTDIR)\vc_crt_fix.obj: $(COMMON)\vc_crt_fix.asm
- $(AS) $(ASFLAGS) $(COMMON)\vc_crt_fix.asm
+$(OBJDIR)\vc_crt_fix.obj: $(COMMON)\vc_crt_fix.asm
+ $(AS) $(AFLAGS) $(COMMON)\vc_crt_fix.asm
+
+$(OBJDIR)\vc_crt_fix_impl.obj: $(COMMON)\vc_crt_fix_impl.cpp
+ $(CPP) $(CPPFLAGS) $(FIXCRT_CPPFLAGS) $(COMMON)\vc_crt_fix_impl.cpp
-$(OUTDIR)\vc_crt_fix_impl.obj: $(COMMON)\vc_crt_fix_impl.cpp
- $(CPP) $(CPPFLAGS) $(COMMON)\vc_crt_fix_impl.cpp
.PHONY: dirs
dirs:
!ifdef INSTALL
- @if not exist "$(WORKDIR)\$(NULL)" mkdir "$(WORKDIR)"
+ if not exist "$(WORKDIR)\$(NULL)" mkdir "$(WORKDIR)"
!endif
- @if not exist "$(OBJDIR)\$(NULL)" mkdir "$(OBJDIR)"
- @if not exist "$(OUTDIR)\$(NULL)" mkdir "$(OUTDIR)"
- @if not exist "$(OUTDIR)$(ADDOUTDIR)\$(NULL)" mkdir "$(OUTDIR)$(ADDOUTDIR)"
+ if not exist "$(OBJDIR)\$(NULL)" mkdir "$(OBJDIR)"
+ if not exist "$(OUTDIR)\$(NULL)" mkdir "$(OUTDIR)"
+ if not exist "$(OUTDIR)$(ADDOUTDIR)\$(NULL)" mkdir "$(OUTDIR)$(ADDOUTDIR)"