Fix the Programs build, and make the disk depend on what it mirrors
Two faults, both introduced by 0852666 and both invisible because nothing
in the test suite runs this makefile - Tests/makedisks.sh builds its own
images.
That commit renamed 16bitSegmentedSieve.asm to 16bitSieve.asm and left
PROGRAMS naming the old file, so 'make' in Programs/ has failed outright
ever since. Which means the disk under Programs/build has been whatever it
was on that day, and 'make run-voyager' has been booting it.
The second is the same disease one layer up. The mirror exists so that
adding a file is the whole of putting it on the disk, and that only works
if adding a file also rebuilds the disk - but the prerequisites were as
hand-maintained as the list the mirror replaced. tune.asm went into
Examples, the image was not remade, and it simply was not there to
assemble on the machine. Nothing said so, which is exactly the failure a
mirror is for.
Found by looking for tune.asm on the disk and not finding it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E2JrLzFvuFX9fgi1LDRjrW
This commit is contained in:
co-authored by
Claude Opus 5
parent
d388cd3122
commit
8366bf7721
+14
-2
@@ -31,8 +31,8 @@ PROGRAMS = \
|
||||
Examples/Fibonacci/16bitFibonacci.asm \
|
||||
Examples/Fibonacci/32bitFibonacci.asm \
|
||||
Examples/primeSieve/8bitSieve.asm \
|
||||
Examples/primeSieve/16bitSegmentedSieve.asm \
|
||||
Examples/primeSieve/16bitSegmentedSieveModern.asm \
|
||||
Examples/primeSieve/16bitSieve.asm \
|
||||
Examples/primeSieve/16bitSieveModern.asm \
|
||||
Examples/gameOfLife/16x16Life.asm \
|
||||
Examples/gameOfLife/16x16LifeModern.asm \
|
||||
Loader/loader.asm \
|
||||
@@ -136,6 +136,18 @@ cosmos: $(COSMOS) $(APPS) $(NATIVE_ASM)
|
||||
# was still missing - which sends you looking at the change you just made rather than at the
|
||||
# stale thing in front of you.
|
||||
$(COSMOS_DISK): makefile
|
||||
# ---- And on everything it mirrors ----
|
||||
#
|
||||
# Found the same way as the note above, one layer up. The mirror exists so that adding a file
|
||||
# is the whole of putting it on the disk, and that only works if adding a file also REBUILDS
|
||||
# the disk - but the prerequisites were as hand-maintained as the list the mirror replaced.
|
||||
# tune.asm went into Examples, the image was not remade, and it was simply not there to
|
||||
# assemble on the machine. Nothing said so, which is the failure a mirror is for.
|
||||
#
|
||||
# Found rather than wildcarded, because the tree the mirror walks is a tree and $(wildcard)
|
||||
# does not recurse. build is left out for the reason the mirror leaves it out.
|
||||
MIRRORED := $(shell find . -name '*.asm' -not -path './build/*' 2>/dev/null)
|
||||
$(COSMOS_DISK): $(MIRRORED)
|
||||
$(COSMOS_DISK): $(APPS) $(NATIVE_ASM) $(COSMOS) $(STAGE2) testPrograms/stringKeyword.asm \
|
||||
$(wildcard CosmOS/Apps/*.asm) \
|
||||
$(wildcard CosmOS/Source/*.asm) $(wildcard CosmOS/Assembler/*.asm)
|
||||
|
||||
Reference in New Issue
Block a user