CFGSH_TMPL (config.gc or config.vc) is not written to by config_sh.PL, so
there is no need to make a copy of it, this reduces 1 target node out of
dmake so there are less targets to traverse for dep checking, this also
fixes an "dmake -n" schedule irregularity where
"copy $(CFGSH_TMPL) config.w32" was scheduled (for serial) as the very
first recipie to run by dmake for a "dmake -n Extensions" but a recipie
in the middle of the procs to launch for "dmake -n Extensions_nonxs". This
schedule irregularity might be causing delays in finding parallel work to
do. Also arrange ..\config.sh target's deps from "on disk" to
"build product" order, so the left side dep nodes get marked "completed"
ASAP in the graph.
--- C:\p523\src\win32\xs.txt
+++ C:\p523\src\win32\nonxs.txt
@@ -1,3 +1,4 @@
+copy config.vc config.w32
if not exist ".\mini" mkdir ".\mini"
if exist config.h del /f config.h
copy config_H.vc config.h
@@ -141,20 +142,11 @@
@C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\mk31
if exist ..\miniperl.exe.manifest mt -nologo -manifest **CUT**
..\miniperl.exe -I..\lib -f ..\write_buildcustomize.pl ..
-copy config.vc config.w32
..\miniperl.exe -I..\lib config_sh.PL --cfgsh-option-file \
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\mk32 config.w32 > ..\config.sh
..\miniperl.exe -I..\lib ..\configpm --chdir=..
xcopy /f /r /i /d /y config.h ..\lib\CORE\*.*
..\miniperl.exe -I..\lib config_h.PL "ARCHPREFIX="
[Committer indented above diff to allow "git am" to apply the patch.]
$(LIBFILES) && $(EMBED_EXE_MANI)
.ENDIF
-config.w32 : $(CFGSH_TMPL)
- copy $(CFGSH_TMPL) config.w32
..\git_version.h : $(HAVEMINIPERL) ..\make_patchnum.pl
cd .. && miniperl -Ilib 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.
-@erase perlglob$(o)
-@erase perlmain$(o)
-@erase perlmainst$(o)
- -@erase config.w32
-@erase /f config.h
-@erase /f ..\git_version.h
-@erase $(GLOBEXE)