summaryrefslogtreecommitdiff
path: root/win32/Makefile
diff options
context:
space:
mode:
authorSteve Hay <steve.m.hay@googlemail.com>2015-07-25 13:41:42 +0100
committerSteve Hay <steve.m.hay@googlemail.com>2015-07-25 14:05:04 +0100
commitb2e53f8c24a0cbc953dd050caf9e040731252cc6 (patch)
tree8c86c0fc0b3a49de65f528edbda2ffeb368d8ad8 /win32/Makefile
parentc362894ac718bfc04eb640500d7507ea87da1de3 (diff)
downloadperl-b2e53f8c24a0cbc953dd050caf9e040731252cc6.tar.gz
Correct VS2015's impending CCTYPE
VS2013 was version 12.0, so VS2015 would be expected to be 13.0, not 15.0, so the CCTYPE would be MSVC130, not MSVC150. However, VS2015 (just released on 20 July) actually installs to somewhere like "C:\Program Files (x86)\ Microsoft Visual Studio 14.0" and sets "VisualStudioVersion=14.0" in the environment, so they seem to have skipped version 13.0 (superstition?!) and gone to version 14.0 instead. So our next CCTYPE will be MSVC140. Unfortunately, it currently doesn't work. Changes to the CRT give linker problems that are fixed by dropping -nodefaultlib, but changes to the FILE structure are more of a problem. Tweaks in Makefile and config_sh.PL to undef d_stdiobase/USE_STDIO_BASE and d_sdtsdtio/USE_STDIO_PTR etc go some way to help, but there is still trouble compiling perlio.c (which accesses f->_file in PerlIOStdio_invalidate_fileno) and win32/win32.c (which accesses (pf)->_flag in win32_fdupopen). (This commit also changes referencs to version N.x to simply N.0 since they all are .0 only, except for the .NET 2002/2003 releases, which were 7.0/7.1 respectively.)
Diffstat (limited to 'win32/Makefile')
-rw-r--r--win32/Makefile38
1 files changed, 19 insertions, 19 deletions
diff --git a/win32/Makefile b/win32/Makefile
index 807c444c65..a2fb2aa0aa 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -98,33 +98,33 @@ USE_LARGE_FILES = define
#
# uncomment exactly one of the following
#
-# Visual C++ 6.x (aka Visual C++ 98)
+# Visual C++ 6.0 (aka Visual C++ 98)
CCTYPE = MSVC60
-# Visual C++ .NET 2002/2003 (aka Visual C++ 7.x) (full version)
+# Visual C++ .NET 2002/2003 (aka Visual C++ 7.0/7.1) (full version)
#CCTYPE = MSVC70
-# Visual C++ Toolkit 2003 (aka Visual C++ 7.x) (free command-line tools)
+# Visual C++ Toolkit 2003 (aka Visual C++ 7.1) (free command-line tools)
#CCTYPE = MSVC70FREE
# Windows Server 2003 SP1 Platform SDK (April 2005)
#CCTYPE = SDK2003SP1
-# Visual C++ 2005 (aka Visual C++ 8.x) (full version)
+# Visual C++ 2005 (aka Visual C++ 8.0) (full version)
#CCTYPE = MSVC80
-# Visual C++ 2005 Express Edition (aka Visual C++ 8.x) (free version)
+# Visual C++ 2005 Express Edition (aka Visual C++ 8.0) (free version)
#CCTYPE = MSVC80FREE
-# Visual C++ 2008 (aka Visual C++ 9.x) (full version)
+# Visual C++ 2008 (aka Visual C++ 9.0) (full version)
#CCTYPE = MSVC90
-# Visual C++ 2008 Express Edition (aka Visual C++ 9.x) (free version)
+# Visual C++ 2008 Express Edition (aka Visual C++ 9.0) (free version)
#CCTYPE = MSVC90FREE
-# Visual C++ 2010 (aka Visual C++ 10.x) (full version)
+# Visual C++ 2010 (aka Visual C++ 10.0) (full version)
#CCTYPE = MSVC100
-# Visual C++ 2010 Express Edition (aka Visual C++ 10.x) (free version)
+# Visual C++ 2010 Express Edition (aka Visual C++ 10.0) (free version)
#CCTYPE = MSVC100FREE
-# Visual C++ 2012 (aka Visual C++ 11.x) (full version)
+# Visual C++ 2012 (aka Visual C++ 11.0) (full version)
#CCTYPE = MSVC110
-# Visual C++ 2012 Express Edition (aka Visual C++ 11.x) (free version)
+# Visual C++ 2012 Express Edition (aka Visual C++ 11.0) (free version)
#CCTYPE = MSVC110FREE
-# Visual C++ 2013 (aka Visual C++ 12.x) (full version)
+# Visual C++ 2013 (aka Visual C++ 12.0) (full version)
#CCTYPE = MSVC120
-# Visual C++ 2013 Express Edition (aka Visual C++ 12.x) (free version)
+# Visual C++ 2013 Express Edition (aka Visual C++ 12.0) (free version)
#CCTYPE = MSVC120FREE
#
@@ -385,13 +385,13 @@ ARCHNAME = $(ARCHNAME)-64int
!ENDIF
!ENDIF
-# All but the free version of VC++ 7.x can load DLLs on demand. Makes the test
+# All but the free version of VC++ 7.1 can load DLLs on demand. Makes the test
# suite run in about 10% less time.
!IF "$(CCTYPE)" != "MSVC70FREE"
DELAYLOAD = -DELAYLOAD:ws2_32.dll delayimp.lib
!ENDIF
-# Visual C++ 2005 and 2008 (VC++ 8.x and 9.x) create manifest files for EXEs and
+# Visual C++ 2005 and 2008 (VC++ 8.0 and 9.0) create manifest files for EXEs and
# DLLs. These either need copying everywhere with the binaries, or else need
# embedding in them otherwise MSVCR80.dll or MSVCR90.dll won't be found. For
# simplicity, embed them if they exist (and delete them afterwards so that they
@@ -483,7 +483,7 @@ DEFINES = $(DEFINES) -DWIN64 -DCONSERVATIVE
OPTIMIZE = $(OPTIMIZE) -fp:precise
!ENDIF
-# For now, silence warnings from VC++ 8.x onwards about "unsafe" CRT functions
+# For now, silence warnings from VC++ 8.0 onwards about "unsafe" CRT functions
# and POSIX CRT function names being deprecated.
!IF "$(PREMSVC80)" == "undef"
DEFINES = $(DEFINES) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
@@ -552,12 +552,12 @@ LINK_FLAGS = $(LINK_FLAGS) "/manifestdependency:type='Win32' name='Microsoft.Win
RSC_FLAGS = -DINCLUDE_MANIFEST
!ENDIF
-# For XP support in >= 2013, subsystem is always in Config.pm LINK_FLAGS
-# else subsystem is only needed for EXE building, not XS DLL building
+# For XP support in >= VS 2013 (VC++ 12.0), subsystem is always in Config.pm
+# LINK_FLAGS else subsystem is only needed for EXE building, not XS DLL building
# Console vs GUI makes no difference for DLLs, so use default for cleaner
# building cmd lines
!IF "$(CCTYPE)" == "MSVC120" || "$(CCTYPE)" == "MSVC120FREE" \
- || "$(CCTYPE)" == "MSVC150" || "$(CCTYPE)" == "MSVC150FREE"
+ || "$(CCTYPE)" == "MSVC140" || "$(CCTYPE)" == "MSVC140FREE"
! IF "$(WIN64)" == "define"
LINK_FLAGS = $(LINK_FLAGS) -subsystem:console,"5.02"
! ELSE