magic/scripts
Darryl L. Miles 0aacd546c9 build: compute version/commit/date once, not per sub-make recursion
MAGIC_VERSION/REVISION/COMMIT/BUILDDATE used `?=` with `$(shell ...)`, which
makes them recursively-expanded.  Because they are exported, make re-evaluated
(re-spawned git/date/cat) every time it built a child's environment -- so a
no-op recursive `make` spawned git and date ~624 times each.

Guard each with `ifndef` and assign with `:=` (simply-expanded) so the value is
computed once at the top and exported as a plain string; sub-makes inherit it
and the ifndef skips recomputation.  This was the last "fold in" item from the
buildinfo/ccache plan.

Verified: a no-op `make` now spawns git and date once each (was 624); a full
clean build spawns 1 git / 2 date / 10 cat; the commit is still embedded
correctly and builds are reproducible.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-26 14:54:11 -04:00
..
.gitignore Allow Python 3 to not be in PATH, Fix `clean` re-building dependencies 2023-08-29 22:43:11 +03:00
config.guess Update config.guess/config.log 2020-12-24 21:59:14 -05:00
config.sub Update config.guess/config.log 2020-12-24 21:59:14 -05:00
configure build: detect GNU/BSD date at configure time for SOURCE_DATE_EPOCH 2026-07-26 14:54:11 -04:00
configure.in build: detect GNU/BSD date at configure time for SOURCE_DATE_EPOCH 2026-07-26 14:54:11 -04:00
configure_mac GHA: MacOS maintenance update 2025-01-04 11:23:39 -05:00
defs.mak.in build: compute version/commit/date once, not per sub-make recursion 2026-07-26 14:54:11 -04:00
install-sh Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
magic.spec.in Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
makedbh.in makedbh.in _DATABASE_H => _MAGIC__DATABASE__DATABASE_H 2025-07-29 10:50:32 -04:00
missing Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
mkdirs Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
mkinstalldirs Convert $Id$ placeholders to $Header$ placeholders. 2020-05-23 17:00:38 -04:00
preproc.py Use raw strings in preproc.py 2024-01-23 09:38:23 -06:00
printmans Build Updates 2023-08-25 12:24:14 -04:00