# Windows SDK 64-bit compiler and tools
#
# This is set up to build a perl.exe that runs off a shared library
-# (perl531.dll). Also makes individual DLLs for the XS extensions.
+# (perl533.dll). Also makes individual DLLs for the XS extensions.
#
##
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-#INST_VER *= \5.31.9
+#INST_VER *= \5.33.5
#
# Comment this out if you DON'T want your perl installation to have
USE_IMP_SYS *= define
#
-# Comment this out if you don't want to enable large file support for
-# some reason. Should normally only be changed to maintain compatibility
-# with an older release of perl.
-#
-USE_LARGE_FILES *= define
-
-#
# Uncomment this if you're building a 32-bit perl and want 64-bit integers.
# (If you're building a 64-bit perl then you will have 64-bit integers whether
# or not this is uncommented.)
# set this to additionally provide a statically linked perl-static.exe.
# Note that dynamic loading will not work with this perl, so you must
# include required modules statically using the STATIC_EXT or ALL_STATIC
-# variables below. A static library perl531s.lib will also be created.
+# variables below. A static library perl533s.lib will also be created.
# Ordinary perl.exe is not affected by this option.
#
#BUILD_STATIC *= define
#
# set this to your email address (perl will guess a value from
-# from your loginname and your hostname, which may not be right)
+# your loginname and your hostname, which may not be right)
#
#EMAIL *=
USE_MULTI *= undef
USE_ITHREADS *= undef
USE_IMP_SYS *= undef
-USE_LARGE_FILES *= undef
USE_64_BIT_INT *= undef
USE_LONG_DOUBLE *= undef
DEFAULT_INC_EXCLUDES_DOT *= undef
if exist $@.manifest del $@.manifest
EMBED_DLL_MANI = if exist $@.manifest mt -nologo -manifest $@.manifest -outputresource:$@;2 && \
if exist $@.manifest del $@.manifest
+# This one is for perl.exe which already has an embedded manifest, so we want to
+# append to it, not replace it.
+APPEND_EXE_MANI = if exist $@.manifest mt -nologo -manifest $@.manifest -updateresource:$@;1 && \
+ if exist $@.manifest del $@.manifest
# Most relevant compiler-specific options fall into two groups:
# either pre-MSVC80 or MSVC80 onwards, so define a macro for this.
CFLAGS_O = $(CFLAGS) $(BUILDOPT)
-.IF "$(PREMSVC80)" == "undef"
-PRIV_LINK_FLAGS += "/manifestdependency:type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"
-.ELSE
-RSC_FLAGS = -DINCLUDE_MANIFEST
-.ENDIF
+RSC_FLAGS =
# VS 2017 (VC++ 14.1) requires at minimum Windows 7 SP1 (with latest Windows Updates)
CFGSH_TMPL = config.gc
CFGH_TMPL = config_H.gc
-PERLIMPLIB = $(COREDIR)\libperl531$(a)
-PERLSTATICLIB = ..\libperl531s$(a)
+PERLIMPLIB = $(COREDIR)\libperl533$(a)
+PERLSTATICLIB = ..\libperl533s$(a)
INT64 = long long
.ELSE
# makedef.pl must be updated if this changes, and this should normally
# only change when there is an incompatible revision of the public API.
-PERLIMPLIB *= $(COREDIR)\perl531$(a)
-PERLEXPLIB *= $(COREDIR)\perl531.exp
-PERLSTATICLIB *= ..\perl531s$(a)
-PERLDLL = ..\perl531.dll
-PERLDLLBASE = perl531.dll
+PERLIMPLIB *= $(COREDIR)\perl533$(a)
+PERLEXPLIB *= $(COREDIR)\perl533.exp
+PERLSTATICLIB *= ..\perl533s$(a)
+PERLDLL = ..\perl533.dll
+PERLDLLBASE = perl533.dll
#EUMM on Win32 isn't ready for parallel make, so only allow this file to be parallel
#$(MAKE) will contain the -P that this makefile was called with, which is bad for
..\mg.c \
..\numeric.c \
..\pad.c \
- ..\perlapi.c \
..\perly.c \
..\pp_sort.c \
..\reentr.c \
usemultiplicity=$(USE_MULTI) ~ \
use64bitint=$(USE_64_BIT_INT) ~ \
uselongdouble=$(USE_LONG_DOUBLE) ~ \
- uselargefiles=$(USE_LARGE_FILES) ~ \
usesitecustomize=$(USE_SITECUST) ~ \
default_inc_excludes_dot=$(DEFAULT_INC_EXCLUDES_DOT) ~ \
LINK_FLAGS=$(LINK_FLAGS) ~ \
$(GLOBEXE) : perlglob.c
.IF "$(CCTYPE)" == "GCC"
- $(LINK32) $(OPTIMIZE) $(BLINK_FLAGS) -mconsole -o $@ perlglob.c $(LIBFILES)
+ $(LINK32) $(EXTRACFLAGS) $(OPTIMIZE) $(BLINK_FLAGS) -mconsole -o $@ perlglob.c $(LIBFILES)
.ELSE
- $(CC) $(OPTIMIZE) $(PDBOUT) -Fe$@ perlglob.c -link $(BLINK_FLAGS) \
+ $(CC) $(EXTRACFLAGS) $(OPTIMIZE) $(PDBOUT) -Fe$@ perlglob.c -link $(BLINK_FLAGS) \
setargv$(o) $(LIBFILES) && $(EMBED_EXE_MANI)
.ENDIF
@(echo.&& \
echo #ifndef _config_h_footer_&& \
echo #define _config_h_footer_&& \
- echo #undef Off_t&& \
- echo #undef LSEEKSIZE&& \
- echo #undef Off_t_size&& \
echo #undef PTRSIZE&& \
echo #undef SSize_t&& \
echo #undef HAS_ATOLL&& \
echo #define FILE_bufsiz^(fp^) ^(PERLIO_FILE_cnt^(fp^) + PERLIO_FILE_ptr^(fp^) - PERLIO_FILE_base^(fp^)^)&& \
echo #define I_STDBOOL)>> config.h
.ENDIF
-.IF "$(USE_LARGE_FILES)"=="define"
- @(echo #define Off_t $(INT64)&& \
- echo #define LSEEKSIZE ^8&& \
- echo #define Off_t_size ^8)>> config.h
-.ELSE
- @(echo #define Off_t long&& \
- echo #define LSEEKSIZE ^4&& \
- echo #define Off_t_size ^4)>> config.h
-.ENDIF
.IF "$(WIN64)"=="define"
.IF "$(CCTYPE)" == "GCC"
@(echo #define LONG_DOUBLESIZE ^16)>> config.h
$(CC) -c $(CFLAGS) $(MINIBUILDOPT) -DPERL_IS_MINIPERL $(OBJOUT_FLAG)$@ $(PDBOUT) $(*B).c
# -DPERL_IMPLICIT_SYS needs C++ for perllib.c
-# rules wrapped in .IFs break Win9X build (we end up with unbalanced []s unless
+# rules wrapped in .IFs break Win9X build (we end up with unbalanced []s
# unless the .IF is true), so instead we use a .ELSE with the default.
# This is the only file that depends on perlhost.h, vmem.h, and vdir.h
.ELSE
$(LINK32) -out:$@ $(BLINK_FLAGS) \
$(PERLEXE_OBJ) $(PERLEXE_RES) $(PERLIMPLIB) $(LIBFILES) $(SETARGV_OBJ)
- $(EMBED_EXE_MANI)
+ $(APPEND_EXE_MANI)
.ENDIF
copy $(PERLEXE) $(WPERLEXE)
$(MINIPERL) -I..\lib bin\exetype.pl $(WPERLEXE) WINDOWS
.ELSE
$(LINK32) -out:$@ $(BLINK_FLAGS) \
$(PERLEXEST_OBJ) $(PERLEXE_RES) $(PERLSTATICLIB) $(LIBFILES) $(SETARGV_OBJ)
- $(EMBED_EXE_MANI)
+ $(APPEND_EXE_MANI)
.ENDIF
#-------------------------------------------------------------------------------
copy ..\README.qnx ..\pod\perlqnx.pod
copy ..\README.riscos ..\pod\perlriscos.pod
copy ..\README.solaris ..\pod\perlsolaris.pod
- copy ..\README.symbian ..\pod\perlsymbian.pod
copy ..\README.synology ..\pod\perlsynology.pod
copy ..\README.tru64 ..\pod\perltru64.pod
copy ..\README.tw ..\pod\perltw.pod
copy ..\README.vos ..\pod\perlvos.pod
copy ..\README.win32 ..\pod\perlwin32.pod
- copy ..\pod\perldelta.pod ..\pod\perl5319delta.pod
+ copy ..\pod\perldelta.pod ..\pod\perl5335delta.pod
$(MINIPERL) -I..\lib $(PL2BAT) $(UTILS)
$(MINIPERL) -I..\lib ..\autodoc.pl ..
$(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q ..
-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 \
- perl5319delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+ perl5335delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
perlapi.pod perlbs2000.pod perlcn.pod perlcygwin.pod \
perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \
perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \
perllinux.pod perlmacos.pod perlmacosx.pod perlmodlib.pod \
perlnetware.pod perlopenbsd.pod perlos2.pod perlos390.pod \
perlos400.pod perlplan9.pod perlqnx.pod perlriscos.pod \
- perlsolaris.pod perlsymbian.pod perlsynology.pod perltoc.pod \
- perltru64.pod perltw.pod perluniprops.pod perlvos.pod \
- perlwin32.pod
+ perlsolaris.pod perlsynology.pod perltoc.pod perltru64.pod \
+ perltw.pod perluniprops.pod perlvos.pod perlwin32.pod
-cd ..\utils && del /f h2ph splain perlbug pl2pm h2xs \
perldoc perlivp libnetcfg enc2xs encguess piconv cpan streamzip *.bat \
xsubpp pod2html instmodsh json_pp prove ptar ptardiff ptargrep shasum corelist zipdetails