Commit Graph

90 Commits (8c97b73502f4a4ebcdc926c3602fcfac49043169)

Author SHA1 Message Date
Mike Swanson 8c97b73502 Makefile: use reverse-DNS to install desktop and metainfo files
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.
2019-09-07 11:27:21 -07:00
Mike Swanson 180a11807b Retire VERSION file, put value into Makefile 2019-09-04 19:46:59 -07:00
Mike Swanson eca25952ad make: use $(RM) for removing files
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").
2019-09-04 14:22:49 -07:00
Mike Swanson 96b28272a6 dist/Makefile: rewrite targets so they build only when sources change
Also includes a change to the top-level Makefile to accommodate new
target names.  Moved the installation variable settings close to the
install targets.
2019-09-04 14:06:17 -07:00
Mike Swanson a31450f5b9 Rename ULTDOOM/DOOM2 cpp defines to PHASE1/PHASE2
More self-consistent with out project, and those names dated before
Freedoom had a stronger identity.
2019-09-01 18:49:03 -07:00
Simon Howard 9f082e5ffa build: Remove wadinfo.txt.
We no longer build the freedoom.wad resource WAD so this is redundant.
(It was removed in bfb95753bd).
2019-09-01 21:10:14 -04:00
Mike Swanson 53b4133b20 move source dehacked to dedicated subdirectory 2019-09-01 17:53:55 -07:00
Mike Swanson 8e9ce31b70 dehacked: run through simplecpp, cheat replacements for Phase 1 only
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.
2019-09-01 17:39:58 -07:00
Steven Elliott 9f48b64f43 Add fix-map-names script and build targets
Add scripts/fix-map-names to fix and test map names. Map names are
tested with make target "test-map-names" and fixed with "fix-map-names".
2019-01-01 17:30:29 -08:00
Simon Howard d172ffd8ed build: Remove wadinfo-builder script.
The effect of this script should be a no-op and the script therefore
entirely redundant now that #487 and #489 have been merged. Fixes #485.
2017-09-07 20:17:44 -04:00
Steven Elliott 75099abb61 Improved wad2image top level directory determination. (#488) 2017-09-04 15:44:22 -04:00
Steven Elliott f0fba6eb53 Better help and error handling for wad2image. 2017-09-03 13:07:57 -07:00
Steven Elliott 2cb5f8fdbb Feedback on wad2image integration from PR #480. 2017-09-03 13:07:57 -07:00
Steven Elliott 42506bb4a0 Added targets, variables and help for wad2image integration. 2017-09-03 13:07:57 -07:00
Nick Zatkovich 09f39d4e64 BUILD: code cleanup, VERSION fix
Performed code cleanup, made changes to version number Make gets from
Git to make it consistent across git versions
2017-07-31 14:34:47 -07:00
Nick Zatkovich 215b7c644e BUILD: remove the last of the imagemagick stuff
The only remaining thing depending on imagemagick are the dist scripts
2017-07-30 23:26:52 -07:00
Nick Zatkovich d3038fad30 BUILD: remove background color from textgen
remove the background color when generating the text, 
then remove the extraneous deutex arguments
2017-07-30 14:08:17 -07:00
Nick Zatkovich 163fa96713 Fix makefile for deutex 5.0
-fullsnd is no longer a valid option
2017-07-17 05:08:37 -07:00
Mike Swanson c67e8a566a Introduce measures to start building Zips deterministically.
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.
2017-02-22 11:44:50 -08:00
Mike Swanson 6996fd5c70 Makefile: Simply install rules.
We don’t need to use install to create directories separately.
The command can create them and install files at the same time.
2017-02-20 20:59:28 -08:00
Mike Swanson 80cbab8c84 Include *.txt and DOS-format COPYING and CREDITS files in zips.
This makes it far easier to open the files correctly in Windows
Notepad.
2017-02-19 11:43:04 -08:00
Mike Swanson cc9d5f9bdc Makefile: Remove silly comment.
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.
2017-02-15 17:08:13 -08:00
Mike Swanson 8835afef5f Copyright date bump and apply SPDX tags.
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...).
2017-02-15 16:41:53 -08:00
Mike Swanson b841310de8 Makefile: Use “--dirty” for git describe. 2017-02-08 16:33:19 -08:00
Alexandre Detiste 6bb5b276f9 make the build reproducible
https://wiki.debian.org/ReproducibleBuilds/TimestampsInDocumentationGeneratedByAsciidoc
2016-03-06 09:30:30 +01:00
Simon Howard 103cd74f4e lumps: Split out cph/misc-lumps.
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.
2015-12-24 11:12:31 +01:00
RjY f6ea500080 bootstrap: hook into build system
- add bootstrap/Makefile to generate/cleanup bootstrap/doom2.wad
- call bootstrap/Makefile from main Makefile as appropriate
- delete bootstrap/doom2.wad, add bootstrap/.gitignore
2015-12-03 21:22:42 +00:00
Mike Swanson 9b84cdebf0 Another year, another copyright date bump :) 2015-04-29 14:53:21 -07:00
Mike Swanson 18a43617e3 dist: Clean up generated files 2014-11-02 17:24:05 -08:00
Mike Swanson 863a08b0d4 Add json generator script and makefile target 2014-10-07 15:40:12 -07:00
Mike Swanson ee27f645f2 Makefile: replace hardcoded AsciiDoc commands for more generic ones 2014-10-07 09:39:21 -07:00
Mike Swanson 2f104ea7fe Add a COMPILING document describing the dependencies.
The Freedoom project has never officially documented its dependencies.
This seems like a fairly big thing to miss out on.
2014-10-07 06:58:47 -07:00
Mike Swanson c6ee65a064 Makefile: remove .wad.gz target
This is probably not something that anybody uses... either "make dist"
or custom scripts outside of the Makefile to generate Zip files are
often used.
2014-10-05 03:53:15 -07:00
Mike Swanson a4fd8f8fb7 Makefile: add 'dist' as a PHONY target
Caused issues on certain versions of make with a directory of the same
name now existing.
2014-10-05 03:10:08 -07:00
Mike Swanson f6fcee1600 dist: new application icons and Makefile
Continuing the discussion started on GitHub over
2014-09-30T01:33:29Z!mikeonthecomputer@gmail.com, all desktop entries
now have unique icons. Keeping my own personal bias, stfkill3 is still
used for FreeDM, but the Debian choices for their own distro are used
for Phases 1 and 2.

