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 was added in 2019-10-27T03:24:50Z!noreply@github.com to fix a bug
the former wad-image targets created when run on non-bash shell. Its
author now recommends to remove it with the removal of wad-image.
These targets were rather complicated to set up and use and were
geared around a couple very specific use-cases rather than fully
allowing a set of features wad2image can really accomplish.
In favor of keeping Freedoom’s Makefile relevant just to building (and
installing) our own game, let’s remove this. wad2image can be used
independently anyhow. 😃
This makes the "command: command not found" error no longer occur on
systems where the default shell is not `bash`, or does not support the
`bash` builtins. Additionally, a sane environment is set for safer
shell command use and scripting.
The environment settings for `bash` here do the following:
- Terminate on errors, including signal `ERR` traps. (-e, -E)
- Ensure that shell variables are set before use. (-u)
- Print the shell command, and arguments, as they're run. (-x)
- Fail on errors in any command in a pipeline. (-o pipefail)
Causes the installation to be more similar to how the pre-built Zip
files are handled: separating out the multiplayer and
singleplayer-focused games into two targets. This is similar also to
how Debian and Fedora generate their packages for the game and it is a
sensible one.
Also creates a lot of duplicated lines in the make rules, even though
the number of targets is actually reduced.
This reverts the code changes from
2019-09-05T02:46:59Z!mikeonthecomputer@gmail.com. Keeps the "v" from
appearing in file names, while still being a bit nice to see on the
title screen.
ASCIIDOC and ASCIIDOC_MAN have been added, which default to the
(Python-based) reference implementation, but may be changed to
asciidoctor simply.
The manpages have been modified to use single-line section headings
for AsciiDoctor compatibility.
Current Desktop Entry and AppStream standards recommend using
reverse-DNS for all relevant files under them.
Adds some more scaffolding targets for install/uninstall, but there
aren’t easy text transformations to the new names.
This is one of the built-in variables for Make and can increase
portability on different operating systems (eg, on Windows, the
built-in $(RM) may be defined as "del" instead of "rm -f").
Also includes a change to the top-level Makefile to accommodate new
target names. Moved the installation variable settings close to the
install targets.
Deduplicates effort from copying between multiple patch files, and we
now have unique outputs for each of our IWADs.
Having just "No Clipping 1 = idclip" proved to be troublesome with at
least prboom-plus, the engine running its cheat detecting twice and
becoming unable to activate no-clipping mode. Worked around it by
also defining "No Clipping 2 = idspispopd", restoring that cheat's
functionality in most source ports and keeping both variants unique.
Chocolate Doom will only use the "idclip" version.
This at least lays some groundwork for doing so, by gathering archive
members by wildcard expansion rather than zip's -r parameter (which
uses file system order -- essentially random), combined with LC_ALL=C
so that locale sorting orders don't matter either. zip's -X option is
also used so no Unix metadata (UIDs, GIDs, modes) are saved in the
archive.
To really complete the effect, faketime should be used to deal with
file timestamps. Requiring faketime to do `make dist` seems too
extreme to me, so I'm leaving it out, but the general idea is to run a
command such as:
faketime -f "$(TZ=UTC date -d "@$(git show -q --format=format:%ct)" \
"+%Y-%m-%d %H:%M:%S")" \
make dist
This does also assume that zip's default compression algorithm never
changes (eg, from DEFLATE to BZip2 or LZMA), or never releases an
improved version (eg, a better DEFLATE). It's not perfect, but this
should be good enough.
This was demonstrating an intent to make the Makefile more
dynamic with regard to IWAD targets and installation targets.
When/if the time comes that Freedoom changes what IWADs it builds,
we can just simply edit this section too.
The tags are shorthand for the license of each file and avoid
copying the full license text into each one (and avoids having
to manually update the dates in each one...).
This eliminates another author-name directory. PLAYPAL and COLORMAP
generation are separate operations that are really only very vaguely
related to one another. Move these into separate, logically-named
directories.
As part of this we eliminate the symlinks for the PLAYPAL and various
colormap lump files, and instead copy these into the parent directory
for use by deutex. This brings further progress on #202.
- add bootstrap/Makefile to generate/cleanup bootstrap/doom2.wad
- call bootstrap/Makefile from main Makefile as appropriate
- delete bootstrap/doom2.wad, add bootstrap/.gitignore