Commit Graph

73 Commits (617a15354f296601421b96ebf01888cdbbddb710)

Author SHA1 Message Date
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
Mike Swanson bfb95753bd Stop building resource PWADs and "make dist" generates a single Zip
The resource PWADs have been around for a very long time and dated
from before Freedoom was capable of running as a complete IWAD on its
own. Few people ever cared about these files, as evident by a lack of
reports about freedoom_levels.wad not even being correct.

Additionally, the separate Zips for each IWAD is gone. With that,
Freedoom will be distributed as a single Zip file only that includes
all of the subprojects.
2014-01-06 22:34:47 -08:00
Mike Swanson 683169965f Generate required directories from make
No longer keep these around via an empty .gitignore hack.
2014-01-06 21:51:17 -08:00
Mike Swanson 62e0b833a9 Update copyright dates in the Makefile 2014-01-06 21:26:12 -08:00
Mike Swanson 8ced156f93 Makefile: Fix building with GNU Make 3.82 (thanks Catoptromancy) 2013-12-31 17:04:21 -08:00
Mike Swanson 4619f5a4de Makefile: dist target works again
For now, Make is dependent on being run inside of the git repository,
at least if something like `make VERSION=3.14` isn't used. Will be
nice in the future if it can read from the VERSION file as a fallback.
2013-12-31 01:51:20 -08:00
Mike Swanson 91f9958163 Rename BUILD-SYSTEM to *.asc and fix the `make doc` target.
Adding the file extension makes it all pretty on GitHub.
2013-12-31 01:00:19 -08:00
Simon Howard 6150b320f3 graphics: Add 'make clean' target for textgen. 2013-11-30 23:07:39 -05:00
Simon Howard 9855d868ea graphics: Generate text graphics programatically.
Remove the big text graphic images used for the menus and the
intermission screen. Instead, generate these graphics programatically
from a script. This allows them to be easily changed and extended
as desired.
2013-11-30 20:55:57 -05:00
RjY 3d1d55c21f Makefile: omit building monster placeholder sprites
The placeholder monster sprites (those with the graphic not done
template overlaid) aren't used any more; nothing is linked to them.
Therefore speed up the build process by skipping this step.

This almost compensates for the extra time required to build Freedoom
since the helper scripts were rewritten in Python (joking)
2011-06-07 14:23:59 +01:00
RjY 3d56b50b81 Sharewarendectomy
Consensus that the "shareware" target was no longer necessary was
reached long ago[1]. It just needs to actually get done. Thus:

Makefile:
- remove shareware targets

buildcfg.txt, textures/combined.txt:
- remove #ifdef/#ifndef SHAREWARE sections (almost entirely #ifndef)

graphics/help2.gif:
- remove symlink, help2 screen was shareware-only

gitignore:
- remove shareware files no longer built

textures/shareware:
- remove directory

--
[1] http://www.doomworld.com/vb/freedoom/52758-removing-shareware/ .

In particular, Jon wrote:
>The original purpose of the shareware IWAD was to have a smaller set of
>resources to target 100% completion of. That was probably met a long
>time ago.

More recently chungy wrote in <http://www.doomworld.com/vb/post/957707>
>Removing the "demo"/"shareware" version of Freedoom has been discussed
>but it's never been done. Actually it's a bit easier to just leave it
>in than to remove it. (It'd be pretty easy to get rid of it anyway, but
>nothing is really gained from it)

Signed-off-by: RjY <rjy@users.sourceforge.net>
2011-04-10 11:22:48 +01:00
Mike Swanson 71e8fd0390 FreeDM: add a FREEDM lump for source port detection
Signed-off-by: Mike Swanson <mikeonthecomputer@gmail.com>
2010-09-15 13:55:03 -07:00
Mike Swanson bb1a621e8d Makefile: add doc target to make pretty HTML-ized versions of documents
Not adding to the all target of the Makefile (which is the default when
make is invoked without parameters) as it would introduce an artificial
build dependency on asciidoc; instead, "make doc" is to be used when you
know you both want the *.html files and have asciidoc installed.

Signed-off-by: Mike Swanson <mikeonthecomputer@gmail.com>
2009-07-30 15:05:56 -07:00
Jon Dowland cabae425cd quieten deutex 2008-12-26 17:47:14 +00:00
Simon Howard 5f299ad776 Move scripts that are part of the build system into scripts/. 2008-12-24 18:50:30 +00:00
Simon Howard 0b332510ac Convert wadinfo-builder script to Python. 2008-12-24 18:43:56 +00:00
Simon Howard c9e8446050 Convert extract-pnames script to Python. 2008-12-24 18:42:19 +00:00
Simon Howard a1511aac95 Change build to use simplecpp for preprocessing, as this does not munge
up the configuration file.
2008-12-22 19:01:21 +00:00