Also, the icons are actually generated automatically now.
2014-09-30 23:01:38 -07:00
Mike Swanson 23341e5614 Makefile: Add uninstall targets 2014-09-29 18:57:31 -07:00
Mike Swanson f277033fbb Makefile: Clean up install targets, don't duplicate them all. 2014-09-29 18:57:25 -07:00
Mike Swanson 8271d19c41 Makefile: Add install targets
These targets should help both users installing Freedoom manually and
distribution packagers (especially the individual targets for each
IWAD).
2014-09-28 01:00:57 -07:00
Mike Swanson dfe26e5607 Update copyright strings 2014-09-18 11:51:03 -07:00
Mike Swanson 88ec3f5884 rename files from *.asc to *.adoc
In a world ravaged by software that determines file type by the last
part of the file's name, *.asc is somewhat troublesome given file
managers that think these are PGP keys.  Also GitHub won't render
AsciiDoc without one of a few extensions, at least *.adoc is somewhat
clearer and not as obnoxiously long as *.asciidoc
2014-05-02 18:42:19 -07:00
Mike Swanson 706633ec59 make: VERSION variable can be set either via git or the VERSION file
Change up the shell line so that it can fallback on the VERSION file
if building without a Git repository (eg, from a release tarball).

Additionally, change the titlepic generation so that it uses this
single instance of setting VERSION rather than doing its own thing.
2014-01-22 19:32:25 -08:00
Simon Howard 7b4a13bd7a build: Fix Makefile dependencies for freedoom.lmp.
The freedoom.lmp and freedm.lmp files must be created before the
wadinfo-builder script is run, otherwise these lumps might get
dummy substitutes.
2014-01-22 05:02:29 +00:00
Simon Howard 92e475dc40 build: Fix Makefile dependencies for pnames.txt.
The wadinfo.txt files #include the pnames.txt file generated by the
texture builder: because of this, we must build subdirectories
before building the wadinfo.txt files.
2014-01-17 05:04:09 +00:00
Simon Howard 71b30afa92 textures: Only include patches needed by textures.
Now that #1 is fixed, we can be certain that all patches needed for
compatibility are definitely being included in the PNAMES lists. It
therefore isn't necessary to include every patch in the patches/
directory in every WAD.

