Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 7a5ee7414cf5303614e12acca9aaf3239e1d261c
      
https://github.com/Perl/perl5/commit/7a5ee7414cf5303614e12acca9aaf3239e1d261c
  Author: Tony Cook <t...@develop-help.com>
  Date:   2023-07-31 (Mon, 31 Jul 2023)

  Changed paths:
    M win32/GNUmakefile

  Log Message:
  -----------
  win32/GNUmakefile: move miniperl's config.h to mini\

On Win32 the objects for miniperl can differ from those used for the
main perl executable/DLL, typically without threads and without
USE_IMP_SYS.

This involved producing a dummy config.h used to build the miniperl
objects, which was then later replaced with the config.h for the full
build.

This could cause other problems during rebuilds, since code that
assumed PERL_IS_MINIPERL meant no threads could fail to build, and
if the miniperl objects needed to be rebuilt for some reason, they'd
be rebuilt with the full config.h, possibly mismatching the rest of
the objects.


  Commit: 62b0a3251743cb631b5f8ffee46537b2cba90a7e
      
https://github.com/Perl/perl5/commit/62b0a3251743cb631b5f8ffee46537b2cba90a7e
  Author: Tony Cook <t...@develop-help.com>
  Date:   2023-07-31 (Mon, 31 Jul 2023)

  Changed paths:
    M win32/GNUmakefile

  Log Message:
  -----------
  win32/GNUmakefile: use pattern rules to build the miniperl objects

This adds implicit dependencies between the objects and their sources
so that touching the .c file and rebuilding rebuilds the miniperl
object and executable.


  Commit: ad3bccd2d3128b12407e18095039d7f0b573366d
      
https://github.com/Perl/perl5/commit/ad3bccd2d3128b12407e18095039d7f0b573366d
  Author: Tony Cook <t...@develop-help.com>
  Date:   2023-07-31 (Mon, 31 Jul 2023)

  Changed paths:
    M win32/Makefile

  Log Message:
  -----------
  win32/Makefile: move the miniperl config.h to mini\


  Commit: eb5a9047b97585723cd6f55269d0149b1c875afe
      
https://github.com/Perl/perl5/commit/eb5a9047b97585723cd6f55269d0149b1c875afe
  Author: Tony Cook <t...@develop-help.com>
  Date:   2023-07-31 (Mon, 31 Jul 2023)

  Changed paths:
    M win32/Makefile

  Log Message:
  -----------
  win32/Makefile: build miniperl objects with implicit rules

This adds implicit dependencies of the mini/ objects on their
source files, so they (and miniperl itself) are rebuilt if their
source updates.


  Commit: 2d1c37f9276ef6fa432780a3aa3091b68feeafb0
      
https://github.com/Perl/perl5/commit/2d1c37f9276ef6fa432780a3aa3091b68feeafb0
  Author: Tony Cook <t...@develop-help.com>
  Date:   2023-07-31 (Mon, 31 Jul 2023)

  Changed paths:
    M win32/GNUmakefile
    M win32/Makefile

  Log Message:
  -----------
  win32/GNUmakefile, win32/Makefile: define a macro for the mini/config.h


  Commit: 3c21fb41bad7e005d65909e12f36e7d1815e6912
      
https://github.com/Perl/perl5/commit/3c21fb41bad7e005d65909e12f36e7d1815e6912
  Author: Tony Cook <t...@develop-help.com>
  Date:   2023-07-31 (Mon, 31 Jul 2023)

  Changed paths:
    M autodoc.pl
    M lib/ExtUtils/t/Embed.t
    M makedef.pl
    M t/porting/extrefs.t
    M win32/.gitignore
    M win32/GNUmakefile
    M win32/Makefile
    M win32/config_h.PL

  Log Message:
  -----------
  win32/@makefiles: move the full perl config.h to full/

Unfortunately compilers will look in . for #include "..." before any
-I specified, this meant that objects for miniperl.exe could be
built with the full perl configuration which doesn't match the
configuration used to build the miniperl objects the first time
around.

config.h is referenced by a few other tools, so those also needed to
be updated to find the moved config.h.


  Commit: 7288512eb6ae995ed52b75f996ae6135fd0e72c5
      
https://github.com/Perl/perl5/commit/7288512eb6ae995ed52b75f996ae6135fd0e72c5
  Author: Tony Cook <t...@develop-help.com>
  Date:   2023-07-31 (Mon, 31 Jul 2023)

  Changed paths:
    M win32/GNUmakefile
    M win32/Makefile
    M win32/config_sh.PL
    A win32/set_depend_modtime.pl

  Log Message:
  -----------
  win32/@makefiles: only update config.sh if it changes

But also ensure that the config.sh mod time matches the latest of its
dependencies so that it isn't rebuilt the next time around.

For GNU make, this prevents anything that depends on config.sh
being unnecessarily rebuilt.

nmake uses the current time as the modification time, so this doesn't
prevent an unneed rebuild for dependencies for the current build, but
does for the next build.


  Commit: 77e681fc583b14b43dc446fad7ba523acc99ea1e
      
https://github.com/Perl/perl5/commit/77e681fc583b14b43dc446fad7ba523acc99ea1e
  Author: Tony Cook <t...@develop-help.com>
  Date:   2023-07-31 (Mon, 31 Jul 2023)

  Changed paths:
    M MANIFEST
    M win32/GNUmakefile
    M win32/Makefile
    M win32/list_static_libs.pl

  Log Message:
  -----------
  win32/@makefiles: only update "Extensions_static" if needed

Where needed is when: the file changes or any of the static
libraries are newer than Extensions_static

Previously it would always be updated, so perl5xx.dll would always
be rebuilt.

With gmake this prevents perl5xx.dll from being rebuilt.

For nmake it unfortunately doesn't, but may prevent updates in later
rebuilds.


  Commit: 4ea6bb5fda601ec676a68c778d4632218a4eefe3
      
https://github.com/Perl/perl5/commit/4ea6bb5fda601ec676a68c778d4632218a4eefe3
  Author: Tony Cook <t...@develop-help.com>
  Date:   2023-07-31 (Mon, 31 Jul 2023)

  Changed paths:
    M MANIFEST
    M autodoc.pl
    M lib/ExtUtils/t/Embed.t
    M makedef.pl
    M t/porting/extrefs.t
    M win32/.gitignore
    M win32/GNUmakefile
    M win32/Makefile
    M win32/config_h.PL
    M win32/config_sh.PL
    M win32/list_static_libs.pl
    A win32/set_depend_modtime.pl

  Log Message:
  -----------
  re-work win32/*makefile to fix rebuilds

The common config.h meant miniperl couldn't depend on config.h
which meant that updates wouldn't rebuild miniperl.

To fix that, put the miniperl and full perl config.h in their
own subdirectories, and adjust the build rules to properly depend
on them.

Make some other changes to prevent rebuilds when nothing in the
dependencies has actually changed.


Compare: https://github.com/Perl/perl5/compare/cb6b3bdbf08a...4ea6bb5fda60

Reply via email to