Commit graph

22 commits

Author SHA1 Message Date
Ayub Ahmed
7739331eb4 text/Makefile: select t_phase images for copying 2017-03-14 17:59:34 -07:00
RjY
48accfcda2 parallel_textgen: run textgen in parallel
textgen: instead of running ImageMagick yourself, output a Makefile rule
for each graphic. Dependencies are passed on the command line.

Makefile: Add rule for 'textgen.mk' which is built by running textgen.
graphics.stamp depends on textgen.mk and all the built graphics files.
Then, each built graphic depends on textgen.mk, ensuring it is made
first. textgen.mk itself depends on textgen config, font, and dehacked.
(Makefile itself also depends on textgen.mk implicitly via include)

This duplicates previous behaviour where changing textgen config remakes
all text graphics, but one Make rule for each, allowing parallel make
with -j instead of the script doing one at a time.

The built IWADs are byte-for-byte identical before and after this patch
series is applied (provided VERSION is set to the same thing of course)

One problem is 'make clean' rebuilds textgen.mk because Make thinks the
Makefile needs it, but then immediately deletes it. Not sure how to fix.
Use git clean -fdx instead, or just don't clean twice in succession.

----

This gives the following improvement in build time (-j1 as control,
built on 4 cores and a large tmpfs so disk speed isn't a factor)

(master)

    make -j1  4.83s user 6.77s system 93% cpu 12.444 total
    make -j1  4.74s user 6.72s system 93% cpu 12.267 total
    make -j1  4.72s user 6.68s system 92% cpu 12.292 total

    make -j4  5.72s user 6.77s system 109% cpu 11.414 total
    make -j4  5.39s user 6.85s system 107% cpu 11.419 total
    make -j4  5.66s user 6.79s system 109% cpu 11.383 total

parallel_textgen

    make -j1  4.57s user 6.66s system 92% cpu 12.185 total
    make -j1  4.73s user 6.57s system 93% cpu 12.152 total
    make -j1  4.60s user 6.72s system 93% cpu 12.152 total

    make -j4  5.62s user 7.72s system 262% cpu 5.084 total
    make -j4  5.82s user 7.76s system 262% cpu 5.165 total
    make -j4  5.79s user 7.73s system 261% cpu 5.161 total
2017-03-14 17:56:14 -07:00
Mike Swanson
7282f2e5fe Makefile: Make sure all built files are removed in make clean. 2017-02-21 18:43:14 -08:00
Simon Howard
8dbde24b19 textgen: Add DMWILV* graphics to Makefile.
These images contain the names of the FreeDM intermission screen
level names and need to be copied to the parent directory along
with the CWILV* and WILV* graphics. This fixes a bug introduced
by the earlier desymlinkification of the textgen graphics.
2015-12-24 18:36:36 +01:00
Simon Howard
78b25d0f22 graphics: Eliminate symlinks for text lumps.
Copy the generated text graphics into the parent directory, removing
the need for symlinks and making more progress towards #202.
2015-12-24 11:47:18 +01:00
Mike Swanson
e17a34d9ea de-symlinkify: fraggle 2015-12-17 01:22:01 -08:00
Mike Swanson
fcff7114b0 graphics: generate wikilrs and wivctms with smtextgen
Previously left alone, and with the old font, due to their special
nature, but since then, the small-text generator exists too!  Only
thing special is that wikilrs is rotated, which is resolved simply by
using ImageMagick.

Closes #184
2015-12-15 00:34:14 -08:00
Mike Swanson
90fd6b1686 Cleanup __pycache__ directories with "make clean" 2014-10-29 00:37:42 -07:00
Mike Swanson
8f48751792 fix the filenames in the last commit 2014-10-05 04:10:41 -07:00
Mike Swanson
110522f10e graphics/text/Makefile: clean more generated files 2014-10-05 04:06:51 -07:00
Simon Howard
7a1b49e965 textgen: Generate CREDIT screen.
This is one of the screens of text shown between demos in the demo
loop. Generate this from the contents of a static text file. I
originally wanted to generate this programatically from the CREDITS
file but there are too many contributors to fit them all on the page.
2014-09-07 05:25:12 +00:00
Simon Howard
9968fe0ed1 textgen: Add image include support for smtextgen.
Instead of generating text and image parts in separate stages, add
the ability to include an image in the smtextgen command line. This
makes the command line in the Makefile clearer.
2014-09-07 04:22:09 +00:00
Simon Howard
026ce9137f graphics: Fix name for stealth sphere.
The invisibility power-up is named 'Stealth Sphere' in the Freedoom
DEHACKED lump. Change the HELP screen to match this for consistency.
2014-07-27 03:49:03 +00:00
Simon Howard
18be2c988c graphics: Generate the HELP screen programatically.
The original Doom HELP screen showed the default key bindings for the
game's controls. This is not so useful nowadays: at worst it's
outright misleading because the player might not be using the
defaults, but it's also redundant because most modern source ports
allow the key bindings to be changed via the menus, which doubles as a
convenient list of the current key bindings.

Z0k suggested an alternative HELP screen that shows the items and
powerups available in the game. More discussion can be seen in this
thread: http://www.doomworld.com/vb/freedoom/69458-help/
2014-07-27 03:28:14 +00:00
Simon Howard
7f281321c9 graphics: Generate HELP screens programatically.
Decompose the help screen into three parts: the background, the
text and the title. Generate all except the main text programatically:
the background as a color transformed version of the INTERPIC graphic
and the title using the textgen tool.
2014-06-30 00:10:54 +00:00
Mike Swanson
4c4ad3ac37 Fix a botched merge conflict attempt
While harmless, my previous commit resolving a merge accidentally
resulted in Fabian's line being preserved at the end when it shouldn't
have been.
2014-01-20 06:30:26 -08:00
Mike Swanson
29695eb7ca Merge remote-tracking branch 'fabian/clean_pyc'
Conflicts:
	graphics/text/Makefile
2014-01-20 05:38:21 -08:00
Fabian Greffrath
d9c9b315e6 Remove Python byte-code in the clean rule. 2014-01-20 13:06:50 +01: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
9e88cc4466 text: Add freedoom.bex as build dependency.
The text must be rebuilt if the contents of the Dehacked file
change, as level names are imported from it.
2013-12-30 22:39:58 +00: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