Makefile: Add "rebuild-nodes" make target

Add "rebuild-nodes" make target to rebuild nodes for all levels that
match a specified pattern. Document "rebuild-nodes" in
BUILD-SYSTEM.adoc. Modify map06.wad so it adheres to the "no padding
between the lumps" constraint.
This commit is contained in:
Steven Elliott 2019-12-15 14:49:15 -06:00
parent 0f7e672fa9
commit 9e7b4f20b5
3 changed files with 37 additions and 0 deletions

View file

@ -241,3 +241,29 @@ around. Some of them are listed here.
any +TEXTURE1+ lumps it generates. To work around this, a “dummy”
IWAD file containing an empty +TEXTURE1+ lump is contained inside
the +dummy+ directory.
== Node builder
Each Freedoom level found in the "levels" directory should have exactly
11 lumps in a https://zdoom.org/wiki/WAD[particular order] with no
padding between the lumps. Of those 11 lumps 6 (<map name>, THINGS,
LINEDEFS, SIDEDEFS, VERTEXES and SECTORS) are maintained by a level
editor such as GZDoom Builder, SLADE or Eureka. The remaining 5 lumps
(SEGS, SSECTORS, NODES, REJECT and BLOCKMAP) are added by a node
builder. The Freedoom project uses the
https://github.com/Doom-Utils/zennode[ZenNode] node builder. For
example, to rebuild the nodes for all 100 levels run the
"rebuild-nodes" make target in the top level makefile:
[source,bash]
-----------------
make rebuild-nodes
-----------------
To control how the node builder is invoked, or which levels are
rebuilt, override the NODE_BUILDER and NODE_BUILDER_LEVELS make
variables respectively. For example, to specify the full path to
ZenNode when it's not in the path and to rebuild only the first
chapter of Freedoom 1 as well all of the deathmatch levels:
[source,bash]
-----------------
make NODE_BUILDER=/opt/zennode/ZenNode NODE_BUILDER_LEVELS="c1m? dm??" rebuild-nodes
-----------------