X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/eaf932ab20d5d50a1bb0904d6a41a4af99081b08..16279618f4fddf32c6336e8b43059c0392284359:/win32/makefile.mk diff --git a/win32/makefile.mk b/win32/makefile.mk index 191e6cb..de670b5 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -6,7 +6,7 @@ # Windows SDK 64-bit compiler and tools # # This is set up to build a perl.exe that runs off a shared library -# (perl523.dll). Also makes individual DLLs for the XS extensions. +# (perl527.dll). Also makes individual DLLs for the XS extensions. # ## @@ -44,7 +44,7 @@ INST_TOP *= $(INST_DRV)\perl # versioned installation can be obtained by setting INST_TOP above to a # path that includes an arbitrary version string. # -#INST_VER *= \5.23.5 +#INST_VER *= \5.27.0 # # Comment this out if you DON'T want your perl installation to have @@ -108,6 +108,12 @@ USE_LARGE_FILES *= define #USE_LONG_DOUBLE *=define # +# Comment this out if you want the legacy default behavior of including '.' at +# the end of @INC. +# +DEFAULT_INC_EXCLUDES_DOT *= define + +# # Uncomment this if you want to disable looking up values from # HKEY_CURRENT_USER\Software\Perl and HKEY_LOCAL_MACHINE\Software\Perl in # the Registry. @@ -145,8 +151,12 @@ USE_LARGE_FILES *= define #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 # MinGW or mingw-w64 with gcc-3.4.5 or later -CCTYPE *= GCC +#CCTYPE = GCC # # If you are using GCC, 4.3 or later by default we add the -fwrapv option. @@ -212,7 +222,7 @@ CCTYPE *= GCC # 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 perl523s.lib will also be created. +# variables below. A static library perl527s.lib will also be created. # Ordinary perl.exe is not affected by this option. # #BUILD_STATIC *= define @@ -233,11 +243,8 @@ CCTYPE *= GCC # so you may have to set CCHOME explicitly (spaces in the path name should # not be quoted) # -.IF "$(CCTYPE)" == "GCC" -CCHOME *= C:\MinGW -.ELSE -CCHOME *= $(MSVCDIR) -.ENDIF + +#CCHOME *= C:\MinGW # # uncomment this if you are using x86_64-w64-mingw32 cross-compiler @@ -247,20 +254,6 @@ CCHOME *= $(MSVCDIR) #GCCCROSS *= define # -# Following sets $Config{incpath} and $Config{libpth} -# - -.IF "$(GCCCROSS)" == "define" -CCINCDIR *= $(CCHOME)\x86_64-w64-mingw32\include -CCLIBDIR *= $(CCHOME)\x86_64-w64-mingw32\lib -CCDLLDIR *= $(CCLIBDIR) -.ELSE -CCINCDIR *= $(CCHOME)\include -CCLIBDIR *= $(CCHOME)\lib -CCDLLDIR *= $(CCHOME)\bin -.ENDIF - -# # Additional compiler flags can be specified here. # BUILDOPT *= $(BUILDOPTEXTRA) @@ -317,8 +310,10 @@ USE_IMP_SYS *= undef USE_LARGE_FILES *= undef USE_64_BIT_INT *= undef USE_LONG_DOUBLE *= undef +DEFAULT_INC_EXCLUDES_DOT *= undef USE_NO_REGISTRY *= undef + .IF "$(USE_IMP_SYS)" == "define" PERL_MALLOC = undef .ENDIF @@ -355,6 +350,43 @@ BUILDOPT += -DPERL_IMPLICIT_SYS BUILDOPT += -DWIN32_NO_REGISTRY .ENDIF +#no explicit CCTYPE given, do auto detection +.IF "$(CCTYPE)" == "" +GCCTARGET *= $(shell gcc -dumpmachine 2>NUL & exit /b 0) +#do we have a GCC? +.IF "$(GCCTARGET)" != "" +CCTYPE = GCC +.ELSE +#use var to capture 1st line only, not 8th token of lines 2 & 3 in cl.exe output +MSVCVER := $(shell (set MSVCVER=) & (for /f "tokens=8 delims=.^ " \ + %i in ('cl ^2^>^&1') do @if not defined MSVCVER set /A "MSVCVER=%i-6")) +CCTYPE := MSVC$(MSVCVER)0 +.ENDIF +.ENDIF + + +.IF "$(CCHOME)" == "" +.IF "$(CCTYPE)" == "GCC" +CCHOME *= C:\MinGW +.ELSE +CCHOME *= $(MSVCDIR) +.ENDIF +.ENDIF + +# +# Following sets $Config{incpath} and $Config{libpth} +# + +.IF "$(GCCCROSS)" == "define" +CCINCDIR *= $(CCHOME)\x86_64-w64-mingw32\include +CCLIBDIR *= $(CCHOME)\x86_64-w64-mingw32\lib +CCDLLDIR *= $(CCLIBDIR) +.ELSE +CCINCDIR *= $(CCHOME)\include +CCLIBDIR *= $(CCHOME)\lib +CCDLLDIR *= $(CCHOME)\bin +.ENDIF + PROCESSOR_ARCHITECTURE *= x86 .IF "$(WIN64)" == "undef" @@ -498,11 +530,9 @@ LIBC = #LIBC = -lmsvcrt # same libs as MSVC -LIBFILES = $(LIBC) \ - -lmoldname -lkernel32 -luser32 -lgdi32 \ - -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 \ - -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr \ - -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 +LIBFILES = $(LIBC) -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool \ + -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 \ + -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 .IF "$(CFG)" == "Debug" OPTIMIZE = -g -O2 -DDEBUGGING @@ -587,7 +617,11 @@ DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT 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 @@ -596,7 +630,11 @@ LINK_DBG = -debug OPTIMIZE = -Od -MD -Zi LINK_DBG = -debug .ELIF "$(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 @@ -629,6 +667,11 @@ OPTIMIZE += -fp:precise 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 @@ -643,11 +686,18 @@ BUILDOPT += -D_USE_32BIT_TIME_T .ENDIF .ENDIF -LIBBASEFILES = \ - oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib \ - comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \ - netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib \ - version.lib odbc32.lib odbccp32.lib comctl32.lib +LIBBASEFILES = oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib \ + comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \ + 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 += msvcrtd.lib vcruntimed.lib +.ELSE +LIBBASEFILES += msvcrt.lib vcruntime.lib +.ENDIF +.ENDIF # Avoid __intel_new_proc_init link error for libircmt. # libmmd is /MD equivelent, other variants exist. @@ -691,7 +741,7 @@ TESTPREPGCC = CFLAGS_O = $(CFLAGS) $(BUILDOPT) .IF "$(PREMSVC80)" == "undef" -LINK_FLAGS += "/manifestdependency:type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'" +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 @@ -708,10 +758,9 @@ LINK_FLAGS += -subsystem:console,"5.02" .ELSE LINK_FLAGS += -subsystem:console,"5.01" .ENDIF -PRIV_LINK_FLAGS = .ELIF "$(CCTYPE)" != "GCC" -PRIV_LINK_FLAGS = -subsystem:console +PRIV_LINK_FLAGS += -subsystem:console .ENDIF BLINK_FLAGS = $(PRIV_LINK_FLAGS) $(LINK_FLAGS) @@ -819,14 +868,12 @@ UTILS = \ ..\utils\splain \ ..\utils\perlbug \ ..\utils\pl2pm \ - ..\utils\c2ph \ - ..\utils\pstruct \ ..\utils\h2xs \ ..\utils\perldoc \ ..\utils\perlivp \ ..\utils\libnetcfg \ ..\utils\enc2xs \ - ..\utils\encguess \ + ..\utils\encguess \ ..\utils\piconv \ ..\utils\corelist \ ..\utils\cpan \ @@ -850,8 +897,8 @@ UTILS = \ CFGSH_TMPL = config.gc CFGH_TMPL = config_H.gc -PERLIMPLIB = ..\libperl523$(a) -PERLSTATICLIB = ..\libperl523s$(a) +PERLIMPLIB = $(COREDIR)\libperl527$(a) +PERLSTATICLIB = ..\libperl527s$(a) INT64 = long long .ELSE @@ -864,10 +911,10 @@ INT64 = __int64 # 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 *= ..\perl523$(a) -PERLEXPLIB *= ..\perl523.exp -PERLSTATICLIB *= ..\perl523s$(a) -PERLDLL = ..\perl523.dll +PERLIMPLIB *= $(COREDIR)\perl527$(a) +PERLEXPLIB *= $(COREDIR)\perl527.exp +PERLSTATICLIB *= ..\perl527s$(a) +PERLDLL = ..\perl527.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 @@ -989,10 +1036,8 @@ UUDMAP_H = ..\uudmap.h BITCOUNT_H = ..\bitcount.h MG_DATA_H = ..\mg_data.h GENERATED_HEADERS = $(UUDMAP_H) $(BITCOUNT_H) $(MG_DATA_H) -#a stub ppport.h must be generated so building XS modules, .c->.obj wise, will -#work, so this target also represents creating the COREDIR and filling it -HAVE_COREDIR = $(COREDIR)\ppport.h +HAVE_COREDIR = .\.coreheaders MICROCORE_OBJ = $(MICROCORE_SRC:db:+$(o)) CORE_OBJ = $(MICROCORE_OBJ) $(EXTRACORE_SRC:db:+$(o)) @@ -1058,6 +1103,7 @@ CFG_VARS = \ uselongdouble=$(USE_LONG_DOUBLE) ~ \ uselargefiles=$(USE_LARGE_FILES) ~ \ usesitecustomize=$(USE_SITECUST) ~ \ + default_inc_excludes_dot=$(DEFAULT_INC_EXCLUDES_DOT) ~ \ LINK_FLAGS=$(LINK_FLAGS) ~ \ optimize=$(OPTIMIZE) ~ \ ARCHPREFIX=$(ARCHPREFIX) ~ \ @@ -1067,7 +1113,7 @@ CFG_VARS = \ # Top targets # -all : CHECKDMAKE rebasePE $(UNIDATAFILES) Extensions_nonxs $(PERLSTATIC) +all : CHECKDMAKE rebasePE Extensions_nonxs $(PERLSTATIC) ..\regcomp$(o) : ..\regnodes.h ..\regcharclass.h @@ -1088,28 +1134,23 @@ CHECKDMAKE : @exit 1 .ENDIF -$(GLOBEXE) : perlglob$(o) +$(GLOBEXE) : perlglob.c .IF "$(CCTYPE)" == "GCC" - $(LINK32) $(BLINK_FLAGS) -mconsole -o $@ perlglob$(o) $(LIBFILES) + $(LINK32) $(OPTIMIZE) $(BLINK_FLAGS) -mconsole -o $@ perlglob.c $(LIBFILES) .ELSE - $(LINK32) $(BLINK_FLAGS) $(LIBFILES) -out:$@ perlglob$(o) setargv$(o) - $(EMBED_EXE_MANI) + $(CC) $(OPTIMIZE) $(PDBOUT) -Fe$@ perlglob.c -link $(BLINK_FLAGS) \ + setargv$(o) $(LIBFILES) && $(EMBED_EXE_MANI) .ENDIF -perlglob$(o) : perlglob.c - -config.w32 : $(CFGSH_TMPL) - copy $(CFGSH_TMPL) config.w32 - ..\git_version.h : $(HAVEMINIPERL) ..\make_patchnum.pl - cd .. && miniperl -Ilib make_patchnum.pl + $(MINIPERL) -I..\lib ..\make_patchnum.pl # make sure that we recompile perl.c if the git version changes ..\perl$(o) : ..\git_version.h -..\config.sh : config.w32 $(HAVEMINIPERL) config_sh.PL FindExt.pm +..\config.sh : $(CFGSH_TMPL) config_sh.PL FindExt.pm $(HAVEMINIPERL) $(MINIPERL) -I..\lib config_sh.PL --cfgsh-option-file \ - $(mktmp $(CFG_VARS)) config.w32 > ..\config.sh + $(mktmp $(CFG_VARS)) $(CFGSH_TMPL) > ..\config.sh # This target is for when changes to the main config.sh happen. # Edit config.gc, then make perl using GCC in a minimal configuration (i.e. @@ -1123,13 +1164,10 @@ regen_config_h: -$(MINIPERL) -I..\lib config_h.PL "ARCHPREFIX=$(ARCHPREFIX)" rename config.h $(CFGH_TMPL) -$(CONFIGPM): ..\config.sh config_h.PL +$(CONFIGPM) .\config.h .UPDATEALL: ..\config.sh config_h.PL $(MINIPERL) -I..\lib ..\configpm --chdir=.. - $(XCOPY) config.h $(COREDIR)\*.* -$(MINIPERL) -I..\lib config_h.PL "ARCHPREFIX=$(ARCHPREFIX)" -.\config.h : $(CONFIGPM) - # See the comment in Makefile.SH explaining this seemingly cranky ordering ..\lib\buildcustomize.pl : $(MINI_OBJ) ..\write_buildcustomize.pl .IF "$(CCTYPE)" == "GCC" @@ -1158,7 +1196,6 @@ $(MINIDIR)\.exists : $(CFGH_TMPL) # # MINIDIR generates config.h so miniperl.exe is not rebuilt when the 2nd # config.h is generated in CONFIGPM target, see also the comments for $(MINI_OBJ). - -if exist config.h del /f config.h copy $(CFGH_TMPL) config.h @(echo.&& \ echo #ifndef _config_h_footer_&& \ @@ -1204,6 +1241,17 @@ $(MINIDIR)\.exists : $(CFGH_TMPL) echo #undef NVgf&& \ echo #undef USE_LONG_DOUBLE&& \ echo #undef USE_CPLUSPLUS)>> config.h +.IF "$(CCTYPE)" == "MSVC140" || "$(CCTYPE)" == "MSVC140FREE" + @(echo #undef FILE_ptr&& \ + echo #undef FILE_cnt&& \ + echo #undef FILE_base&& \ + echo #undef FILE_bufsiz&& \ + echo #define FILE_ptr(fp) PERLIO_FILE_ptr(fp)&& \ + echo #define FILE_cnt(fp) PERLIO_FILE_cnt(fp)&& \ + echo #define FILE_base(fp) PERLIO_FILE_base(fp)&& \ + 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&& \ @@ -1353,32 +1401,17 @@ perldll.def : $(HAVEMINIPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl $(MINIPERL) -I..\lib -w ..\makedef.pl PLATFORM=win32 $(OPTIMIZE) $(DEFINES) \ $(BUILDOPT) CCTYPE=$(CCTYPE) TARG_DIR=..\ > perldll.def -$(PERLIMPLIB) : perldll.def +$(PERLEXPLIB) $(PERLIMPLIB) .UPDATEALL : perldll.def .IF "$(CCTYPE)" == "GCC" - $(IMPLIB) -k -d perldll.def -l $(PERLIMPLIB) + $(IMPLIB) -k -d perldll.def -l $(PERLIMPLIB) -e $(PERLEXPLIB) .ELSE #VC family lib -def:perldll.def -machine:$(ARCHITECTURE) /OUT:$(PERLIMPLIB) .ENDIF - $(XCOPY) $(PERLIMPLIB) $(COREDIR) - -#PERLEXPLIB is built in PERLIMPLIB -$(PERLEXPLIB): $(PERLIMPLIB) $(PERLDLL): $(PERLEXPLIB) $(PERLDLL_OBJ) $(PERLDLL_RES) Extensions_static .IF "$(CCTYPE)" == "GCC" - $(LINK32) -mdll -o $@ -Wl,--base-file -Wl,perl.base $(BLINK_FLAGS) \ - $(mktmp $(LKPRE) $(PERLDLL_OBJ) \ - $(shell @type Extensions_static) \ - $(LIBFILES) $(LKPOST)) - $(IMPLIB) --output-lib $(PERLIMPLIB) \ - --dllname $(PERLDLL:b).dll \ - --def perldll.def \ - --base-file perl.base \ - --output-exp perl.exp $(LINK32) -mdll -o $@ $(BLINK_FLAGS) \ - $(mktmp $(LKPRE) $(PERLDLL_OBJ) \ - $(shell @type Extensions_static) \ - $(LIBFILES) perl.exp $(LKPOST)) + $(PERLDLL_OBJ) $(shell @type Extensions_static) $(LIBFILES) $(PERLEXPLIB) .ELSE $(LINK32) -dll -out:$@ $(BLINK_FLAGS) \ @Extensions_static \ @@ -1408,32 +1441,27 @@ $(MINIDIR)\globals$(o) : $(GENERATED_HEADERS) $(GENUUDMAP) $(GENERATED_HEADERS) .UPDATEALL : ..\mg_raw.h .IF "$(CCTYPE)" == "GCC" - $(LINK32) $(CFLAGS_O) -o..\generate_uudmap.exe ..\generate_uudmap.c $(BLINK_FLAGS) \ - $(mktmp $(LKPRE) $(LIBFILES) $(LKPOST)) + $(LINK32) $(CFLAGS_O) -o..\generate_uudmap.exe ..\generate_uudmap.c \ + $(BLINK_FLAGS) -x $(mktmp $(LKPRE) $(LIBFILES) $(LKPOST)) .ELSE - $(CC) $(CFLAGS_O) -Fe..\generate_uudmap.exe ..\generate_uudmap.c @$(mktmp -link $(LIBFILES)) -link $(BLINK_FLAGS) + $(CC) $(CFLAGS_O) $(PDBOUT) -Fe..\generate_uudmap.exe ..\generate_uudmap.c @$(mktmp -link $(LIBFILES)) -link $(BLINK_FLAGS) $(EMBED_EXE_MANI:s/$@/..\generate_uudmap.exe/) .ENDIF $(GENUUDMAP) $(GENERATED_HEADERS) -#This generates a stub ppport.h & creates & fills /lib/CORE to allow for XS -#building .c->.obj wise (linking is a different thing). This taget is AKA -#$(HAVE_COREDIR). -$(COREDIR)\ppport.h : $(CORE_H) +MakePPPort : $(HAVEMINIPERL) $(CONFIGPM) + $(MINIPERL) -I..\lib ..\mkppport + +# also known as $(HAVE_COREDIR) +.\.coreheaders : $(CORE_H) $(XCOPY) *.h $(COREDIR)\*.* && $(RCOPY) include $(COREDIR)\*.* && $(XCOPY) ..\*.h $(COREDIR)\*.* rem. > $@ -perlmain.c : runperl.c - copy runperl.c perlmain.c - -perlmain$(o) : $(CONFIGPM) perlmain.c - $(CC) $(CFLAGS_O:s,-DPERLDLL,-UPERLDLL,) $(OBJOUT_FLAG)$@ $(PDBOUT) -c perlmain.c - -perlmainst.c : runperl.c - copy runperl.c perlmainst.c +perlmain$(o) : runperl.c $(CONFIGPM) + $(CC) $(CFLAGS_O:s,-DPERLDLL,-UPERLDLL,) $(OBJOUT_FLAG)$@ $(PDBOUT) -c runperl.c -perlmainst$(o) : $(CONFIGPM) perlmainst.c - $(CC) $(CFLAGS_O) $(OBJOUT_FLAG)$@ $(PDBOUT) -c perlmainst.c +perlmainst$(o) : runperl.c $(CONFIGPM) + $(CC) $(CFLAGS_O) $(OBJOUT_FLAG)$@ $(PDBOUT) -c runperl.c $(PERLEXE): $(CONFIGPM) $(PERLEXE_OBJ) $(PERLEXE_RES) $(PERLIMPLIB) .IF "$(CCTYPE)" == "GCC" @@ -1462,13 +1490,16 @@ $(PERLEXESTATIC): $(PERLSTATICLIB) $(CONFIGPM) $(PERLEXEST_OBJ) $(PERLEXE_RES) # DynaLoader.pm, so this will have to do #most of deps of this target are in DYNALOADER and therefore omitted here -Extensions : $(PERLDEP) $(DYNALOADER) $(GLOBEXE) - $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(PLMAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic +Extensions : $(PERLDEP) $(DYNALOADER) $(GLOBEXE) MakePPPort + $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(PLMAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic !Unicode/Normalize + +Extensions_normalize : $(PERLDEP) $(DYNALOADER) $(GLOBEXE) $(UNIDATAFILES) + $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(PLMAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic +Unicode/Normalize Extensions_reonly : $(PERLDEP) $(DYNALOADER) $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(PLMAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic +re -Extensions_static : ..\make_ext.pl list_static_libs.pl $(CONFIGPM) $(GLOBEXE) $(HAVE_COREDIR) +Extensions_static : ..\make_ext.pl list_static_libs.pl $(CONFIGPM) $(GLOBEXE) $(HAVE_COREDIR) MakePPPort $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(PLMAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --static $(MINIPERL) -I..\lib list_static_libs.pl > Extensions_static @@ -1489,9 +1520,9 @@ Extensions_realclean : # be running in parallel like UNIDATAFILES, this target a placeholder for the # future .IF "$(BUILD_STATIC)"=="define" -rebasePE : Extensions $(PERLDLL) $(PERLEXE) $(GLOBEXE) $(PERLEXESTATIC) +rebasePE : Extensions $(PERLDLL) Extensions_normalize $(PERLEXE) $(PERLEXESTATIC) .ELSE -rebasePE : Extensions $(PERLDLL) $(PERLEXE) $(GLOBEXE) +rebasePE : Extensions $(PERLDLL) Extensions_normalize $(PERLEXE) .ENDIF $(NOOP) @@ -1543,12 +1574,12 @@ utils: $(HAVEMINIPERL) ..\utils\Makefile copy ..\README.tw ..\pod\perltw.pod copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod - copy ..\pod\perldelta.pod ..\pod\perl5235delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5271delta.pod $(MINIPERL) -I..\lib $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q .. -..\pod\perltoc.pod: $(PERLEXE) $(PERLDLL) Extensions Extensions_nonxs ..\pod\perluniprops.pod utils +..\pod\perltoc.pod: $(PERLEXE) $(PERLDLL) Extensions Extensions_nonxs Extensions_normalize utils $(PERLEXE) -f ..\pod\buildtoc -q # Note that the pod cleanup in this next section is parsed (and regenerated @@ -1604,6 +1635,7 @@ distclean: realclean -if exist $(LIBDIR)\Hash rmdir /s /q $(LIBDIR)\Hash -if exist $(LIBDIR)\HTTP rmdir /s /q $(LIBDIR)\HTTP -if exist $(LIBDIR)\I18N rmdir /s /q $(LIBDIR)\I18N + -if exist $(LIBDIR)\inc rmdir /s /q $(LIBDIR)\inc -if exist $(LIBDIR)\IO rmdir /s /q $(LIBDIR)\IO -if exist $(LIBDIR)\IPC rmdir /s /q $(LIBDIR)\IPC -if exist $(LIBDIR)\JSON rmdir /s /q $(LIBDIR)\JSON @@ -1628,6 +1660,7 @@ distclean: realclean -if exist $(LIBDIR)\TAP rmdir /s /q $(LIBDIR)\TAP -if exist $(LIBDIR)\Term rmdir /s /q $(LIBDIR)\Term -if exist $(LIBDIR)\Test rmdir /s /q $(LIBDIR)\Test + -if exist $(LIBDIR)\Test2 rmdir /s /q $(LIBDIR)\Test2 -if exist $(LIBDIR)\Text rmdir /s /q $(LIBDIR)\Text -if exist $(LIBDIR)\Thread rmdir /s /q $(LIBDIR)\Thread -if exist $(LIBDIR)\threads rmdir /s /q $(LIBDIR)\threads @@ -1639,7 +1672,7 @@ distclean: realclean -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 \ - perl5235delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl5271delta.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 \ @@ -1649,7 +1682,7 @@ distclean: realclean 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 \ @@ -1674,7 +1707,6 @@ install : all installbare installhtml installbare : utils ..\pod\perltoc.pod $(PERLEXE) ..\installperl - attrib -r $(INST_COREDIR)\ppport.h && del $(INST_COREDIR)\ppport.h if exist $(WPERLEXE) $(XCOPY) $(WPERLEXE) $(INST_BIN)\*.* if exist $(PERLEXESTATIC) $(XCOPY) $(PERLEXESTATIC) $(INST_BIN)\*.* $(XCOPY) $(GLOBEXE) $(INST_BIN)\*.* @@ -1687,9 +1719,8 @@ installhtml : doc inst_lib : $(CONFIGPM) $(RCOPY) ..\lib $(INST_LIB)\*.* -$(UNIDATAFILES) ..\pod\perluniprops.pod .UPDATEALL : $(CONFIGPM) ..\lib\unicore\mktables - cd ..\lib\unicore && \ - ..\$(MINIPERL) -I.. mktables -P ..\..\pod -maketest -makelist -p +$(UNIDATAFILES) ..\pod\perluniprops.pod .UPDATEALL : ..\lib\unicore\mktables $(CONFIGPM) + $(MINIPERL) -I..\lib ..\lib\unicore\mktables -C ..\lib\unicore -P ..\pod -maketest -makelist -p minitest : .\config.h $(HAVEMINIPERL) ..\git_version.h $(GLOBEXE) $(CONFIGPM) $(UNIDATAFILES) $(TESTPREPGCC) $(XCOPY) $(MINIPERL) ..\t\$(NULL) @@ -1756,7 +1787,6 @@ _clean : -@erase perlglob$(o) -@erase perlmain$(o) -@erase perlmainst$(o) - -@erase config.w32 -@erase /f config.h -@erase /f ..\git_version.h -@erase $(GLOBEXE) @@ -1767,6 +1797,7 @@ _clean : -@erase $(PERLDLL) -@erase $(CORE_OBJ) -@erase $(GENUUDMAP) $(GENUUDMAP_OBJ) $(GENERATED_HEADERS) + -@erase .coreheaders -if exist $(MINIDIR) rmdir /s /q $(MINIDIR) -if exist $(UNIDATADIR1) rmdir /s /q $(UNIDATADIR1) -if exist $(UNIDATADIR2) rmdir /s /q $(UNIDATADIR2) @@ -1779,8 +1810,6 @@ _clean : -@erase *.pdb ..\*.pdb -@erase Extensions_static - - clean : Extensions_clean _clean realclean : Extensions_realclean _clean @@ -1789,14 +1818,15 @@ realclean : Extensions_realclean _clean # installed perlbug. We don't re-run the tests here - we trust the user. # Please *don't* use this unless all tests pass. # If you want to report test failures, use "dmake nok" instead. -ok: utils +ok: utils $(PERLEXE) $(PERLDLL) Extensions_nonxs Extensions $(PERLEXE) ..\utils\perlbug -ok -s "(UNINSTALLED)" -okfile: utils +okfile: utils $(PERLEXE) $(PERLDLL) Extensions_nonxs Extensions $(PERLEXE) ..\utils\perlbug -ok -s "(UNINSTALLED)" -F perl.ok -nok: utils +nok: utils $(PERLEXE) $(PERLDLL) Extensions_nonxs Extensions $(PERLEXE) ..\utils\perlbug -nok -s "(UNINSTALLED)" -nokfile: utils +nokfile: utils $(PERLEXE) $(PERLDLL) Extensions_nonxs Extensions $(PERLEXE) ..\utils\perlbug -nok -s "(UNINSTALLED)" -F perl.nok +