This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Win32 misc parallel fixes in win32/makefile.mk
authorDaniel Dragan <bulk88@hotmail.com>
Sun, 13 Sep 2015 03:30:46 +0000 (23:30 -0400)
committerTony Cook <tony@develop-help.com>
Thu, 17 Sep 2015 00:54:47 +0000 (10:54 +1000)
commitd67e180c79c65d7f57c566e833b50b24b5de336d
treec2f635469d1974c1c3a94cf64351567fa54e3215
parent9ca4b7ea1df2a8085f1c9fc84c5c2a8eebc01f52
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
README.win32
win32/makefile.mk