Erlang.mk relies on Relx for generating releases. This chapter covers the Erlang.mk-specific bits. Consult the Relx website for more information.
Erlang.mk will create a release if it detects a Relx configuration file in the $(RELX_CONFIG) location. This defaults to $(CURDIR)/relx.config. You can override it by defining the variable before including Erlang.mk:
RELX_CONFIG = $(CURDIR)/webchat.config
Relx does not need to be installed. Erlang.mk will download and build it automatically.
The Relx executable will be saved in the $(RELX) file. This location defaults to $(CURDIR)/relx and can be overriden.
You can specify additional Relx options using the RELX_OPTS
variable. For example, to enable dev_mode
:
RELX_OPTS = -d true
While you can specify the output directory for the release
in the Relx options directly, Erlang.mk provides a specific
variable for it: RELX_OUTPUT_DIR
. It defaults to the _rel
directory. You can also override it:
RELX_OUTPUT_DIR = /path/to/staging/directory
Now that you’re all set, all you need to do is generate the release. As mentioned before, Erlang.mk will automatically generate it when it detects the $(RELX_CONFIG) file. This means the following command will also build the release:
$ make
If you need to generate the release, and only the release,
the rel
target can be used:
$ make rel
Erlang.mk provides a convenience function for running the release with one simple command:
$ make run
This command will also build the project and generate the release if they weren’t already. It starts the release in console mode, meaning you will also have a shell ready to use to check things as needed.