2014-10-07 06:58:47 -07:00
|
|
|
|
Compiling Freedoom
|
|
|
|
|
==================
|
|
|
|
|
|
2019-08-25 21:17:41 -07:00
|
|
|
|
This document is a general overview of Freedoom’s dependencies
|
2014-10-07 06:58:47 -07:00
|
|
|
|
required to build it. See `README` for a description of what Freedoom
|
2019-08-25 21:17:41 -07:00
|
|
|
|
_is_, and `BUILD-SYSTEM` for the technical details on _how_ Freedoom
|
2014-10-07 06:58:47 -07:00
|
|
|
|
is built.
|
|
|
|
|
|
|
|
|
|
Required software
|
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
|
|
Building the Freedoom IWADs pretty much simply requires the following:
|
|
|
|
|
|
2019-08-25 21:17:41 -07:00
|
|
|
|
* _make_: While there is some attempt to keep our Makefiles
|
2014-10-07 06:58:47 -07:00
|
|
|
|
portable, testing does not really happen on anything but
|
|
|
|
|
https://www.gnu.org/software/make/[GNU Make] (patches to fix
|
|
|
|
|
portability are most welcome!). On non-GNU systems, it might be
|
2019-08-25 21:17:41 -07:00
|
|
|
|
available in a package and binary named as _gmake_.
|
|
|
|
|
* _Python_: Freedoom uses several Python programs in its tree to
|
2019-09-06 14:43:50 -07:00
|
|
|
|
assist with building the IWADs. Python 3.x is required, we no
|
|
|
|
|
longer support Python 2.
|
2019-08-25 21:17:41 -07:00
|
|
|
|
* _Pillow_: A Python image manipulation module that provides the
|
2017-07-31 15:41:39 -07:00
|
|
|
|
features we need for scaling and composing various graphics of the
|
|
|
|
|
game.
|
2019-08-25 21:17:41 -07:00
|
|
|
|
* _DeuTex_ 5.0: Freedoom depends on features developed in this
|
2017-07-17 06:07:17 -07:00
|
|
|
|
version of DeuTex and will not build on earlier versions. It is
|
2017-07-31 15:41:39 -07:00
|
|
|
|
available at https://github.com/Doom-Utils/deutex in source and
|
2019-08-25 21:17:41 -07:00
|
|
|
|
Windows binary formats.
|
2014-10-07 06:58:47 -07:00
|
|
|
|
|
|
|
|
|
All or most of this software should already be available in your
|
2019-08-25 21:17:41 -07:00
|
|
|
|
operating system’s software repository, with the likely exception of
|
2017-07-17 06:07:17 -07:00
|
|
|
|
DeuTex, which is easy to build.
|
2014-10-07 06:58:47 -07:00
|
|
|
|
|
|
|
|
|
Building Freedoom
|
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
|
|
Significant work has been put into making this step easy. At the top
|
|
|
|
|
of the Freedoom source tree, you should be able to simply type `make`
|
|
|
|
|
and wait for it to eventually produce the IWAD files in the `wads`
|
|
|
|
|
sub-directory. Parallel make builds are safe too, such as with `make
|
|
|
|
|
-j`.
|
|
|
|
|
|
|
|
|
|
If only interested in a specific IWAD, you can also run `make
|
2014-10-07 07:08:55 -07:00
|
|
|
|
wads/freedm.wad`, `make wads/freedoom1.wad`, `make wads/freedoom2.wad`.
|
2014-10-07 06:58:47 -07:00
|
|
|
|
|
|
|
|
|
As mentioned in the prior section, the Makefile only recieves testing
|
|
|
|
|
with the GNU version of Make. If the primary version of your Make is
|
|
|
|
|
not GNU and it fails, try `gmake` instead.
|
|
|
|
|
|
|
|
|
|
Building on Microsoft Windows
|
|
|
|
|
-----------------------------
|
|
|
|
|
|
2017-07-31 15:41:39 -07:00
|
|
|
|
Freedoom has normally seen all of its development on Unix systems,
|
|
|
|
|
nevertheless some people like to compile Freedoom on Windows. This is
|
|
|
|
|
possible, although complicated by our choice of tooling for the
|
|
|
|
|
project.
|
2016-01-02 08:22:47 -08:00
|
|
|
|
|
2017-07-31 15:41:39 -07:00
|
|
|
|
GNU environments for Windows such as https://cygwin.com/[Cygwin],
|
|
|
|
|
http://www.msys2.org/[MSYS2], or
|
|
|
|
|
https://blogs.msdn.microsoft.com/wsl/[WSL] provide sufficient shell
|
|
|
|
|
capabilities to build Freedoom. The dependencies listed previously
|
|
|
|
|
for Freedoom apply just as well to a Windows environment.
|
2014-10-07 06:58:47 -07:00
|
|
|
|
|
2017-07-31 15:41:39 -07:00
|
|
|
|
Instructions on how to use a GNU system and shell are out of scope of
|
|
|
|
|
this document.
|
2014-10-07 06:58:47 -07:00
|
|
|
|
|
|
|
|
|
Optional software
|
|
|
|
|
-----------------
|
|
|
|
|
|
2019-08-25 21:17:41 -07:00
|
|
|
|
* _Git_: Freedoom is developed using the Git version control system,
|
2014-10-07 06:58:47 -07:00
|
|
|
|
the latest developments can be tracked with it.
|
2019-08-25 21:17:41 -07:00
|
|
|
|
* _AsciiDoc_: The `*.adoc` files are all written in AsciiDoc markup,
|
2014-10-07 06:58:47 -07:00
|
|
|
|
and it can be used to generate HTML versions of all these
|
2019-09-12 15:44:49 -07:00
|
|
|
|
documents. This is used as part of the `make dist` and `make
|
|
|
|
|
install` targets, to generate the `NEWS.html` and `README.html`
|
|
|
|
|
files for inclusion with official Zip files. Different
|
|
|
|
|
implementations (eg, AsciiDoctor) may be selected by passing
|
|
|
|
|
`ASCIIDOC` and `ASCIIDOC_MAN` environment variables to `make`.
|
|
|
|
|
* _AsciiDoctor PDF_: Our manual, maintained in `manual/manual.adoc`,
|
|
|
|
|
has a hard dependency on this implementation of AsciiDoc for its
|
|
|
|
|
superior-looking PDF output.
|
2019-08-25 21:17:41 -07:00
|
|
|
|
* _Zip_: The `make dist` target uses Zip to create release archives
|
2014-10-12 18:00:45 -07:00
|
|
|
|
for FreeDM, Phase 1, and Phase 2. This can also provide an easy
|
|
|
|
|
way to automate generating in-development versions for other
|
|
|
|
|
people.
|