Skip to content
This repository was archived by the owner on Jun 1, 2023. It is now read-only.

Commit 6d7ee10

Browse files
steve-m-hayrurban
authored andcommitted
Update nmake for VS 2017
Patch by Eric Lindblad, who asked for his email address not to be published. [perl #131487] (cherry picked from commit 58998b2)
1 parent 0c70983 commit 6d7ee10

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

win32/Makefile

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,8 @@ CCTYPE = MSVC110FREE
149149
#CCTYPE = MSVC140
150150
# Visual C++ 2015 Express Edition (aka Visual C++ 14.0) (free version)
151151
#CCTYPE = MSVC140FREE
152+
# Visual C++ 2017 (aka Visual C++ 14.1) (all versions)
153+
#CCTYPE = MSVC141
152154

153155
#
154156
# If you are using Intel C++ Compiler uncomment this
@@ -228,7 +230,7 @@ CCTYPE = MSVC110FREE
228230
# Running VCVARS32.BAT is *required* when using Visual C.
229231
# Some versions of Visual C don't define MSVCDIR in the environment,
230232
# so you may have to set CCHOME explicitly (spaces in the path name should
231-
# not be quoted)
233+
# not be quoted), for MSVC141 replace $(MSVCDIR) with $(VCToolsInstallDir)
232234
#
233235
CCHOME = $(MSVCDIR)
234236
CCINCDIR = $(CCHOME)\include
@@ -498,7 +500,8 @@ DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT
498500
LOCDEFS = -DPERLDLL -DPERL_CORE
499501
CXX_FLAG = -TP -EHsc
500502

501-
!IF "$(CCTYPE)" == "MSVC140" || "$(CCTYPE)" == "MSVC140FREE"
503+
!IF "$(CCTYPE)" == "MSVC140" || "$(CCTYPE)" == "MSVC140FREE" \
504+
|| "$(CCTYPE)" == "MSVC141"
502505
LIBC = ucrt.lib
503506
!ELSE
504507
LIBC = msvcrt.lib
@@ -513,7 +516,8 @@ OPTIMIZE = -Od -MD -Zi
513516
LINK_DBG = -debug
514517
!ELSE
515518
!IF "$(CFG)" == "DebugFull"
516-
!IF "$(CCTYPE)" == "MSVC140" || "$(CCTYPE)" == "MSVC140FREE"
519+
!IF "$(CCTYPE)" == "MSVC140" || "$(CCTYPE)" == "MSVC140FREE" \
520+
|| "$(CCTYPE)" == "MSVC141"
517521
LIBC = ucrtd.lib
518522
!ELSE
519523
LIBC = msvcrtd.lib
@@ -553,7 +557,8 @@ DEFINES = $(DEFINES) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
553557
!ENDIF
554558

555559
# Likewise for deprecated Winsock APIs in VC++ 14.0 for now.
556-
!IF "$(CCTYPE)" == "MSVC140" || "$(CCTYPE)" == "MSVC140FREE"
560+
!IF "$(CCTYPE)" == "MSVC140" || "$(CCTYPE)" == "MSVC140FREE" \
561+
|| "$(CCTYPE)" == "MSVC141"
557562
DEFINES = $(DEFINES) -D_WINSOCK_DEPRECATED_NO_WARNINGS
558563
!ENDIF
559564

@@ -577,7 +582,8 @@ LIBBASEFILES = \
577582
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib \
578583
version.lib odbc32.lib odbccp32.lib comctl32.lib
579584

580-
!IF "$(CCTYPE)" == "MSVC140" || "$(CCTYPE)" == "MSVC140FREE"
585+
!IF "$(CCTYPE)" == "MSVC140" || "$(CCTYPE)" == "MSVC140FREE" \
586+
|| "$(CCTYPE)" == "MSVC141"
581587
! IF "$(CFG)" == "DebugFull"
582588
LIBBASEFILES = $(LIBBASEFILES) msvcrtd.lib vcruntimed.lib
583589
! ELSE
@@ -628,6 +634,8 @@ PRIV_LINK_FLAGS = $(PRIV_LINK_FLAGS) "/manifestdependency:type='Win32' name='Mic
628634
RSC_FLAGS = -DINCLUDE_MANIFEST
629635
!ENDIF
630636

637+
# VS 2017 (VC++ 14.1) requires at minimum Windows 7 SP1 (with latest Windows Updates)
638+
631639
# For XP support in >= VS 2013 (VC++ 12.0), subsystem is always in Config.pm
632640
# LINK_FLAGS else subsystem is only needed for EXE building, not XS DLL building
633641
# Console vs GUI makes no difference for DLLs, so use default for cleaner
@@ -988,7 +996,7 @@ perlglob$(o) : perlglob.c
988996
@echo.>>$@
989997
@echo #ifndef _config_h_footer_>>$@
990998
@echo #define _config_h_footer_>>$@
991-
!IF "$(CCTYPE)" == "MSVC140" || "$(CCTYPE)" == "MSVC140FREE"
999+
!IF "$(CCTYPE)" == "MSVC140" || "$(CCTYPE)" == "MSVC140FREE" || "$(CCTYPE)" == "MSVC141"
9921000
@echo #undef FILE_ptr>>$@
9931001
@echo #define FILE_ptr(fp) PERLIO_FILE_ptr(fp)>>$@
9941002
@echo #undef FILE_cnt>>$@

0 commit comments

Comments
 (0)