Extend the build-textures script to generate a text file containing
the list of PNAMES, and include this from the main config file. That
way, each IWAD only gets the patches it explicitly needs.
2014-01-17 03:59:52 +00:00
Simon Howard 64801c1b45 build: Fix 'make clean'.
lumps/Makefile has been removed, but we were still trying to
make clean in that directory.
2014-01-17 01:23:34 +00:00
Simon Howard d241e7f326 build: Fix 'make -j' handling.
Some build targets create multiple outputs, which can cause problems
when doing parallel builds. Clean up the build system so that all
subdir invocations come from the top-level Makefile and use $(MAKE).
Also fix the FREEDOOM/FREEDM lumps to really include the version
number by using $(shell ...) syntax.
2014-01-16 06:30:15 +00:00
Simon Howard 82d90f8e8a textures: Rewrite Freedoom's texture build system.
Stop using deutex's built-in texture builder and generate our own
texture lumps. This is essential for compatibility reasons: the
entries in the texture/pnames lumps must match the order of those
in the original IWADs. Failure to match ordering means that some
well-known WADs (eg. DTWID) would not work with Freedoom.

This fixes #1, and also means that Freedoom can now be built in
parallel using make's '-j' option.
2014-01-16 04:18:22 +00:00
Mike Swanson 89daa45840 The Great IWAD Renaming: unique file names for Freedoom
After some discussion and consensus[1], Freedoom's IWADs are now
uniquely named independently of Doom's file names:
 * freedoom1.wad: Phase 1
 * freedoom2.wad: Phase 2

The original intention was that Freedoom would be a complete drop-in
replacement for Doom, so that you can just use Freedoom's doom2.wad
rather than id Software's. What has happened, however, is that people
often desire to have Freedoom installed alongside Doom, and try to
uniquely identify it via filenames for multiplayer servers. This has
resulted in lengthy lists of unofficial IWAD file names implemented by
many engines to locate Freedoom, combined with gamers' personal
opinions on just how they should be renamed.

Even the Debian project, normally not one to modify upstream sources
so drastically, has been renaming our doom2.wad to freedoom.wad,
presumably so that Doom II can be installed simultaneously with
game-data-packager.

Given a free software engine, we can instead standardize on unique
names apart from Doom and get the majority of engines in use changed
over to these ones; users with engines that don't recognize the names
can instead use the near-universal -iwad command-line parameter, or
rename the files back to doom.wad or doom2.wad as needed.

[1] http://www.doomworld.com/vb/freedoom/66856-bikeshedding-renaming-freedooms-iwads/
2014-01-11 21:07:34 -08:00
Mike Swanson 65eec022ea Build separate Zips for doom/doom2 and FreeDM
Consensus shows that the change in
2014-01-07T06:34:47Z!mikeonthecomputer@gmail.com was a bit too
extreme. Keep FreeDM as its own special thing, being much more focused
on multiplayer than the other IWADs, as well as being the
vanilla-compatible IWAD.
2014-01-07 17:45:41 -08:00
Mike Swanson 2912bd1ca1 Makefile: don't error out with rmdir failures
rmdir exits with an error status if a directory doesn't exist or is
non-empty. Let's tell make to ignore such things from it.
2014-01-07 07:07:19 -08:00