# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-#INST_VER = \5.25.2
+#INST_VER = \5.25.11
#
# Comment this out if you DON'T want your perl installation to have
#CCTYPE = MSVC120
# Visual C++ 2013 Express Edition (aka Visual C++ 12.0) (free version)
#CCTYPE = MSVC120FREE
+# Visual C++ 2015 (aka Visual C++ 14.0) (full version)
+#CCTYPE = MSVC140
+# Visual C++ 2015 Express Edition (aka Visual C++ 14.0) (free version)
+#CCTYPE = MSVC140FREE
#
# If you are using Intel C++ Compiler uncomment this
LOCDEFS = -DPERLDLL -DPERL_CORE
CXX_FLAG = -TP -EHsc
+!IF "$(CCTYPE)" == "MSVC140" || "$(CCTYPE)" == "MSVC140FREE"
+LIBC = ucrt.lib
+!ELSE
LIBC = msvcrt.lib
+!ENDIF
!IF "$(CFG)" == "Debug"
OPTIMIZE = -Od -MD -Zi -DDEBUGGING
LINK_DBG = -debug
!ELSE
!IF "$(CFG)" == "DebugFull"
+!IF "$(CCTYPE)" == "MSVC140" || "$(CCTYPE)" == "MSVC140FREE"
+LIBC = ucrtd.lib
+!ELSE
LIBC = msvcrtd.lib
+!ENDIF
OPTIMIZE = -Od -MDd -Zi -D_DEBUG -DDEBUGGING
LINK_DBG = -debug
!ELSE
DEFINES = $(DEFINES) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
!ENDIF
+# Likewise for deprecated Winsock APIs in VC++ 14.0 for now.
+!IF "$(CCTYPE)" == "MSVC140" || "$(CCTYPE)" == "MSVC140FREE"
+DEFINES = $(DEFINES) -D_WINSOCK_DEPRECATED_NO_WARNINGS
+!ENDIF
+
# In VS 2005 (VC++ 8.0) Microsoft changes time_t from 32-bit to
# 64-bit, even in 32-bit mode. It also provides the _USE_32BIT_TIME_T
# preprocessor option to revert back to the old functionality for
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib \
version.lib odbc32.lib odbccp32.lib comctl32.lib
+!IF "$(CCTYPE)" == "MSVC140" || "$(CCTYPE)" == "MSVC140FREE"
+! IF "$(CFG)" == "DebugFull"
+LIBBASEFILES = $(LIBBASEFILES) msvcrtd.lib vcruntimed.lib
+! ELSE
+LIBBASEFILES = $(LIBBASEFILES) msvcrt.lib vcruntime.lib
+! ENDIF
+!ENDIF
+
# Avoid __intel_new_proc_init link error for libircmt.
# libmmd is /MD equivelent, other variants exist.
# libmmd is Intel C's math addon funcs to MS CRT, contains long doubles, C99,
..\utils\splain \
..\utils\perlbug \
..\utils\pl2pm \
- ..\utils\c2ph \
- ..\utils\pstruct \
..\utils\h2xs \
..\utils\perldoc \
..\utils\perlivp \
@echo.>>$@
@echo #ifndef _config_h_footer_>>$@
@echo #define _config_h_footer_>>$@
+!IF "$(CCTYPE)" == "MSVC140" || "$(CCTYPE)" == "MSVC140FREE"
+ @echo #undef FILE_ptr>>$@
+ @echo #define FILE_ptr(fp) PERLIO_FILE_ptr(fp)>>$@
+ @echo #undef FILE_cnt>>$@
+ @echo #define FILE_cnt(fp) PERLIO_FILE_cnt(fp)>>$@
+ @echo #undef FILE_base>>$@
+ @echo #define FILE_base(fp) PERLIO_FILE_base(fp)>>$@
+ @echo #undef FILE_bufsiz>>$@
+ @echo #define FILE_bufsiz(fp) (PERLIO_FILE_cnt(fp) + PERLIO_FILE_ptr(fp) - PERLIO_FILE_base(fp))>>$@
+ @echo #define I_STDBOOL>>$@
+!ENDIF
@echo #undef Off_t>>$@
@echo #undef LSEEKSIZE>>$@
@echo #undef Off_t_size>>$@
copy ..\README.tw ..\pod\perltw.pod
copy ..\README.vos ..\pod\perlvos.pod
copy ..\README.win32 ..\pod\perlwin32.pod
- copy ..\pod\perldelta.pod ..\pod\perl5252delta.pod
+ copy ..\pod\perldelta.pod ..\pod\perl52511delta.pod
cd ..\win32
$(PERLEXE) $(PL2BAT) $(UTILS)
$(MINIPERL) -I..\lib ..\autodoc.pl ..
-if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
-if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
-cd $(PODDIR) && del /f *.html *.bat roffitall \
- perl5252delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+ perl52511delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
perlapi.pod perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \
perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \
perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \
perlsolaris.pod perlsymbian.pod perlsynology.pod perltoc.pod \
perltru64.pod perltw.pod perluniprops.pod perlvos.pod \
perlwin32.pod
- -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \
+ -cd ..\utils && del /f h2ph splain perlbug pl2pm h2xs \
perldoc perlivp libnetcfg enc2xs encguess piconv cpan *.bat \
xsubpp pod2html instmodsh json_pp prove ptar ptardiff ptargrep shasum corelist zipdetails
-del /f ..\config.sh perlmain.c dlutils.c config.h.new \