Generate dependencies

This ensures that the appropriate WAD files are extracted for each
demo.
This commit is contained in:
Simon Howard 2024-08-31 17:39:22 -04:00
parent eda0c337b6
commit d0b751abd4
3 changed files with 33 additions and 1 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
.depends

View file

@ -12,10 +12,13 @@ check: expected output
output: $(OUTPUTS)
output/%.txt: demos/%.lmp
output/%.txt: demos/%.lmp $(SOURCE_PORT)
@mkdir -p $(dir $@)
./testrunner $< $@
.depends: makedepends
./makedepends $@
extract/%:
unzip $(UNZIPOPTS) -d extract $< $(notdir $@)
@ -29,3 +32,6 @@ extract/class_ep.wad: pwads/class_ep.zip
clean:
rm -f extract/*.wad
rm -rf output/*
rm -f .depends
include .depends

25
makedepends Executable file
View file

@ -0,0 +1,25 @@
#!/usr/bin/env python3
from glob import glob
import os
import sys
from common import *
depends_file = sys.argv[1]
dependencies = {}
for filename in glob("expected/**/*.txt", recursive=True):
lmp_file = filename.replace("expected/", "demos/").replace(".txt", ".lmp")
cfg = read_config(lmp_file)
pwad = cfg.get("pwad")
if pwad is not None:
out_file = filename.replace("expected/", "output/")
dependencies[out_file] = [os.path.join("extract", pwad)]
with open(depends_file, "w") as f:
for out_file, depends in sorted(dependencies.items()):
f.write("%s: %s\n" % (
out_file, " ".join(depends),
))