summaryrefslogtreecommitdiff
path: root/README.win32
diff options
context:
space:
mode:
authorDaniel Dragan <bulk88@hotmail.com>2015-09-12 23:30:46 -0400
committerTony Cook <tony@develop-help.com>2015-09-17 10:54:47 +1000
commitd67e180c79c65d7f57c566e833b50b24b5de336d (patch)
treec2f635469d1974c1c3a94cf64351567fa54e3215 /README.win32
parent9ca4b7ea1df2a8085f1c9fc84c5c2a8eebc01f52 (diff)
downloadperl-d67e180c79c65d7f57c566e833b50b24b5de336d.tar.gz
Win32 misc parallel fixes in win32/makefile.mk
-reonly/Extensions_reonly target, which is never used, didn't work in parallel because it was using left to right execution of an upstream dep to create build products, that is incompatible with parallel building, fix by trimming down the list of deps, $(UNIDATAFILES) and Extensions_reonly know how to build themselves -regnodes psuedotarget is redundant, it is just an alias for ..\regnodes.h which isn't a build product, remove regnodes and just use ..\regnodes.h instead, smaller build graph/less parsing for dmake tool -I am not questioning relationship between reonly, ..\regnodes.h, ..\regcharclass.h, ..\regcomp.o, $(UNIDATAFILES), Extensions_reonly since regnodes.h and regcharclass.h are git tracked files and not build products, and things work well enough as is -perlglob.exe is needed to build extensions, the natural race conditions that exist in parallel building ment that it was usually getting built early enough that it being missing wasn't noticed, and "rebasePE" target made sure it existed eventually. Some Makefile.PLs indirectly warned that perlglob was missing from the cmd.exe complaining about perlglob being missing but didnt cause an non-zero to happen from the Makefile.PL process. Also since perlglob.exe is installed into the final installed perl, probably pointlessly since full perl is not built with PERL_EXTERNAL_GLOB I think an installed perl's perlglob.exe was being used when I developed commit 3bdc51af3f and related patches. Since re, DynaLoader, and lib are a very limited fixed list of modules, and they dont need perlglob.exe, they dont need to get it as a dep. -reorder the deps in Extensions_static and Extensions_nonxs so permanent files, rarely changed files are on the left side, and build products are on the right. Maybe some kind of optimization happens inside dmake due to the first couple deps being already built (because they are permanent). -remove ..\lib\buildcustomize.pl dep, it is redundant. Its other name is HAVEMINIPERL, and CONFIGPM can't exist without miniperl. Less nodes in dmake's internal graph, since dmake's dep finding algorithm is very inefficient and repetitive. -gmake is supported since commit 342634f3c8 but GNUmakefile doesn't support parallel (-j) building
Diffstat (limited to 'README.win32')
-rw-r--r--README.win3213
1 files changed, 6 insertions, 7 deletions
diff --git a/README.win32 b/README.win32
index f78f11377b..2a8651a0c6 100644
--- a/README.win32
+++ b/README.win32
@@ -99,13 +99,12 @@ You need a "make" program to build the sources. If you are using
Visual C++ or the Windows SDK tools, you can use nmake supplied with Visual C++
or Windows SDK. You may also use, for Visual C++ or Windows SDK, dmake instead
of nmake. dmake is open source software, but is not included with Visual C++ or
-Windows SDK. If you want parallel building with Visual C++ or
-Windows SDK you must use dmake instead of nmake. Builds using gcc need dmake.
-nmake is not supported for gcc builds. gmake is not supported, but might be
-added in the future. It is recommended to use dmake 4.13 or newer for parallel
-building. Older dmakes, in parallel mode, have very high CPU usage and pound
-the disk/filing system with duplicate I/O calls in an aggressive polling
-loop.
+Windows SDK. Builds using gcc need dmake or gmake. nmake is not supported for
+gcc builds. gmake only supports gcc builds, not any other compiler.
+Parallel building is only supported with dmake with any compiler. It is
+recommended to use dmake 4.13 or newer for parallel building. Older dmakes,
+in parallel mode, have very high CPU usage and pound the disk/filing system
+with duplicate I/O calls in an aggressive polling loop.
A port of dmake for Windows is available from: