aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2018-06-04 12:04:40 +0200
committerLoïc Hoguin <[email protected]>2018-06-04 12:04:40 +0200
commit4684b443bbe71bd9b7acd7a4b5aec5160031ae71 (patch)
tree164bee29e055c40a176b568b0076627602632266
parent75a6ce5f30ab530b2f38ea06262cff0d3a78643a (diff)
downloaderlang.mk-4684b443bbe71bd9b7acd7a4b5aec5160031ae71.tar.gz
erlang.mk-4684b443bbe71bd9b7acd7a4b5aec5160031ae71.tar.bz2
erlang.mk-4684b443bbe71bd9b7acd7a4b5aec5160031ae71.zip
Update user guide
-rw-r--r--guide/building.html28
-rw-r--r--guide/ci.html13
-rw-r--r--guide/compat.html3
-rw-r--r--guide/contributing.html15
-rw-r--r--guide/coverage.html2
-rw-r--r--guide/ct.html7
-rw-r--r--guide/deps.html1
-rw-r--r--guide/dialyzer.html8
-rw-r--r--guide/escript.html6
-rw-r--r--guide/eunit.html3
-rw-r--r--guide/getting_started.html7
-rw-r--r--guide/history.html6
-rw-r--r--guide/index.html2
-rw-r--r--guide/kerl.html3
-rw-r--r--guide/overview.html41
-rw-r--r--guide/plugins_list.html22
-rw-r--r--guide/plugins_usage.html12
-rw-r--r--guide/sfx.html3
-rw-r--r--guide/shell.html4
-rw-r--r--guide/triq.html41
-rw-r--r--guide/why.html17
-rw-r--r--guide/xref.html2
22 files changed, 132 insertions, 114 deletions
diff --git a/guide/building.html b/guide/building.html
index a3b19af..dcff3d0 100644
--- a/guide/building.html
+++ b/guide/building.html
@@ -36,8 +36,7 @@ div.navfooter{margin-bottom:1em}
<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="code.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="deps.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="building"></a>Chapter 6. Building</h2></div></div></div><p>Erlang.mk can do a lot of things, but it is, first and
foremost, a build tool. In this chapter we will cover
the basics of building a project with Erlang.mk.</p><p>For most of this chapter, we will assume that you are
-using a project <a class="link" href="getting_started.html" title="Chapter 2. Getting started">generated by Erlang.mk</a>
-<a class="xref" href="getting_started.html" title="Chapter 2. Getting started">Chapter 2, <em>Getting started</em></a>.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_how_to_build"></a>6.1. How to build</h2></div></div></div><p>To build a project, all you have to do is type <code class="literal">make</code>:</p><pre class="programlisting">$ make</pre><p>It will work regardless of your project: OTP applications,
+using a project <a class="link" href="getting_started.html" title="Chapter 2. Getting started">generated by Erlang.mk</a>.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_how_to_build"></a>6.1. How to build</h2></div></div></div><p>To build a project, all you have to do is type <code class="literal">make</code>:</p><pre class="programlisting">$ make</pre><p>It will work regardless of your project: OTP applications,
library applications, NIFs, port drivers or even releases.
Erlang.mk also automatically downloads and compiles the
dependencies for your project.</p><p>All this is possible thanks to a combination of configuration
@@ -60,15 +59,13 @@ and develop on a machine with slow file access, like the
Raspberry Pi and many other embedded devices.</p><p>Note that this command may fail if a required dependency
is missing.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_dependencies"></a>6.2.2. Dependencies</h3></div></div></div><p>You can build all dependencies, and nothing else, by
running the following command:</p><pre class="programlisting">$ make deps</pre><p>This will fetch and compile all dependencies and their
-dependencies, recursively.</p><p><a class="link" href="deps.html" title="Chapter 7. Packages and dependencies">Packages and dependencies</a>
-<a class="xref" href="deps.html" title="Chapter 7. Packages and dependencies">Chapter 7, <em>Packages and dependencies</em></a> are covered
+dependencies, recursively.</p><p><a class="link" href="deps.html" title="Chapter 7. Packages and dependencies">Packages and dependencies</a> are covered
in the next chapter.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_release"></a>6.2.3. Release</h3></div></div></div><p>It is not possible to build the release without at least
building the application itself, unless of course if there’s
no application to begin with.</p><p>To generate the release, <code class="literal">make</code> will generally suffice with
a normal Erlang.mk. A separate target is however available,
and will take care of building the release, after building
-the application and all dependencies:</p><pre class="programlisting">$ make rel</pre><p>Consult the <a class="link" href="relx.html" title="Chapter 9. Releases">Releases</a>
-<a class="xref" href="relx.html" title="Chapter 9. Releases">Chapter 9, <em>Releases</em></a> chapter for more
+the application and all dependencies:</p><pre class="programlisting">$ make rel</pre><p>Consult the <a class="link" href="relx.html" title="Chapter 9. Releases">Releases</a> chapter for more
information about what releases are and how they are generated.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_application_resource_file"></a>6.3. Application resource file</h2></div></div></div><p>When building your application, Erlang.mk will generate the
<a class="ulink" href="http://www.erlang.org/doc/man/app.html" target="_top">application resource file</a>.
This file is mandatory for all Erlang applications and is
@@ -129,9 +126,21 @@ PROJECT_VERSION = 2.0.0-pre.2
PROJECT_REGISTERED = cowboy_clock
LOCAL_DEPS = crypto
-DEPS = cowlib ranch</pre><p>Any space before and after the value is dropped.</p><p><a class="link" href="deps.html" title="Chapter 7. Packages and dependencies">Dependencies</a>
-<a class="xref" href="deps.html" title="Chapter 7. Packages and dependencies">Chapter 7, <em>Packages and dependencies</em></a> are covered in details in
-the next chapter.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_legacy_method"></a>6.3.2. Legacy method</h3></div></div></div><p>The <span class="emphasis"><em>src/$(PROJECT).app.src</em></span> file is a legacy method of
+DEPS = cowlib ranch</pre><p>Any space before and after the value is dropped.</p><p><a class="link" href="deps.html" title="Chapter 7. Packages and dependencies">Dependencies</a> are covered in details in
+the next chapter.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_application_environment"></a>6.3.2. Application environment</h3></div></div></div><p>The <code class="literal">PROJECT_ENV</code> variable is used to set the application
+environment:</p><pre class="programlisting">define PROJECT_ENV
+[
+ {chips, [currysauce,{mushypeas,false}]},
+ {pizza, [{size,large},{toppings,[anchovies]}]}
+]
+endef</pre><p>If you have a large set of environment variables, you may find it
+easier to use a separate file. Do this by including the following
+in your Makefile:</p><pre class="programlisting">PROJECT_ENV_FILE = src/env.src
+PROJECT_ENV = $(subst \n,$(newline),$(shell cat $(PROJECT_ENV_FILE) | sed -e 's/$$/\\n/;'))
+ebin/$(PROJECT).app:: $(PROJECT_ENV_FILE)</pre><p>The file has the same contents as the <code class="literal">PROJECT_ENV</code> variable:</p><pre class="programlisting">[
+ {chips, [currysauce,{mushypeas,false}]},
+ {pizza, [{size,large},{toppings,[anchovies]}]}
+]</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_legacy_method"></a>6.3.3. Legacy method</h3></div></div></div><p>The <span class="emphasis"><em>src/$(PROJECT).app.src</em></span> file is a legacy method of
building Erlang applications. It was introduced by the original
<code class="literal">rebar</code> build tool, of which Erlang.mk owes a great deal as it
is its main inspiration.</p><p>The <span class="emphasis"><em>.app.src</em></span> file serves as a template to generate the <span class="emphasis"><em>.app</em></span>
@@ -160,7 +169,6 @@ files are run before, and the resulting Erlang source files are
then built normally.</p><p>In addition, Erlang.mk keeps track of header files (<code class="literal">.hrl</code>)
as described at the end of this chapter. It can also compile
C code, as described in the <a class="link" href="ports.html" title="Chapter 8. NIFs and port drivers">NIFs and port drivers</a>
-<a class="xref" href="ports.html" title="Chapter 8. NIFs and port drivers">Chapter 8, <em>NIFs and port drivers</em></a>
chapter.</p><p>Erlang.mk also comes with plugins for the following formats:</p><div class="informaltable"><table class="informaltable" cellpadding="4px" style="border-collapse: collapse;border-top: 3px solid #527bbd; border-bottom: 3px solid #527bbd; border-left: 3px solid #527bbd; border-right: 3px solid #527bbd; "><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /><col class="col_4" /></colgroup><thead><tr><th style="border-right: 1px solid #527bbd; border-bottom: 1px solid #527bbd; " align="left" valign="top"> Extension </th><th style="border-right: 1px solid #527bbd; border-bottom: 1px solid #527bbd; " align="center" valign="top"> Location </th><th style="border-right: 1px solid #527bbd; border-bottom: 1px solid #527bbd; " align="center" valign="top"> Description </th><th style="border-bottom: 1px solid #527bbd; " align="center" valign="top"> Output</th></tr></thead><tbody><tr><td style="border-right: 1px solid #527bbd; border-bottom: 1px solid #527bbd; " align="left" valign="top"><p>.dtl</p></td><td style="border-right: 1px solid #527bbd; border-bottom: 1px solid #527bbd; " align="center" valign="top"><p>templates/</p></td><td style="border-right: 1px solid #527bbd; border-bottom: 1px solid #527bbd; " align="center" valign="top"><p>Django templates</p></td><td style="border-bottom: 1px solid #527bbd; " align="center" valign="top"><p>ebin/*.beam</p></td></tr><tr><td style="border-right: 1px solid #527bbd; " align="left" valign="top"><p>.proto</p></td><td style="border-right: 1px solid #527bbd; " align="center" valign="top"><p>src/</p></td><td style="border-right: 1px solid #527bbd; " align="center" valign="top"><p>Protocol buffers</p></td><td style="" align="center" valign="top"><p>ebin/*.beam</p></td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_compilation_options"></a>6.6. Compilation options</h2></div></div></div><p>Erlang.mk provides a few variables that you can use to customize
the build process and the resulting files.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_erlc_opts"></a>6.6.1. ERLC_OPTS</h3></div></div></div><p><code class="literal">ERLC_OPTS</code> can be used to pass some options to <code class="literal">erlc</code>, the Erlang
compiler. Erlang.mk does not restrict any option. Please refer to
diff --git a/guide/ci.html b/guide/ci.html
index 5705b07..998c3cf 100644
--- a/guide/ci.html
+++ b/guide/ci.html
@@ -33,24 +33,21 @@ div.navfooter{margin-bottom:1em}
</header>
<main>
-<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="coverage.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="dialyzer.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="ci"></a>Chapter 21. Continuous integration</h2></div></div></div><p>Erlang.mk comes with some support for continuous integration,
+<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="coverage.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="dialyzer.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="ci"></a>Chapter 22. Continuous integration</h2></div></div></div><p>Erlang.mk comes with some support for continuous integration,
aimed at open source projects that need to support more than
one specific Erlang/OTP release. (If you target one specific
release, check the <a class="link" href="kerl.html#otp_version_pinning" title="12.2. OTP version pinning">OTP version pinning</a>
-<a class="xref" href="kerl.html#otp_version_pinning" title="12.2. OTP version pinning">Section 12.2, “OTP version pinning”</a>
-section of the <a class="link" href="kerl.html" title="Chapter 12. OTP version management">OTP version management</a>
-<a class="xref" href="kerl.html" title="Chapter 12. OTP version management">Chapter 12, <em>OTP version management</em></a> chapter.)</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_configuring_erlang_otp_versions_to_test"></a>21.1. Configuring Erlang/OTP versions to test</h2></div></div></div><p>To use the CI plugin you must first configure which versions
+section of the <a class="link" href="kerl.html" title="Chapter 12. OTP version management">OTP version management</a> chapter.)</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_configuring_erlang_otp_versions_to_test"></a>22.1. Configuring Erlang/OTP versions to test</h2></div></div></div><p>To use the CI plugin you must first configure which versions
of Erlang/OTP will be used. Erlang.mk provides three separate
configuration variables depending on whether you need a normal
OTP release, a HiPE-enabled release or an ErLLVM-enabled release.</p><p>At the time of writing, this is how you would test against all
the most recent patch releases of Erlang/OTP 19 and above:</p><pre class="programlisting">CI_OTP = OTP-19.0.7 OTP-19.1.6 OTP-19.2.3 OTP-19.3.6.2 OTP-20.0.4</pre><p>If you want to test against HiPE and ErLLVM but only with the
latest version of Erlang/OTP, the following could work:</p><pre class="programlisting">CI_HIPE = $(lastword $(CI_OTP))
-CI_ERLLVM = $(CI_HIPE)</pre><p>Consult the <a class="link" href="kerl.html" title="Chapter 12. OTP version management">OTP version management</a>
-<a class="xref" href="kerl.html" title="Chapter 12. OTP version management">Chapter 12, <em>OTP version management</em></a> chapter for more
+CI_ERLLVM = $(CI_HIPE)</pre><p>Consult the <a class="link" href="kerl.html" title="Chapter 12. OTP version management">OTP version management</a> chapter for more
information about Erlang/OTP versions and customization of the
-Erlang/OTP builds.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_running_tests_across_all_configured_versions"></a>21.2. Running tests across all configured versions</h2></div></div></div><p>The recommended way to run the <code class="literal">ci</code> target is with the option
+Erlang/OTP builds.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_running_tests_across_all_configured_versions"></a>22.2. Running tests across all configured versions</h2></div></div></div><p>The recommended way to run the <code class="literal">ci</code> target is with the option
<code class="literal">-k</code>. It will ensure that tests are run for all configured
-Erlang/OTP versions, even if there are errors:</p><pre class="programlisting">$ make ci -k</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_extending_the_ci_targets"></a>21.3. Extending the CI targets</h2></div></div></div><p>The <code class="literal">ci</code> target can be extended. For example to run Dialyzer
+Erlang/OTP versions, even if there are errors:</p><pre class="programlisting">$ make ci -k</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_extending_the_ci_targets"></a>22.3. Extending the CI targets</h2></div></div></div><p>The <code class="literal">ci</code> target can be extended. For example to run Dialyzer
at the end of CI:</p><pre class="programlisting">ci:: dialyze</pre><p>Additional setup can be done by extending the <code class="literal">ci-setup</code>
target. This target is ran before testing each individual
Erlang/OTP version.</p><p>For example, to ensure dependencies are re-fetched/built
diff --git a/guide/compat.html b/guide/compat.html
index aa03ab7..18377ee 100644
--- a/guide/compat.html
+++ b/guide/compat.html
@@ -45,8 +45,7 @@ use Rebar 2 to patch any Rebar project and make it compatible
with Erlang.mk. This feature essentially patches Rebar out
and adds a Makefile to the project that Erlang.mk can then
use for building:</p><p><span class="emphasis"><em>Autoload</em></span> is documented in more details in the
-<a class="link" href="deps.html" title="Chapter 7. Packages and dependencies">Packages and dependencies</a>
-<a class="xref" href="deps.html" title="Chapter 7. Packages and dependencies">Chapter 7, <em>Packages and dependencies</em></a> chapter.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_erlang_mk_projects_as_rebar_dependencies"></a>13.2. Erlang.mk projects as Rebar dependencies</h2></div></div></div><p>Erlang.mk projects can be made compatible with the Rebar family
+<a class="link" href="deps.html" title="Chapter 7. Packages and dependencies">Packages and dependencies</a> chapter.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_erlang_mk_projects_as_rebar_dependencies"></a>13.2. Erlang.mk projects as Rebar dependencies</h2></div></div></div><p>Erlang.mk projects can be made compatible with the Rebar family
of build tools pretty easily, as Erlang.mk will generate
all the files they require for building.</p><p>The Rebar family requires two files: a <span class="emphasis"><em>rebar.config</em></span> file
containing compilation options and the list of dependencies,
diff --git a/guide/contributing.html b/guide/contributing.html
index 3a4cb2a..9da6481 100644
--- a/guide/contributing.html
+++ b/guide/contributing.html
@@ -33,7 +33,7 @@ div.navfooter{margin-bottom:1em}
</header>
<main>
-<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="history.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> </td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="contributing"></a>Chapter 28. Contributing</h2></div></div></div><p>You are welcome and encouraged to contribute.</p><p>This is how.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_priorities"></a>28.1. Priorities</h2></div></div></div><p>From the most important to the least important:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="history.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> </td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="contributing"></a>Chapter 29. Contributing</h2></div></div></div><p>You are welcome and encouraged to contribute.</p><p>This is how.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_priorities"></a>29.1. Priorities</h2></div></div></div><p>From the most important to the least important:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Bugs
</li><li class="listitem">
Package issues/additions
@@ -41,7 +41,7 @@ Package issues/additions
Refactoring
</li><li class="listitem">
Features
-</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_bugs"></a>28.2. Bugs</h2></div></div></div><p>If you have found a bug, you should open a ticket. Include
+</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_bugs"></a>29.2. Bugs</h2></div></div></div><p>If you have found a bug, you should open a ticket. Include
everything relevant including the command you used, output,
a link to the code that triggers the issue, why you think
this is a bug, etc.</p><p>If you think you have found a bug but you are not sure, you
@@ -49,7 +49,7 @@ should open a ticket as previously explained.</p><p>If you have found a bug and
NOW, open a ticket as previously explained.</p><p>Once you have opened a ticket, be patient, try to answer
questions in a timely manner and confirm that the bug was
indeed fixed when it is.</p><p>If you can’t be patient, either try to solve the bug and
-contribute the fix back or become a paying customer.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_code"></a>28.3. Code</h2></div></div></div><p>The code is located in the <span class="emphasis"><em>core/*.mk</em></span> and <span class="emphasis"><em>plugins/*.mk</em></span> files.
+contribute the fix back or become a paying customer.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_code"></a>29.3. Code</h2></div></div></div><p>The code is located in the <span class="emphasis"><em>core/*.mk</em></span> and <span class="emphasis"><em>plugins/*.mk</em></span> files.
The tests are located in the <span class="emphasis"><em>test/Makefile</em></span> and <span class="emphasis"><em>test/*.mk</em></span> files.</p><p>If you have a fix or a hack for a bug, you should open a
pull request. Any fix should include a test case that fails
before the fix and is working after.</p><p>If you have a test case that reproduces a bug, but no fix for
@@ -62,7 +62,7 @@ The value 4 is particular and shows expanded commands right
before they are executed.</p><p>To run tests in parallel, use the <code class="literal">-j</code> option. It is generally
a good idea to also use the <code class="literal">-k</code> option to run all tests even
if one fails. For example: <code class="literal">make check -j 32 -k</code>.</p><p>Some changes should be tested against all packages. Continue
-reading for more details on testing them.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_packages"></a>28.4. Packages</h2></div></div></div><p>You can search existing packages using the <code class="literal">make search q=STRING</code>
+reading for more details on testing them.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_packages"></a>29.4. Packages</h2></div></div></div><p>You can search existing packages using the <code class="literal">make search q=STRING</code>
command. This can be done both from an Erlang.mk project or
directly from the Erlang.mk repository.</p><p>Packages can be added to the index using the <code class="literal">pkg_add.sh</code> script.</p><pre class="programlisting">$ git clone https://github.com/$YOURUSERNAME/erlang.mk
$ cd erlang.mk
@@ -75,12 +75,11 @@ where <code class="literal">PACKAGE</code> is the name of the package, for examp
This can take a long time. Some packages will fail with certain
versions of Erlang, or if a prerequisite is missing from your system.
You can of course speed things up using the <code class="literal">-j</code> and <code class="literal">-k</code> flags.</p><p>After all packages have been tested, you can run the command
-<code class="literal">make summary</code> to know what changed since the previous run.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_documentation"></a>28.5. Documentation</h2></div></div></div><p>The documentation is always right.</p><p>If you think you have found a mistake in the documentation,
+<code class="literal">make summary</code> to know what changed since the previous run.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_documentation"></a>29.5. Documentation</h2></div></div></div><p>The documentation is always right.</p><p>If you think you have found a mistake in the documentation,
this is a bug. You can either open a ticket or send a pull
request.</p><p>To make sure that the documentation changes work, install
-the listed <a class="link" href="asciidoc.html" title="Chapter 14. AsciiDoc documentation">Requirements</a>
-<a class="xref" href="asciidoc.html" title="Chapter 14. AsciiDoc documentation">Chapter 14, <em>AsciiDoc documentation</em></a> on your system and
-run <code class="literal">make docs</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_feature_requests"></a>28.6. Feature requests</h2></div></div></div><p>If you have an awesome idea or need something that Erlang.mk
+the listed <a class="link" href="asciidoc.html" title="Chapter 14. AsciiDoc documentation">Requirements</a> on your system and
+run <code class="literal">make docs</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_feature_requests"></a>29.6. Feature requests</h2></div></div></div><p>If you have an awesome idea or need something that Erlang.mk
doesn’t provide yet, open a ticket. Provide as much detail as
possible.</p><p>If you have code, great! Open a pull request as previously
explained.</p><p>If not, you can still improve your feature request by writing
diff --git a/guide/coverage.html b/guide/coverage.html
index 6ee0436..d269e73 100644
--- a/guide/coverage.html
+++ b/guide/coverage.html
@@ -33,7 +33,7 @@ div.navfooter{margin-bottom:1em}
</header>
<main>
-<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="ct.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ci.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="coverage"></a>Chapter 20. Code coverage</h2></div></div></div><p>Placeholder chapter.</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ct.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tests.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ci.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
+<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="triq.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ci.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="coverage"></a>Chapter 21. Code coverage</h2></div></div></div><p>Placeholder chapter.</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="triq.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tests.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ci.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
</main>
</body>
</html>
diff --git a/guide/ct.html b/guide/ct.html
index e05a767..3c09784 100644
--- a/guide/ct.html
+++ b/guide/ct.html
@@ -33,7 +33,7 @@ div.navfooter{margin-bottom:1em}
</header>
<main>
-<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="eunit.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="coverage.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="ct"></a>Chapter 19. Common Test</h2></div></div></div><p>Common Test is Erlang’s functional testing framework.
+<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="eunit.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="triq.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="ct"></a>Chapter 19. Common Test</h2></div></div></div><p>Common Test is Erlang’s functional testing framework.
Erlang.mk automates the discovery and running of Common
Test suites.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_writing_tests_2"></a>19.1. Writing tests</h2></div></div></div><p>The <a class="ulink" href="http://www.erlang.org/doc/apps/common_test/write_test_chapter.html" target="_top">Common Test user guide</a>
is the best place to learn how to write tests. Erlang.mk
@@ -56,9 +56,8 @@ using the variable <code class="literal">t</code>. Note that this only applies t
suite-specific targets, like the <code class="literal">ct-http</code> example above.</p><p>To run all tests from the <code class="literal">http_compress</code> group in the
<code class="literal">http_SUITE</code> test suite, write:</p><pre class="programlisting">$ make ct-http t=http_compress</pre><p>Similarly, to run a specific test case in that group:</p><pre class="programlisting">$ make ct-http t=http_compress:headers_dupe</pre><p>To do the same against a multi-application repository,
you can use the <code class="literal">-C</code> option:</p><pre class="programlisting">$ make -C apps/my_app ct-http t=my_group:my_case</pre><p>Note that this also applies to dependencies. When using Cowboy
-as a dependency, you can run the following directly:</p><pre class="programlisting">$ make -C deps/cowboy ct-http t=http_compress</pre><p>Finally, <a class="link" href="coverage.html" title="Chapter 20. Code coverage">code coverage</a>
-<a class="xref" href="coverage.html" title="Chapter 20. Code coverage">Chapter 20, <em>Code coverage</em></a> is available,
-but covered in its own chapter.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="eunit.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tests.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="coverage.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
+as a dependency, you can run the following directly:</p><pre class="programlisting">$ make -C deps/cowboy ct-http t=http_compress</pre><p>Finally, <a class="link" href="coverage.html" title="Chapter 21. Code coverage">code coverage</a> is available,
+but covered in its own chapter.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="eunit.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tests.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="triq.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
</main>
</body>
</html>
diff --git a/guide/deps.html b/guide/deps.html
index 43d0170..6930352 100644
--- a/guide/deps.html
+++ b/guide/deps.html
@@ -60,7 +60,6 @@ dep_leveldb = git https://github.com/basho/leveldb 2.1.3</pre><p>This dependency
you could easily copy the resulting shared file into your
<span class="emphasis"><em>priv/</em></span> directory as part of the build process. More information
about that in the <a class="link" href="ports.html" title="Chapter 8. NIFs and port drivers">NIFs and port drivers</a>
-<a class="xref" href="ports.html" title="Chapter 8. NIFs and port drivers">Chapter 8, <em>NIFs and port drivers</em></a>
chapter.</p><p>Another variable, <code class="literal">LOCAL_DEPS</code>, allows specifying runtime
dependencies which are part of Erlang/OTP itself, but also
dependencies that are included in the repository. Since they
diff --git a/guide/dialyzer.html b/guide/dialyzer.html
index 08f7644..3626a75 100644
--- a/guide/dialyzer.html
+++ b/guide/dialyzer.html
@@ -33,18 +33,18 @@ div.navfooter{margin-bottom:1em}
</header>
<main>
-<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="ci.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="xref.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="dialyzer"></a>Chapter 22. Dialyzer</h2></div></div></div><p>Dialyzer is a tool that will detect discrepancies in your
+<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="ci.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="xref.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="dialyzer"></a>Chapter 23. Dialyzer</h2></div></div></div><p>Dialyzer is a tool that will detect discrepancies in your
program. It does so using a technique known as success
typing analysis which has the advantage of providing no
false positives. Dialyzer is able to detect type errors,
-dead code and more.</p><p>Erlang.mk provides a wrapper around Dialyzer.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_how_it_works"></a>22.1. How it works</h2></div></div></div><p>Dialyzer requires a PLT file to work. The PLT file contains
+dead code and more.</p><p>Erlang.mk provides a wrapper around Dialyzer.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_how_it_works"></a>23.1. How it works</h2></div></div></div><p>Dialyzer requires a PLT file to work. The PLT file contains
the analysis information from all applications which are not
expected to change, or rarely do. These would be all the
dependencies of the application or applications you are
currently working on, including standard applications in
Erlang/OTP itself.</p><p>Dialyzer can generate this PLT file. Erlang.mk includes rules
to automatically generate the PLT file when it is missing.</p><p>Once the PLT file is generated, Dialyzer can perform the
-analysis in record time.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_configuration_8"></a>22.2. Configuration</h2></div></div></div><p>In a typical usage scenario, no variable needs to be set.
+analysis in record time.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_configuration_8"></a>23.2. Configuration</h2></div></div></div><p>In a typical usage scenario, no variable needs to be set.
The defaults should be enough. Do note however that the
dependencies need to be set properly using the <code class="literal">DEPS</code> and
<code class="literal">LOCAL_DEPS</code> variables.</p><p>The <code class="literal">DIALYZER_PLT</code> file indicates where the PLT file will
@@ -59,7 +59,7 @@ The former one defines which directories should be part
of the analysis. The latter defines what extra warnings
Dialyzer should report.</p><p>Note that Erlang.mk enables the race condition warnings
by default. As it can take considerably large resources
-to run, you may want to disable it on larger projects.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_usage_6"></a>22.3. Usage</h2></div></div></div><p>To perform an analysis, run the following command:</p><pre class="programlisting">$ make dialyze</pre><p>This will create the PLT file if it doesn’t exist.</p><p>The analysis will also be performed when you run the
+to run, you may want to disable it on larger projects.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_usage_6"></a>23.3. Usage</h2></div></div></div><p>To perform an analysis, run the following command:</p><pre class="programlisting">$ make dialyze</pre><p>This will create the PLT file if it doesn’t exist.</p><p>The analysis will also be performed when you run the
following command, alongside tests:</p><pre class="programlisting">$ make check</pre><p>You can use the <code class="literal">plt</code> target to create the PLT file if
it doesn’t exist. This is normally not necessary as
Dialyzer creates it automatically.</p><p>The PLT file will be removed when you run <code class="literal">make distclean</code>.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ci.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tests.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="xref.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
diff --git a/guide/escript.html b/guide/escript.html
index 77cffef..7ea67a2 100644
--- a/guide/escript.html
+++ b/guide/escript.html
@@ -34,11 +34,9 @@ div.navfooter{margin-bottom:1em}
<main>
<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="sfx.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="kerl.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="escript"></a>Chapter 11. Escripts</h2></div></div></div><p>Escripts are an alternative to release. They are meant to be
-used for small command line executables written in Erlang.</p><p>They are not self-contained, unlike <a class="link" href="relx.html" title="Chapter 9. Releases">releases</a>
-<a class="xref" href="relx.html" title="Chapter 9. Releases">Chapter 9, <em>Releases</em></a>.
+used for small command line executables written in Erlang.</p><p>They are not self-contained, unlike <a class="link" href="relx.html" title="Chapter 9. Releases">releases</a>.
Erlang must be installed for them to run. This however means
-that they are fairly small compared to releases.</p><p>For self-contained executables, check <a class="link" href="sfx.html" title="Chapter 10. Self-extracting releases">self-extracting releases</a>
-<a class="xref" href="sfx.html" title="Chapter 10. Self-extracting releases">Chapter 10, <em>Self-extracting releases</em></a>.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_requirements"></a>11.1. Requirements</h2></div></div></div><p>Erlang.mk uses <code class="literal">p7zip</code> by default to generate the escript
+that they are fairly small compared to releases.</p><p>For self-contained executables, check <a class="link" href="sfx.html" title="Chapter 10. Self-extracting releases">self-extracting releases</a>.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_requirements"></a>11.1. Requirements</h2></div></div></div><p>Erlang.mk uses <code class="literal">p7zip</code> by default to generate the escript
archive. Make sure it is installed. On most systems the
package is named <code class="literal">p7zip</code>; on Ubuntu you need <code class="literal">p7zip-full</code>.</p><p>If <code class="literal">p7zip</code> is unavailable, <code class="literal">zip</code> may be used by setting
the <code class="literal">ESCRIPT_ZIP</code> variable. For example:</p><pre class="programlisting">$ make escript ESCRIPT_ZIP=zip</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_generating_an_escript"></a>11.2. Generating an escript</h2></div></div></div><p>Run the following command to generate an escript:</p><pre class="programlisting">$ make escript</pre><p>This will by default create an escript with the same name as
diff --git a/guide/eunit.html b/guide/eunit.html
index 363b8fe..eedd8e7 100644
--- a/guide/eunit.html
+++ b/guide/eunit.html
@@ -70,8 +70,7 @@ the variable <code class="literal">t</code>.</p><p>For example, to run all tests
module (instead of all tests from the entire project),
one could write:</p><pre class="programlisting">$ make eunit t=cow_http_hd</pre><p>Similarly, to run a specific test case:</p><pre class="programlisting">$ make eunit t=cow_http_hd:parse_accept_test_</pre><p>To do the same against a multi-application repository,
you can use the <code class="literal">-C</code> option:</p><pre class="programlisting">$ make -C apps/my_app eunit t=my_module:hello_test</pre><p>Note that this also applies to dependencies. From Cowboy,
-you can run the following directly:</p><pre class="programlisting">$ make -C deps/cowlib eunit t=cow_http_hd</pre><p>Finally, <a class="link" href="coverage.html" title="Chapter 20. Code coverage">code coverage</a>
-<a class="xref" href="coverage.html" title="Chapter 20. Code coverage">Chapter 20, <em>Code coverage</em></a> is available,
+you can run the following directly:</p><pre class="programlisting">$ make -C deps/cowlib eunit t=cow_http_hd</pre><p>Finally, <a class="link" href="coverage.html" title="Chapter 21. Code coverage">code coverage</a> is available,
but covered in its own chapter.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="shell.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tests.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ct.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
</main>
</body>
diff --git a/guide/getting_started.html b/guide/getting_started.html
index 06b92cd..d779c71 100644
--- a/guide/getting_started.html
+++ b/guide/getting_started.html
@@ -62,8 +62,7 @@ cp .erlang.mk.build/erlang.mk ./erlang.mk
rm -rf .erlang.mk.build</pre><p>This is Erlang.mk bootstrapping itself. Indeed, the file you
initially downloaded contains nothing more than the code needed
to bootstrap. This operation is done only once. Consult the
-<a class="link" href="updating.html" title="Chapter 4. Updating Erlang.mk">Updating Erlang.mk</a>
-<a class="xref" href="updating.html" title="Chapter 4. Updating Erlang.mk">Chapter 4, <em>Updating Erlang.mk</em></a> chapter for more
+<a class="link" href="updating.html" title="Chapter 4. Updating Erlang.mk">Updating Erlang.mk</a> chapter for more
information.</p><p>Of course, the generated project can now be compiled:</p><pre class="programlisting">$ make</pre><p>Cheers!</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_getting_started_with_otp_libraries"></a>2.4. Getting started with OTP libraries</h2></div></div></div><p>An OTP library is an Erlang application that has no supervision
tree. In other words, it is nothing but modules.</p><p>This kind of project can also be generated by Erlang.mk, using
the <code class="literal">bootstrap-lib</code> target:</p><pre class="programlisting">$ make -f erlang.mk bootstrap-lib</pre><p>Erlang.mk will once again bootstrap itself and generate all
@@ -76,7 +75,6 @@ create a project that will build a release:</p><pre class="programlisting">$ mak
commands useful during operations, and put the components
of the system in separate applications that you will then
depend on. Consult the <a class="link" href="deps.html" title="Chapter 7. Packages and dependencies">Packages and dependencies</a>
-<a class="xref" href="deps.html" title="Chapter 7. Packages and dependencies">Chapter 7, <em>Packages and dependencies</em></a>
chapter for more information.</p><p>When you run <code class="literal">make</code> from now on, Erlang.mk will compile your
project and build the release:</p><pre class="programlisting">$ make
APP hello_joe.app.src
@@ -93,7 +91,6 @@ project and build the release:</p><pre class="programlisting">$ make
<span class="emphasis"><em>relx</em></span>, the release building tool. So don’t worry if you see
more output than above.</p><p>If building the release is slow, no need to upgrade your
hardware just yet. Just consult the <a class="link" href="relx.html" title="Chapter 9. Releases">Releases</a>
-<a class="xref" href="relx.html" title="Chapter 9. Releases">Chapter 9, <em>Releases</em></a>
chapter for various tips to speed up build time during
development.</p><p>You can start the release using the <span class="emphasis"><em>./_rel/hello_joe_release/bin/hello_joe_release</em></span>
script, or simply run <code class="literal">make run</code>. The latter will also compile
@@ -135,7 +132,7 @@ boilerplate. It is rarely an issue of course, except when
creating new modules. That’s why Erlang.mk not only comes with
templates for generating projects, but also individual modules!</p><p>You can list all available templates with the <code class="literal">list-templates</code>
target:</p><pre class="programlisting">$ make list-templates
-Available templates: cowboy_http cowboy_loop cowboy_rest cowboy_ws gen_fsm gen_server ranch_protocol supervisor</pre><p>To generate a module, let’s say a <code class="literal">gen_server</code>, all you need to
+Available templates: cowboy_http cowboy_loop cowboy_rest cowboy_ws gen_fsm gen_server gen_statem ranch_protocol supervisor</pre><p>To generate a module, let’s say a <code class="literal">gen_server</code>, all you need to
do is to call <code class="literal">make new</code> with the appropriate arguments:</p><pre class="programlisting">$ make new t=gen_server n=my_server</pre><p>This will create a module located in <span class="emphasis"><em>src/my_server.erl</em></span>
using the <code class="literal">gen_server</code> template.</p><p>This module is automatically compiled the next time you run
<code class="literal">make</code>:</p><pre class="programlisting">$ make
diff --git a/guide/history.html b/guide/history.html
index 5037d3c..17e3741 100644
--- a/guide/history.html
+++ b/guide/history.html
@@ -33,8 +33,8 @@ div.navfooter{margin-bottom:1em}
</header>
<main>
-<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="why.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="contributing.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="history"></a>Chapter 27. Short history</h2></div></div></div><p>This chapter aims to be a brief record of the life of the
-Erlang.mk project.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_before_erlang_mk"></a>27.1. Before Erlang.mk</h2></div></div></div><p>Erlang.mk originates from the Cowboy project. Cowboy started
+<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="why.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="contributing.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="history"></a>Chapter 28. Short history</h2></div></div></div><p>This chapter aims to be a brief record of the life of the
+Erlang.mk project.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_before_erlang_mk"></a>28.1. Before Erlang.mk</h2></div></div></div><p>Erlang.mk originates from the Cowboy project. Cowboy started
as a Rebar project and I, Loïc Hoguin, was very happy with it
for a couple years. Over time however I started getting annoyed
and frustrated by a number of things, including bad defaults,
@@ -46,7 +46,7 @@ than a minute to complete.</p><p>Following this success I started removing a lit
on the fateful day of January 5th, 2013, removed the dependency
on Rebar entirely. Rebar, and in particular the concept of
dependencies, was, and still is, a pretty strong influence.</p><p>Erlang.mk was conceived.</p><p>A few months passed and, on May 1st, 2013, the Erlang.mk
-repository was created. Erlang.mk was born.</p><p>Little did I know how much it would grow.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_lifetime_of_the_project"></a>27.2. Lifetime of the project</h2></div></div></div><p>Erlang.mk would eventually become a much larger file able to
+repository was created. Erlang.mk was born.</p><p>Little did I know how much it would grow.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_lifetime_of_the_project"></a>28.2. Lifetime of the project</h2></div></div></div><p>Erlang.mk would eventually become a much larger file able to
deal with many more projects than just Cowboy. From the birth
of the project, the biggest force for growth was user contributions,
because Erlang.mk appealed to a variety of people with different
diff --git a/guide/index.html b/guide/index.html
index 4550a23..a1c85a0 100644
--- a/guide/index.html
+++ b/guide/index.html
@@ -33,7 +33,7 @@ div.navfooter{margin-bottom:1em}
</header>
<main>
-<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="installation.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="idm45405452021744"></a>Erlang.mk User Guide</h1></div><div><div class="author"><h3 class="author"><span class="firstname">Loïc</span> <span class="surname">Hoguin</span></h3><code class="email">&lt;<a class="email" href="mailto:[email protected]">[email protected]</a>&gt;</code></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="installation.html">1. Installation</a></span></dt><dd><dl><dt><span class="section"><a href="installation.html#_on_unix">1.1. On Unix</a></span></dt><dt><span class="section"><a href="installation.html#_on_windows">1.2. On Windows</a></span></dt></dl></dd><dt><span class="chapter"><a href="getting_started.html">2. Getting started</a></span></dt><dd><dl><dt><span class="section"><a href="getting_started.html#_creating_a_folder_for_your_project">2.1. Creating a folder for your project</a></span></dt><dt><span class="section"><a href="getting_started.html#_downloading_erlang_mk">2.2. Downloading Erlang.mk</a></span></dt><dt><span class="section"><a href="getting_started.html#_getting_started_with_otp_applications">2.3. Getting started with OTP applications</a></span></dt><dt><span class="section"><a href="getting_started.html#_getting_started_with_otp_libraries">2.4. Getting started with OTP libraries</a></span></dt><dt><span class="section"><a href="getting_started.html#_getting_started_with_otp_releases">2.5. Getting started with OTP releases</a></span></dt><dt><span class="section"><a href="getting_started.html#_getting_started_from_scratch">2.6. Getting started from scratch</a></span></dt><dt><span class="section"><a href="getting_started.html#_using_spaces_instead_of_tabs">2.7. Using spaces instead of tabs</a></span></dt><dt><span class="section"><a href="getting_started.html#_using_templates">2.8. Using templates</a></span></dt><dt><span class="section"><a href="getting_started.html#_hiding_erlang_mk_from_git">2.9. Hiding Erlang.mk from git</a></span></dt><dt><span class="section"><a href="getting_started.html#_getting_help">2.10. Getting help</a></span></dt></dl></dd><dt><span class="chapter"><a href="overview.html">3. Overview</a></span></dt><dd><dl><dt><span class="section"><a href="overview.html#_building_your_project">3.1. Building your project</a></span></dt><dt><span class="section"><a href="overview.html#_exploring_the_package_index">3.2. Exploring the package index</a></span></dt><dt><span class="section"><a href="overview.html#_generating_documentation">3.3. Generating documentation</a></span></dt><dt><span class="section"><a href="overview.html#_running_tests">3.4. Running tests</a></span></dt><dt><span class="section"><a href="overview.html#_need_more">3.5. Need more?</a></span></dt></dl></dd><dt><span class="chapter"><a href="updating.html">4. Updating Erlang.mk</a></span></dt><dd><dl><dt><span class="section"><a href="updating.html#_initial_bootstrap">4.1. Initial bootstrap</a></span></dt><dt><span class="section"><a href="updating.html#_updating">4.2. Updating</a></span></dt><dt><span class="section"><a href="updating.html#_customizing_the_build">4.3. Customizing the build</a></span></dt></dl></dd><dt><span class="chapter"><a href="limitations.html">5. Limitations</a></span></dt><dd><dl><dt><span class="section"><a href="limitations.html#_erlang_must_be_available">5.1. Erlang must be available</a></span></dt><dt><span class="section"><a href="limitations.html#_spaces_in_path">5.2. Spaces in path</a></span></dt><dt><span class="section"><a href="limitations.html#_dependency_tracking_and_modification_times">5.3. Dependency tracking and modification times</a></span></dt></dl></dd><dt><span class="part"><a href="code.html">I. Code</a></span></dt><dd><dl><dt><span class="chapter"><a href="building.html">6. Building</a></span></dt><dd><dl><dt><span class="section"><a href="building.html#_how_to_build">6.1. How to build</a></span></dt><dt><span class="section"><a href="building.html#_what_to_build">6.2. What to build</a></span></dt><dt><span class="section"><a href="building.html#_application_resource_file">6.3. Application resource file</a></span></dt><dt><span class="section"><a href="building.html#_automatic_application_resource_file_values">6.4. Automatic application resource file values</a></span></dt><dt><span class="section"><a href="building.html#_file_formats">6.5. File formats</a></span></dt><dt><span class="section"><a href="building.html#_compilation_options">6.6. Compilation options</a></span></dt><dt><span class="section"><a href="building.html#_cold_and_hot_builds">6.7. Cold and hot builds</a></span></dt><dt><span class="section"><a href="building.html#_dependency_tracking">6.8. Dependency tracking</a></span></dt><dt><span class="section"><a href="building.html#_generating_erlang_source">6.9. Generating Erlang source</a></span></dt><dt><span class="section"><a href="building.html#_cleaning">6.10. Cleaning</a></span></dt></dl></dd><dt><span class="chapter"><a href="deps.html">7. Packages and dependencies</a></span></dt><dd><dl><dt><span class="section"><a href="deps.html#_searching_packages">7.1. Searching packages</a></span></dt><dt><span class="section"><a href="deps.html#_adding_dependencies_to_your_project">7.2. Adding dependencies to your project</a></span></dt><dt><span class="section"><a href="deps.html#_how_deps_are_fetched_and_built">7.3. How deps are fetched and built</a></span></dt><dt><span class="section"><a href="deps.html#_fetching_and_listing_dependencies_only">7.4. Fetching and listing dependencies only</a></span></dt><dt><span class="section"><a href="deps.html#_ignoring_unwanted_dependencies">7.5. Ignoring unwanted dependencies</a></span></dt><dt><span class="section"><a href="deps.html#_dependencies_directory">7.6. Dependencies directory</a></span></dt><dt><span class="section"><a href="deps.html#_many_applications_in_one_repository">7.7. Many applications in one repository</a></span></dt><dt><span class="section"><a href="deps.html#_repositories_with_no_application_at_the_root_level">7.8. Repositories with no application at the root level</a></span></dt><dt><span class="section"><a href="deps.html#_autopatch">7.9. Autopatch</a></span></dt><dt><span class="section"><a href="deps.html#_skipping_deps">7.10. Skipping deps</a></span></dt></dl></dd><dt><span class="chapter"><a href="ports.html">8. NIFs and port drivers</a></span></dt><dd><dl><dt><span class="section"><a href="ports.html#_c_source_code_location_and_erlang_environment">8.1. C source code location and Erlang environment</a></span></dt><dt><span class="section"><a href="ports.html#_using_a_custom_makefile">8.2. Using a custom Makefile</a></span></dt><dt><span class="section"><a href="ports.html#_using_erlang_mk_directly">8.3. Using Erlang.mk directly</a></span></dt><dt><span class="section"><a href="ports.html#_propagating_compile_and_linker_flags_to_sub_makefiles">8.4. Propagating compile and linker flags to sub-Makefiles</a></span></dt></dl></dd><dt><span class="chapter"><a href="relx.html">9. Releases</a></span></dt><dd><dl><dt><span class="section"><a href="relx.html#_setup">9.1. Setup</a></span></dt><dt><span class="section"><a href="relx.html#_configuration">9.2. Configuration</a></span></dt><dt><span class="section"><a href="relx.html#_generating_the_release">9.3. Generating the release</a></span></dt><dt><span class="section"><a href="relx.html#_running_the_release">9.4. Running the release</a></span></dt><dt><span class="section"><a href="relx.html#_upgrading_a_release">9.5. Upgrading a release</a></span></dt><dt><span class="section"><a href="relx.html#_getting_relx_semver_value">9.6. Getting Relx semver value</a></span></dt></dl></dd><dt><span class="chapter"><a href="sfx.html">10. Self-extracting releases</a></span></dt><dd><dl><dt><span class="section"><a href="sfx.html#_generating_the_self_extracting_archive">10.1. Generating the self-extracting archive</a></span></dt><dt><span class="section"><a href="sfx.html#_running_the_release_2">10.2. Running the release</a></span></dt></dl></dd><dt><span class="chapter"><a href="escript.html">11. Escripts</a></span></dt><dd><dl><dt><span class="section"><a href="escript.html#_requirements">11.1. Requirements</a></span></dt><dt><span class="section"><a href="escript.html#_generating_an_escript">11.2. Generating an escript</a></span></dt><dt><span class="section"><a href="escript.html#_configuration_2">11.3. Configuration</a></span></dt><dt><span class="section"><a href="escript.html#_extra_files">11.4. Extra files</a></span></dt><dt><span class="section"><a href="escript.html#_optimizing_for_size">11.5. Optimizing for size</a></span></dt></dl></dd><dt><span class="chapter"><a href="kerl.html">12. OTP version management</a></span></dt><dd><dl><dt><span class="section"><a href="kerl.html#_erlang_versions">12.1. Erlang versions</a></span></dt><dt><span class="section"><a href="kerl.html#otp_version_pinning">12.2. OTP version pinning</a></span></dt><dt><span class="section"><a href="kerl.html#_continuous_integration">12.3. Continuous integration</a></span></dt><dt><span class="section"><a href="kerl.html#_configuring_kerl">12.4. Configuring Kerl</a></span></dt></dl></dd><dt><span class="chapter"><a href="compat.html">13. Compatibility with other build tools</a></span></dt><dd><dl><dt><span class="section"><a href="compat.html#_rebar_projects_as_erlang_mk_dependencies">13.1. Rebar projects as Erlang.mk dependencies</a></span></dt><dt><span class="section"><a href="compat.html#_erlang_mk_projects_as_rebar_dependencies">13.2. Erlang.mk projects as Rebar dependencies</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="docs.html">II. Documentation</a></span></dt><dd><dl><dt><span class="chapter"><a href="asciidoc.html">14. AsciiDoc documentation</a></span></dt><dd><dl><dt><span class="section"><a href="asciidoc.html#_requirements_2">14.1. Requirements</a></span></dt><dt><span class="section"><a href="asciidoc.html#_writing_asciidoc_documentation">14.2. Writing AsciiDoc documentation</a></span></dt><dt><span class="section"><a href="asciidoc.html#_configuration_3">14.3. Configuration</a></span></dt><dt><span class="section"><a href="asciidoc.html#_usage">14.4. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="edoc.html">15. EDoc comments</a></span></dt><dd><dl><dt><span class="section"><a href="edoc.html#_writing_edoc_comments">15.1. Writing EDoc comments</a></span></dt><dt><span class="section"><a href="edoc.html#_configuration_4">15.2. Configuration</a></span></dt><dt><span class="section"><a href="edoc.html#_usage_2">15.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="sphinx.html">16. Sphinx documentation</a></span></dt><dd><dl><dt><span class="section"><a href="sphinx.html#_writing_sphinx_documentation">16.1. Writing Sphinx documentation</a></span></dt><dt><span class="section"><a href="sphinx.html#_basic_setup">16.2. Basic setup</a></span></dt><dt><span class="section"><a href="sphinx.html#_erlang_mk_configuration">16.3. Erlang.mk configuration</a></span></dt><dt><span class="section"><a href="sphinx.html#_generating_man_pages">16.4. Generating man pages</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="tests.html">III. Tests</a></span></dt><dd><dl><dt><span class="chapter"><a href="shell.html">17. Erlang shell</a></span></dt><dd><dl><dt><span class="section"><a href="shell.html#_configuration_5">17.1. Configuration</a></span></dt><dt><span class="section"><a href="shell.html#_usage_3">17.2. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="eunit.html">18. EUnit</a></span></dt><dd><dl><dt><span class="section"><a href="eunit.html#_writing_tests">18.1. Writing tests</a></span></dt><dt><span class="section"><a href="eunit.html#_configuration_6">18.2. Configuration</a></span></dt><dt><span class="section"><a href="eunit.html#_usage_4">18.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="ct.html">19. Common Test</a></span></dt><dd><dl><dt><span class="section"><a href="ct.html#_writing_tests_2">19.1. Writing tests</a></span></dt><dt><span class="section"><a href="ct.html#_configuration_7">19.2. Configuration</a></span></dt><dt><span class="section"><a href="ct.html#_usage_5">19.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="coverage.html">20. Code coverage</a></span></dt><dt><span class="chapter"><a href="ci.html">21. Continuous integration</a></span></dt><dd><dl><dt><span class="section"><a href="ci.html#_configuring_erlang_otp_versions_to_test">21.1. Configuring Erlang/OTP versions to test</a></span></dt><dt><span class="section"><a href="ci.html#_running_tests_across_all_configured_versions">21.2. Running tests across all configured versions</a></span></dt><dt><span class="section"><a href="ci.html#_extending_the_ci_targets">21.3. Extending the CI targets</a></span></dt></dl></dd><dt><span class="chapter"><a href="dialyzer.html">22. Dialyzer</a></span></dt><dd><dl><dt><span class="section"><a href="dialyzer.html#_how_it_works">22.1. How it works</a></span></dt><dt><span class="section"><a href="dialyzer.html#_configuration_8">22.2. Configuration</a></span></dt><dt><span class="section"><a href="dialyzer.html#_usage_6">22.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="xref.html">23. Xref</a></span></dt></dl></dd><dt><span class="part"><a href="plugins.html">IV. Third-party plugins</a></span></dt><dd><dl><dt><span class="chapter"><a href="plugins_usage.html">24. External plugins</a></span></dt><dd><dl><dt><span class="section"><a href="plugins_usage.html#_loading_all_plugins_from_a_dependency">24.1. Loading all plugins from a dependency</a></span></dt><dt><span class="section"><a href="plugins_usage.html#_loading_one_plugin_from_a_dependency">24.2. Loading one plugin from a dependency</a></span></dt><dt><span class="section"><a href="plugins_usage.html#_writing_external_plugins">24.3. Writing external plugins</a></span></dt><dt><span class="section"><a href="plugins_usage.html#_early_stage_plugins">24.4. Early-stage plugins</a></span></dt><dt><span class="section"><a href="plugins_usage.html#_loading_plugins_local_to_the_application">24.5. Loading plugins local to the application</a></span></dt></dl></dd><dt><span class="chapter"><a href="plugins_list.html">25. List of plugins</a></span></dt><dd><dl><dt><span class="section"><a href="plugins_list.html#_efene_mk">25.1. efene.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_elixir_mk">25.2. elixir.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_elvis_mk">25.3. elvis.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_geas">25.4. geas</a></span></dt><dt><span class="section"><a href="plugins_list.html#_hexer_mk">25.5. hexer.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_hexpm_mk">25.6. hexpm.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_jorel">25.7. jorel</a></span></dt><dt><span class="section"><a href="plugins_list.html#_lfe_mk">25.8. lfe.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_mix_mk">25.9. mix.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_reload_mk">25.10. reload.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_rust_mk">25.11. rust.mk</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="about.html">V. About Erlang.mk</a></span></dt><dd><dl><dt><span class="chapter"><a href="why.html">26. Why Erlang.mk</a></span></dt><dd><dl><dt><span class="section"><a href="why.html#_erlang_mk_is_fast">26.1. Erlang.mk is fast</a></span></dt><dt><span class="section"><a href="why.html#_erlang_mk_gives_you_the_full_power_of_unix">26.2. Erlang.mk gives you the full power of Unix</a></span></dt><dt><span class="section"><a href="why.html#_erlang_mk_is_a_text_file">26.3. Erlang.mk is a text file</a></span></dt><dt><span class="section"><a href="why.html#_erlang_mk_can_manage_erlang_itself">26.4. Erlang.mk can manage Erlang itself</a></span></dt><dt><span class="section"><a href="why.html#_erlang_mk_can_do_more_than_erlang">26.5. Erlang.mk can do more than Erlang</a></span></dt><dt><span class="section"><a href="why.html#_erlang_mk_integrates_nicely_in_make_and_automake_projects">26.6. Erlang.mk integrates nicely in Make and Automake projects</a></span></dt></dl></dd><dt><span class="chapter"><a href="history.html">27. Short history</a></span></dt><dd><dl><dt><span class="section"><a href="history.html#_before_erlang_mk">27.1. Before Erlang.mk</a></span></dt><dt><span class="section"><a href="history.html#_lifetime_of_the_project">27.2. Lifetime of the project</a></span></dt></dl></dd><dt><span class="chapter"><a href="contributing.html">28. Contributing</a></span></dt><dd><dl><dt><span class="section"><a href="contributing.html#_priorities">28.1. Priorities</a></span></dt><dt><span class="section"><a href="contributing.html#_bugs">28.2. Bugs</a></span></dt><dt><span class="section"><a href="contributing.html#_code">28.3. Code</a></span></dt><dt><span class="section"><a href="contributing.html#_packages">28.4. Packages</a></span></dt><dt><span class="section"><a href="contributing.html#_documentation">28.5. Documentation</a></span></dt><dt><span class="section"><a href="contributing.html#_feature_requests">28.6. Feature requests</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="installation.html">Next</a></td></tr></table></div>
+<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="installation.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="idm45978272953936"></a>Erlang.mk User Guide</h1></div><div><div class="author"><h3 class="author"><span class="firstname">Loïc</span> <span class="surname">Hoguin</span></h3><code class="email">&lt;<a class="email" href="mailto:[email protected]">[email protected]</a>&gt;</code></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="installation.html">1. Installation</a></span></dt><dd><dl><dt><span class="section"><a href="installation.html#_on_unix">1.1. On Unix</a></span></dt><dt><span class="section"><a href="installation.html#_on_windows">1.2. On Windows</a></span></dt></dl></dd><dt><span class="chapter"><a href="getting_started.html">2. Getting started</a></span></dt><dd><dl><dt><span class="section"><a href="getting_started.html#_creating_a_folder_for_your_project">2.1. Creating a folder for your project</a></span></dt><dt><span class="section"><a href="getting_started.html#_downloading_erlang_mk">2.2. Downloading Erlang.mk</a></span></dt><dt><span class="section"><a href="getting_started.html#_getting_started_with_otp_applications">2.3. Getting started with OTP applications</a></span></dt><dt><span class="section"><a href="getting_started.html#_getting_started_with_otp_libraries">2.4. Getting started with OTP libraries</a></span></dt><dt><span class="section"><a href="getting_started.html#_getting_started_with_otp_releases">2.5. Getting started with OTP releases</a></span></dt><dt><span class="section"><a href="getting_started.html#_getting_started_from_scratch">2.6. Getting started from scratch</a></span></dt><dt><span class="section"><a href="getting_started.html#_using_spaces_instead_of_tabs">2.7. Using spaces instead of tabs</a></span></dt><dt><span class="section"><a href="getting_started.html#_using_templates">2.8. Using templates</a></span></dt><dt><span class="section"><a href="getting_started.html#_hiding_erlang_mk_from_git">2.9. Hiding Erlang.mk from git</a></span></dt><dt><span class="section"><a href="getting_started.html#_getting_help">2.10. Getting help</a></span></dt></dl></dd><dt><span class="chapter"><a href="overview.html">3. Overview</a></span></dt><dd><dl><dt><span class="section"><a href="overview.html#_building_your_project">3.1. Building your project</a></span></dt><dt><span class="section"><a href="overview.html#_exploring_the_package_index">3.2. Exploring the package index</a></span></dt><dt><span class="section"><a href="overview.html#_generating_documentation">3.3. Generating documentation</a></span></dt><dt><span class="section"><a href="overview.html#_running_tests">3.4. Running tests</a></span></dt><dt><span class="section"><a href="overview.html#_need_more">3.5. Need more?</a></span></dt></dl></dd><dt><span class="chapter"><a href="updating.html">4. Updating Erlang.mk</a></span></dt><dd><dl><dt><span class="section"><a href="updating.html#_initial_bootstrap">4.1. Initial bootstrap</a></span></dt><dt><span class="section"><a href="updating.html#_updating">4.2. Updating</a></span></dt><dt><span class="section"><a href="updating.html#_customizing_the_build">4.3. Customizing the build</a></span></dt></dl></dd><dt><span class="chapter"><a href="limitations.html">5. Limitations</a></span></dt><dd><dl><dt><span class="section"><a href="limitations.html#_erlang_must_be_available">5.1. Erlang must be available</a></span></dt><dt><span class="section"><a href="limitations.html#_spaces_in_path">5.2. Spaces in path</a></span></dt><dt><span class="section"><a href="limitations.html#_dependency_tracking_and_modification_times">5.3. Dependency tracking and modification times</a></span></dt></dl></dd><dt><span class="part"><a href="code.html">I. Code</a></span></dt><dd><dl><dt><span class="chapter"><a href="building.html">6. Building</a></span></dt><dd><dl><dt><span class="section"><a href="building.html#_how_to_build">6.1. How to build</a></span></dt><dt><span class="section"><a href="building.html#_what_to_build">6.2. What to build</a></span></dt><dt><span class="section"><a href="building.html#_application_resource_file">6.3. Application resource file</a></span></dt><dt><span class="section"><a href="building.html#_automatic_application_resource_file_values">6.4. Automatic application resource file values</a></span></dt><dt><span class="section"><a href="building.html#_file_formats">6.5. File formats</a></span></dt><dt><span class="section"><a href="building.html#_compilation_options">6.6. Compilation options</a></span></dt><dt><span class="section"><a href="building.html#_cold_and_hot_builds">6.7. Cold and hot builds</a></span></dt><dt><span class="section"><a href="building.html#_dependency_tracking">6.8. Dependency tracking</a></span></dt><dt><span class="section"><a href="building.html#_generating_erlang_source">6.9. Generating Erlang source</a></span></dt><dt><span class="section"><a href="building.html#_cleaning">6.10. Cleaning</a></span></dt></dl></dd><dt><span class="chapter"><a href="deps.html">7. Packages and dependencies</a></span></dt><dd><dl><dt><span class="section"><a href="deps.html#_searching_packages">7.1. Searching packages</a></span></dt><dt><span class="section"><a href="deps.html#_adding_dependencies_to_your_project">7.2. Adding dependencies to your project</a></span></dt><dt><span class="section"><a href="deps.html#_how_deps_are_fetched_and_built">7.3. How deps are fetched and built</a></span></dt><dt><span class="section"><a href="deps.html#_fetching_and_listing_dependencies_only">7.4. Fetching and listing dependencies only</a></span></dt><dt><span class="section"><a href="deps.html#_ignoring_unwanted_dependencies">7.5. Ignoring unwanted dependencies</a></span></dt><dt><span class="section"><a href="deps.html#_dependencies_directory">7.6. Dependencies directory</a></span></dt><dt><span class="section"><a href="deps.html#_many_applications_in_one_repository">7.7. Many applications in one repository</a></span></dt><dt><span class="section"><a href="deps.html#_repositories_with_no_application_at_the_root_level">7.8. Repositories with no application at the root level</a></span></dt><dt><span class="section"><a href="deps.html#_autopatch">7.9. Autopatch</a></span></dt><dt><span class="section"><a href="deps.html#_skipping_deps">7.10. Skipping deps</a></span></dt></dl></dd><dt><span class="chapter"><a href="ports.html">8. NIFs and port drivers</a></span></dt><dd><dl><dt><span class="section"><a href="ports.html#_c_source_code_location_and_erlang_environment">8.1. C source code location and Erlang environment</a></span></dt><dt><span class="section"><a href="ports.html#_using_a_custom_makefile">8.2. Using a custom Makefile</a></span></dt><dt><span class="section"><a href="ports.html#_using_erlang_mk_directly">8.3. Using Erlang.mk directly</a></span></dt><dt><span class="section"><a href="ports.html#_propagating_compile_and_linker_flags_to_sub_makefiles">8.4. Propagating compile and linker flags to sub-Makefiles</a></span></dt></dl></dd><dt><span class="chapter"><a href="relx.html">9. Releases</a></span></dt><dd><dl><dt><span class="section"><a href="relx.html#_setup">9.1. Setup</a></span></dt><dt><span class="section"><a href="relx.html#_configuration">9.2. Configuration</a></span></dt><dt><span class="section"><a href="relx.html#_generating_the_release">9.3. Generating the release</a></span></dt><dt><span class="section"><a href="relx.html#_running_the_release">9.4. Running the release</a></span></dt><dt><span class="section"><a href="relx.html#_upgrading_a_release">9.5. Upgrading a release</a></span></dt><dt><span class="section"><a href="relx.html#_getting_relx_semver_value">9.6. Getting Relx semver value</a></span></dt></dl></dd><dt><span class="chapter"><a href="sfx.html">10. Self-extracting releases</a></span></dt><dd><dl><dt><span class="section"><a href="sfx.html#_generating_the_self_extracting_archive">10.1. Generating the self-extracting archive</a></span></dt><dt><span class="section"><a href="sfx.html#_running_the_release_2">10.2. Running the release</a></span></dt></dl></dd><dt><span class="chapter"><a href="escript.html">11. Escripts</a></span></dt><dd><dl><dt><span class="section"><a href="escript.html#_requirements">11.1. Requirements</a></span></dt><dt><span class="section"><a href="escript.html#_generating_an_escript">11.2. Generating an escript</a></span></dt><dt><span class="section"><a href="escript.html#_configuration_2">11.3. Configuration</a></span></dt><dt><span class="section"><a href="escript.html#_extra_files">11.4. Extra files</a></span></dt><dt><span class="section"><a href="escript.html#_optimizing_for_size">11.5. Optimizing for size</a></span></dt></dl></dd><dt><span class="chapter"><a href="kerl.html">12. OTP version management</a></span></dt><dd><dl><dt><span class="section"><a href="kerl.html#_erlang_versions">12.1. Erlang versions</a></span></dt><dt><span class="section"><a href="kerl.html#otp_version_pinning">12.2. OTP version pinning</a></span></dt><dt><span class="section"><a href="kerl.html#_continuous_integration">12.3. Continuous integration</a></span></dt><dt><span class="section"><a href="kerl.html#_configuring_kerl">12.4. Configuring Kerl</a></span></dt></dl></dd><dt><span class="chapter"><a href="compat.html">13. Compatibility with other build tools</a></span></dt><dd><dl><dt><span class="section"><a href="compat.html#_rebar_projects_as_erlang_mk_dependencies">13.1. Rebar projects as Erlang.mk dependencies</a></span></dt><dt><span class="section"><a href="compat.html#_erlang_mk_projects_as_rebar_dependencies">13.2. Erlang.mk projects as Rebar dependencies</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="docs.html">II. Documentation</a></span></dt><dd><dl><dt><span class="chapter"><a href="asciidoc.html">14. AsciiDoc documentation</a></span></dt><dd><dl><dt><span class="section"><a href="asciidoc.html#_requirements_2">14.1. Requirements</a></span></dt><dt><span class="section"><a href="asciidoc.html#_writing_asciidoc_documentation">14.2. Writing AsciiDoc documentation</a></span></dt><dt><span class="section"><a href="asciidoc.html#_configuration_3">14.3. Configuration</a></span></dt><dt><span class="section"><a href="asciidoc.html#_usage">14.4. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="edoc.html">15. EDoc comments</a></span></dt><dd><dl><dt><span class="section"><a href="edoc.html#_writing_edoc_comments">15.1. Writing EDoc comments</a></span></dt><dt><span class="section"><a href="edoc.html#_configuration_4">15.2. Configuration</a></span></dt><dt><span class="section"><a href="edoc.html#_usage_2">15.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="sphinx.html">16. Sphinx documentation</a></span></dt><dd><dl><dt><span class="section"><a href="sphinx.html#_writing_sphinx_documentation">16.1. Writing Sphinx documentation</a></span></dt><dt><span class="section"><a href="sphinx.html#_basic_setup">16.2. Basic setup</a></span></dt><dt><span class="section"><a href="sphinx.html#_erlang_mk_configuration">16.3. Erlang.mk configuration</a></span></dt><dt><span class="section"><a href="sphinx.html#_generating_man_pages">16.4. Generating man pages</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="tests.html">III. Tests</a></span></dt><dd><dl><dt><span class="chapter"><a href="shell.html">17. Erlang shell</a></span></dt><dd><dl><dt><span class="section"><a href="shell.html#_configuration_5">17.1. Configuration</a></span></dt><dt><span class="section"><a href="shell.html#_usage_3">17.2. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="eunit.html">18. EUnit</a></span></dt><dd><dl><dt><span class="section"><a href="eunit.html#_writing_tests">18.1. Writing tests</a></span></dt><dt><span class="section"><a href="eunit.html#_configuration_6">18.2. Configuration</a></span></dt><dt><span class="section"><a href="eunit.html#_usage_4">18.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="ct.html">19. Common Test</a></span></dt><dd><dl><dt><span class="section"><a href="ct.html#_writing_tests_2">19.1. Writing tests</a></span></dt><dt><span class="section"><a href="ct.html#_configuration_7">19.2. Configuration</a></span></dt><dt><span class="section"><a href="ct.html#_usage_5">19.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="triq.html">20. Triq</a></span></dt><dt><span class="chapter"><a href="coverage.html">21. Code coverage</a></span></dt><dt><span class="chapter"><a href="ci.html">22. Continuous integration</a></span></dt><dd><dl><dt><span class="section"><a href="ci.html#_configuring_erlang_otp_versions_to_test">22.1. Configuring Erlang/OTP versions to test</a></span></dt><dt><span class="section"><a href="ci.html#_running_tests_across_all_configured_versions">22.2. Running tests across all configured versions</a></span></dt><dt><span class="section"><a href="ci.html#_extending_the_ci_targets">22.3. Extending the CI targets</a></span></dt></dl></dd><dt><span class="chapter"><a href="dialyzer.html">23. Dialyzer</a></span></dt><dd><dl><dt><span class="section"><a href="dialyzer.html#_how_it_works">23.1. How it works</a></span></dt><dt><span class="section"><a href="dialyzer.html#_configuration_8">23.2. Configuration</a></span></dt><dt><span class="section"><a href="dialyzer.html#_usage_6">23.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="xref.html">24. Xref</a></span></dt></dl></dd><dt><span class="part"><a href="plugins.html">IV. Third-party plugins</a></span></dt><dd><dl><dt><span class="chapter"><a href="plugins_usage.html">25. External plugins</a></span></dt><dd><dl><dt><span class="section"><a href="plugins_usage.html#_loading_all_plugins_from_a_dependency">25.1. Loading all plugins from a dependency</a></span></dt><dt><span class="section"><a href="plugins_usage.html#_loading_one_plugin_from_a_dependency">25.2. Loading one plugin from a dependency</a></span></dt><dt><span class="section"><a href="plugins_usage.html#_writing_external_plugins">25.3. Writing external plugins</a></span></dt><dt><span class="section"><a href="plugins_usage.html#_early_stage_plugins">25.4. Early-stage plugins</a></span></dt><dt><span class="section"><a href="plugins_usage.html#_loading_plugins_local_to_the_application">25.5. Loading plugins local to the application</a></span></dt></dl></dd><dt><span class="chapter"><a href="plugins_list.html">26. List of plugins</a></span></dt><dd><dl><dt><span class="section"><a href="plugins_list.html#_efene_mk">26.1. efene.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_elixir_mk">26.2. elixir.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_elvis_mk">26.3. elvis.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_geas">26.4. geas</a></span></dt><dt><span class="section"><a href="plugins_list.html#_hexer_mk">26.5. hexer.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_hexpm_mk">26.6. hexpm.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_jorel">26.7. jorel</a></span></dt><dt><span class="section"><a href="plugins_list.html#_lfe_mk">26.8. lfe.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_mix_mk">26.9. mix.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_reload_mk">26.10. reload.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_rust_mk">26.11. rust.mk</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="about.html">V. About Erlang.mk</a></span></dt><dd><dl><dt><span class="chapter"><a href="why.html">27. Why Erlang.mk</a></span></dt><dd><dl><dt><span class="section"><a href="why.html#_erlang_mk_is_fast">27.1. Erlang.mk is fast</a></span></dt><dt><span class="section"><a href="why.html#_erlang_mk_gives_you_the_full_power_of_unix">27.2. Erlang.mk gives you the full power of Unix</a></span></dt><dt><span class="section"><a href="why.html#_erlang_mk_is_a_text_file">27.3. Erlang.mk is a text file</a></span></dt><dt><span class="section"><a href="why.html#_erlang_mk_can_manage_erlang_itself">27.4. Erlang.mk can manage Erlang itself</a></span></dt><dt><span class="section"><a href="why.html#_erlang_mk_can_do_more_than_erlang">27.5. Erlang.mk can do more than Erlang</a></span></dt><dt><span class="section"><a href="why.html#_erlang_mk_integrates_nicely_in_make_and_automake_projects">27.6. Erlang.mk integrates nicely in Make and Automake projects</a></span></dt></dl></dd><dt><span class="chapter"><a href="history.html">28. Short history</a></span></dt><dd><dl><dt><span class="section"><a href="history.html#_before_erlang_mk">28.1. Before Erlang.mk</a></span></dt><dt><span class="section"><a href="history.html#_lifetime_of_the_project">28.2. Lifetime of the project</a></span></dt></dl></dd><dt><span class="chapter"><a href="contributing.html">29. Contributing</a></span></dt><dd><dl><dt><span class="section"><a href="contributing.html#_priorities">29.1. Priorities</a></span></dt><dt><span class="section"><a href="contributing.html#_bugs">29.2. Bugs</a></span></dt><dt><span class="section"><a href="contributing.html#_code">29.3. Code</a></span></dt><dt><span class="section"><a href="contributing.html#_packages">29.4. Packages</a></span></dt><dt><span class="section"><a href="contributing.html#_documentation">29.5. Documentation</a></span></dt><dt><span class="section"><a href="contributing.html#_feature_requests">29.6. Feature requests</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="installation.html">Next</a></td></tr></table></div>
</main>
</body>
</html>
diff --git a/guide/kerl.html b/guide/kerl.html
index 35ec324..72a0aa5 100644
--- a/guide/kerl.html
+++ b/guide/kerl.html
@@ -62,8 +62,7 @@ use the version you configured.</p><p>Note that there has been reports that this
is not compatible with the <code class="literal">.ONESHELL</code> feature from
GNU Make.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_continuous_integration"></a>12.3. Continuous integration</h2></div></div></div><p>Erlang.mk can automatically test your project against
many different Erlang/OTP versions. This functionality
-is documented in the <a class="link" href="ci.html" title="Chapter 21. Continuous integration">Continuous integration</a>
-<a class="xref" href="ci.html" title="Chapter 21. Continuous integration">Chapter 21, <em>Continuous integration</em></a> chapter.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_configuring_kerl"></a>12.4. Configuring Kerl</h2></div></div></div><p>All of the Kerl variables can be configured directly in the
+is documented in the <a class="link" href="ci.html" title="Chapter 22. Continuous integration">Continuous integration</a> chapter.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_configuring_kerl"></a>12.4. Configuring Kerl</h2></div></div></div><p>All of the Kerl variables can be configured directly in the
Makefile. All you need to do is to export them. For example,
to change the installation directory for the Erlang/OTP
versions managed by Kerl, you could add the following to
diff --git a/guide/overview.html b/guide/overview.html
index 1c6f842..87768e4 100644
--- a/guide/overview.html
+++ b/guide/overview.html
@@ -37,51 +37,34 @@ div.navfooter{margin-bottom:1em}
what Erlang.mk can do for you.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_building_your_project"></a>3.1. Building your project</h2></div></div></div><p>Erlang.mk is first and foremost a build tool. It is especially
tailored for Erlang developers and follows widely accepted
practices in the Erlang community.</p><p>Erlang.mk will happily build all <a class="link" href="building.html" title="Chapter 6. Building">Erlang-specific files</a>
-<a class="xref" href="building.html" title="Chapter 6. Building">Chapter 6, <em>Building</em></a>
you throw at it. Other kinds of files too, like C or C++ code
-when you are working on <a class="link" href="ports.html" title="Chapter 8. NIFs and port drivers">a NIF or a port driver</a>
-<a class="xref" href="ports.html" title="Chapter 8. NIFs and port drivers">Chapter 8, <em>NIFs and port drivers</em></a>.</p><p>Erlang.mk embraces the concept of <a class="link" href="deps.html" title="Chapter 7. Packages and dependencies">source dependencies</a>
-<a class="xref" href="deps.html" title="Chapter 7. Packages and dependencies">Chapter 7, <em>Packages and dependencies</em></a>.
+when you are working on <a class="link" href="ports.html" title="Chapter 8. NIFs and port drivers">a NIF or a port driver</a>.</p><p>Erlang.mk embraces the concept of <a class="link" href="deps.html" title="Chapter 7. Packages and dependencies">source dependencies</a>.
It can fetch dependency source code using a variety of mechanisms,
including fetching from Git, Mercurial or SVN.</p><p>Erlang.mk will automatically <a class="link" href="relx.html" title="Chapter 9. Releases">generate releases</a>
-<a class="xref" href="relx.html" title="Chapter 9. Releases">Chapter 9, <em>Releases</em></a>
-when applicable. It can also <a class="link" href="escript.html" title="Chapter 11. Escripts">generate escripts</a>
-<a class="xref" href="escript.html" title="Chapter 11. Escripts">Chapter 11, <em>Escripts</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_exploring_the_package_index"></a>3.2. Exploring the package index</h2></div></div></div><p>Erlang.mk comes with a <a class="link" href="deps.html" title="Chapter 7. Packages and dependencies">built-in package index</a>
-<a class="xref" href="deps.html" title="Chapter 7. Packages and dependencies">Chapter 7, <em>Packages and dependencies</em></a>.
+when applicable. It can also <a class="link" href="escript.html" title="Chapter 11. Escripts">generate escripts</a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_exploring_the_package_index"></a>3.2. Exploring the package index</h2></div></div></div><p>Erlang.mk comes with a <a class="link" href="deps.html" title="Chapter 7. Packages and dependencies">built-in package index</a>.
It is built as an extension of the dependency system and is
meant to be used for discovery purposes.</p><p>No package is ever installed, they are only used as dependencies
and are always project-specific. They can be thought of as a
shortcut over plain dependencies.</p><p>You can get a list of all packages known to Erlang.mk by using
the <code class="literal">search</code> target:</p><pre class="programlisting">$ make search</pre><p>You can also use this target to search across all packages, for
-example to find all packages related to Cowboy:</p><pre class="programlisting">$ make search q=cowboy</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_generating_documentation"></a>3.3. Generating documentation</h2></div></div></div><p>Erlang.mk supports <span class="emphasis"><em>EDoc</em></span> and <span class="emphasis"><em>Asciidoc</em></span>.</p><p><a class="link" href="edoc.html" title="Chapter 15. EDoc comments">EDoc</a>
-<a class="xref" href="edoc.html" title="Chapter 15. EDoc comments">Chapter 15, <em>EDoc comments</em></a> generates HTML documentation directly from
+example to find all packages related to Cowboy:</p><pre class="programlisting">$ make search q=cowboy</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_generating_documentation"></a>3.3. Generating documentation</h2></div></div></div><p>Erlang.mk supports <span class="emphasis"><em>EDoc</em></span> and <span class="emphasis"><em>Asciidoc</em></span>.</p><p><a class="link" href="edoc.html" title="Chapter 15. EDoc comments">EDoc</a> generates HTML documentation directly from
your source code.</p><p>While it is convenient, ask yourself: if all the documentation is
inside the source code, why not just open the source code directly?
-That’s where <span class="emphasis"><em>Asciidoc</em></span> comes in.</p><p>The <a class="link" href="asciidoc.html" title="Chapter 14. AsciiDoc documentation">Asciidoc</a>
-<a class="xref" href="asciidoc.html" title="Chapter 14. AsciiDoc documentation">Chapter 14, <em>AsciiDoc documentation</em></a> plugin expects all documentation
+That’s where <span class="emphasis"><em>Asciidoc</em></span> comes in.</p><p>The <a class="link" href="asciidoc.html" title="Chapter 14. AsciiDoc documentation">Asciidoc</a> plugin expects all documentation
to be separate from source. It will generate HTML, PDF, man pages and
more from the documentation you write in the <span class="emphasis"><em>doc/src/</em></span> folder in
your repository.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_running_tests"></a>3.4. Running tests</h2></div></div></div><p>Erlang.mk supports a lot of different testing and static
-analysis tools.</p><p>The <a class="link" href="shell.html" title="Chapter 17. Erlang shell">make shell</a>
-<a class="xref" href="shell.html" title="Chapter 17. Erlang shell">Chapter 17, <em>Erlang shell</em></a> command allows you
+analysis tools.</p><p>The <a class="link" href="shell.html" title="Chapter 17. Erlang shell">make shell</a> command allows you
to test your project manually. You can automate these
-unit tests with <a class="link" href="eunit.html" title="Chapter 18. EUnit">EUnit</a>
-<a class="xref" href="eunit.html" title="Chapter 18. EUnit">Chapter 18, <em>EUnit</em></a> and test
-your entire system with <a class="link" href="ct.html" title="Chapter 19. Common Test">Common Test</a>
-<a class="xref" href="ct.html" title="Chapter 19. Common Test">Chapter 19, <em>Common Test</em></a>.
-<a class="link" href="coverage.html" title="Chapter 20. Code coverage">Code coverage</a>
-<a class="xref" href="coverage.html" title="Chapter 20. Code coverage">Chapter 20, <em>Code coverage</em></a> can of course
+unit tests with <a class="link" href="eunit.html" title="Chapter 18. EUnit">EUnit</a> and test
+your entire system with <a class="link" href="ct.html" title="Chapter 19. Common Test">Common Test</a>.
+<a class="link" href="coverage.html" title="Chapter 21. Code coverage">Code coverage</a> can of course
be enabled during tests.</p><p>Erlang.mk comes with features to make your life easier when
-setting up and using <a class="link" href="ci.html" title="Chapter 21. Continuous integration">Continuous integration</a>
-<a class="xref" href="ci.html" title="Chapter 21. Continuous integration">Chapter 21, <em>Continuous integration</em></a>.</p><p>On the static analysis side of things, Erlang.mk comes with
-support for <a class="link" href="dialyzer.html" title="Chapter 22. Dialyzer">Dialyzer</a>
-<a class="xref" href="dialyzer.html" title="Chapter 22. Dialyzer">Chapter 22, <em>Dialyzer</em></a> and <a class="link" href="xref.html" title="Chapter 23. Xref">Xref</a>
-<a class="xref" href="xref.html" title="Chapter 23. Xref">Chapter 23, <em>Xref</em></a>,
+setting up and using <a class="link" href="ci.html" title="Chapter 22. Continuous integration">Continuous integration</a>.</p><p>On the static analysis side of things, Erlang.mk comes with
+support for <a class="link" href="dialyzer.html" title="Chapter 23. Dialyzer">Dialyzer</a> and <a class="link" href="xref.html" title="Chapter 24. Xref">Xref</a>,
to perform success typing analysis and cross referencing
-of the code.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_need_more"></a>3.5. Need more?</h2></div></div></div><p>Not convinced yet? You can read about <a class="link" href="why.html" title="Chapter 26. Why Erlang.mk">why you should use Erlang.mk</a>
-<a class="xref" href="why.html" title="Chapter 26. Why Erlang.mk">Chapter 26, <em>Why Erlang.mk</em></a>
-and its <a class="link" href="history.html" title="Chapter 27. Short history">history</a>
-<a class="xref" href="history.html" title="Chapter 27. Short history">Chapter 27, <em>Short history</em></a>. And if you’re still not
+of the code.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_need_more"></a>3.5. Need more?</h2></div></div></div><p>Not convinced yet? You can read about <a class="link" href="why.html" title="Chapter 27. Why Erlang.mk">why you should use Erlang.mk</a>
+and its <a class="link" href="history.html" title="Chapter 28. Short history">history</a>. And if you’re still not
convinced after that, it’s OK! The world would be boring if
everyone agreed on everything all the time.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="getting_started.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="updating.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
</main>
diff --git a/guide/plugins_list.html b/guide/plugins_list.html
index cc17f63..2a4e5bc 100644
--- a/guide/plugins_list.html
+++ b/guide/plugins_list.html
@@ -33,21 +33,21 @@ div.navfooter{margin-bottom:1em}
</header>
<main>
-<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="plugins_usage.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="about.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="plugins_list"></a>Chapter 25. List of plugins</h2></div></div></div><p>This is a non-exhaustive list of Erlang.mk plugins, sorted
-alphabetically.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_efene_mk"></a>25.1. efene.mk</h2></div></div></div><p>An <a class="ulink" href="https://github.com/ninenines/efene.mk" target="_top">Efene plugin</a> for Erlang.mk.
-<a class="ulink" href="http://efene.org/" target="_top">Efene</a> is an alternative language for the BEAM.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_elixir_mk"></a>25.2. elixir.mk</h2></div></div></div><p>An <a class="ulink" href="https://github.com/botsunit/elixir.mk" target="_top">Elixir plugin</a> for
+<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="plugins_usage.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="about.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="plugins_list"></a>Chapter 26. List of plugins</h2></div></div></div><p>This is a non-exhaustive list of Erlang.mk plugins, sorted
+alphabetically.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_efene_mk"></a>26.1. efene.mk</h2></div></div></div><p>An <a class="ulink" href="https://github.com/ninenines/efene.mk" target="_top">Efene plugin</a> for Erlang.mk.
+<a class="ulink" href="http://efene.org/" target="_top">Efene</a> is an alternative language for the BEAM.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_elixir_mk"></a>26.2. elixir.mk</h2></div></div></div><p>An <a class="ulink" href="https://github.com/botsunit/elixir.mk" target="_top">Elixir plugin</a> for
Erlang.mk. <a class="ulink" href="http://elixir-lang.org/" target="_top">Elixir</a> is an alternative
-language for the BEAM.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_elvis_mk"></a>25.3. elvis.mk</h2></div></div></div><p>An <a class="ulink" href="https://github.com/inaka/elvis.mk" target="_top">Elvis plugin</a> for Erlang.mk.
-Elvis is an <a class="ulink" href="https://github.com/inaka/elvis" target="_top">Erlang style reviewer</a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_geas"></a>25.4. geas</h2></div></div></div><p><a class="ulink" href="https://github.com/crownedgrouse/geas" target="_top">Geas</a> gives aggregated
+language for the BEAM.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_elvis_mk"></a>26.3. elvis.mk</h2></div></div></div><p>An <a class="ulink" href="https://github.com/inaka/elvis.mk" target="_top">Elvis plugin</a> for Erlang.mk.
+Elvis is an <a class="ulink" href="https://github.com/inaka/elvis" target="_top">Erlang style reviewer</a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_geas"></a>26.4. geas</h2></div></div></div><p><a class="ulink" href="https://github.com/crownedgrouse/geas" target="_top">Geas</a> gives aggregated
information on a project and its dependencies, and is available
-as an Erlang.mk plugin.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_hexer_mk"></a>25.5. hexer.mk</h2></div></div></div><p>An <a class="ulink" href="https://github.com/inaka/hexer.mk" target="_top">Hex plugin</a> for Erlang.mk
-using the <code class="literal">hexer</code> tool.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_hexpm_mk"></a>25.6. hexpm.mk</h2></div></div></div><p>Another <a class="ulink" href="https://github.com/botsunit/hexpm.mk" target="_top">Hex plugin</a> for
-Erlang.mk, with support for Hex dependency operators.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_jorel"></a>25.7. jorel</h2></div></div></div><p><a class="ulink" href="https://github.com/emedia-project/jorel" target="_top">Jorel</a> is Just anOther RELease
-assembler for Erlang/OTP, and is available as an Erlang.mk plugin.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_lfe_mk"></a>25.8. lfe.mk</h2></div></div></div><p>An <a class="ulink" href="https://github.com/ninenines/lfe.mk" target="_top">LFE plugin</a> for Erlang.mk.
+as an Erlang.mk plugin.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_hexer_mk"></a>26.5. hexer.mk</h2></div></div></div><p>An <a class="ulink" href="https://github.com/inaka/hexer.mk" target="_top">Hex plugin</a> for Erlang.mk
+using the <code class="literal">hexer</code> tool.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_hexpm_mk"></a>26.6. hexpm.mk</h2></div></div></div><p>Another <a class="ulink" href="https://github.com/botsunit/hexpm.mk" target="_top">Hex plugin</a> for
+Erlang.mk, with support for Hex dependency operators.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_jorel"></a>26.7. jorel</h2></div></div></div><p><a class="ulink" href="https://github.com/emedia-project/jorel" target="_top">Jorel</a> is Just anOther RELease
+assembler for Erlang/OTP, and is available as an Erlang.mk plugin.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_lfe_mk"></a>26.8. lfe.mk</h2></div></div></div><p>An <a class="ulink" href="https://github.com/ninenines/lfe.mk" target="_top">LFE plugin</a> for Erlang.mk.
LFE, or <a class="ulink" href="http://lfe.io/" target="_top">Lisp Flavoured Erlang</a>, is an alternative
-language for the BEAM.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_mix_mk"></a>25.9. mix.mk</h2></div></div></div><p>A <a class="ulink" href="https://github.com/botsunit/mix.mk" target="_top">Mix plugin</a> for Erlang.mk,
+language for the BEAM.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_mix_mk"></a>26.9. mix.mk</h2></div></div></div><p>A <a class="ulink" href="https://github.com/botsunit/mix.mk" target="_top">Mix plugin</a> for Erlang.mk,
to generate a compatible configuration file for
-<a class="ulink" href="http://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html" target="_top">Mix</a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_reload_mk"></a>25.10. reload.mk</h2></div></div></div><p>A <a class="ulink" href="https://github.com/bullno1/reload.mk" target="_top">live reload plugin</a> for Erlang.mk.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_rust_mk"></a>25.11. rust.mk</h2></div></div></div><p>A <a class="ulink" href="https://github.com/goertzenator/rust.mk" target="_top">plugin</a> to build <a class="ulink" href="https://www.rust-lang.org/" target="_top">Rust</a> crates and install binaries into <code class="literal">priv/</code>.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="plugins_usage.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="plugins.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="about.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
+<a class="ulink" href="http://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html" target="_top">Mix</a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_reload_mk"></a>26.10. reload.mk</h2></div></div></div><p>A <a class="ulink" href="https://github.com/bullno1/reload.mk" target="_top">live reload plugin</a> for Erlang.mk.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_rust_mk"></a>26.11. rust.mk</h2></div></div></div><p>A <a class="ulink" href="https://github.com/goertzenator/rust.mk" target="_top">plugin</a> to build <a class="ulink" href="https://www.rust-lang.org/" target="_top">Rust</a> crates and install binaries into <code class="literal">priv/</code>.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="plugins_usage.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="plugins.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="about.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
</main>
</body>
</html>
diff --git a/guide/plugins_usage.html b/guide/plugins_usage.html
index aaf5af7..c78e48b 100644
--- a/guide/plugins_usage.html
+++ b/guide/plugins_usage.html
@@ -33,7 +33,7 @@ div.navfooter{margin-bottom:1em}
</header>
<main>
-<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="plugins.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="plugins_list.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="plugins_usage"></a>Chapter 24. External plugins</h2></div></div></div><p>It is often convenient to be able to keep the build files
+<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="plugins.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="plugins_list.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="plugins_usage"></a>Chapter 25. External plugins</h2></div></div></div><p>It is often convenient to be able to keep the build files
used by all your projects in one place. Those files could
be Makefiles, configuration files, templates and more.</p><p>Erlang.mk allows you to automatically load plugins from
dependencies. Plugins can do anything, including defining
@@ -42,19 +42,19 @@ inside the normal Erlang.mk processing or even adding new
rules.</p><p>You can load plugins using one of two methods. You can
either load all plugins from a dependency, or just one.
We will also cover conventions about writing external
-plugins.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_loading_all_plugins_from_a_dependency"></a>24.1. Loading all plugins from a dependency</h2></div></div></div><p>To load plugins from a dependency, all you need to do is add
+plugins.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_loading_all_plugins_from_a_dependency"></a>25.1. Loading all plugins from a dependency</h2></div></div></div><p>To load plugins from a dependency, all you need to do is add
the dependency name to <code class="literal">DEP_PLUGINS</code> in addition to the list
of dependencies.</p><p>For example, if you have <code class="literal">cowboy</code> in <code class="literal">DEPS</code>, add <code class="literal">cowboy</code> in
<code class="literal">DEP_PLUGINS</code> also:</p><pre class="programlisting">DEPS = cowboy
DEP_PLUGINS = cowboy</pre><p>This will load the file <span class="emphasis"><em>plugins.mk</em></span> in the root folder of
-the Cowboy repository.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_loading_one_plugin_from_a_dependency"></a>24.2. Loading one plugin from a dependency</h2></div></div></div><p>Now that we know how to load all plugins, let’s take a look
+the Cowboy repository.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_loading_one_plugin_from_a_dependency"></a>25.2. Loading one plugin from a dependency</h2></div></div></div><p>Now that we know how to load all plugins, let’s take a look
at how to load one specific plugin from a dependency.</p><p>To do this, instead of writing only the name of the dependency,
we will write its name and the path to the plugin file. This
means that writing <code class="literal">DEP_PLUGINS = cowboy</code> is equivalent to
writing <code class="literal">DEP_PLUGINS = cowboy/plugins.mk</code>.</p><p>Knowing this, if we were to load the plugin <span class="emphasis"><em>mk/dist.mk</em></span>
from Cowboy and no other, we would write the following in
our Makefile:</p><pre class="programlisting">DEPS = cowboy
-DEP_PLUGINS = cowboy/mk/dist.mk</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_writing_external_plugins"></a>24.3. Writing external plugins</h2></div></div></div><p>The <span class="emphasis"><em>plugins.mk</em></span> file is a convention. It is meant to load
+DEP_PLUGINS = cowboy/mk/dist.mk</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_writing_external_plugins"></a>25.3. Writing external plugins</h2></div></div></div><p>The <span class="emphasis"><em>plugins.mk</em></span> file is a convention. It is meant to load
all the plugins from the dependency. The code for the plugin
can be written directly in <span class="emphasis"><em>plugins.mk</em></span> or be separate.</p><p>If you are providing more than one plugin with your repository,
the recommended way is to create one file per plugin in the
@@ -65,7 +65,7 @@ file:</p><pre class="programlisting">THIS := $(dir $(realpath $(lastword $(MAKEF
include $(THIS)/mk/dist.mk
include $(THIS)/mk/templates.mk</pre><p>The <code class="literal">THIS</code> variable is required to relatively include files.</p><p>This allows users to not only be able to select individual
plugins, but also select all plugins from the dependency
-in one go if they wish to do so.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_early_stage_plugins"></a>24.4. Early-stage plugins</h2></div></div></div><p>Plugins declared in <code class="literal">DEP_PLUGINS</code> are loaded near the end of Erlang.mk.
+in one go if they wish to do so.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_early_stage_plugins"></a>25.4. Early-stage plugins</h2></div></div></div><p>Plugins declared in <code class="literal">DEP_PLUGINS</code> are loaded near the end of Erlang.mk.
That’s why you have access to all previously initialized variables.
However, if you want your plugin to add common dependencies to
your applications, a regular is loaded too late in the process.
@@ -79,7 +79,7 @@ BUILD_DEPS = common_deps
DEP_EARLY_PLUGINS = common_deps</pre><pre class="programlisting"># In the plugin's early-plugins.mk
DEPS += cowboy
TEST_DEPS = ct_helper
-dep_ct_helper = git https://github.com/ninenines/ct_helper master</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_loading_plugins_local_to_the_application"></a>24.5. Loading plugins local to the application</h2></div></div></div><p>If the Erlang.mk plugin lives in the same directory or repository as your
+dep_ct_helper = git https://github.com/ninenines/ct_helper master</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_loading_plugins_local_to_the_application"></a>25.5. Loading plugins local to the application</h2></div></div></div><p>If the Erlang.mk plugin lives in the same directory or repository as your
application or library, then you can load it exactly like an external
plugin: the dependency name is simply the name of your application or
library.</p><p>For example, the following Makefile loads a plugin in the <span class="emphasis"><em>mk</em></span>
diff --git a/guide/sfx.html b/guide/sfx.html
index 6aff580..e31cb98 100644
--- a/guide/sfx.html
+++ b/guide/sfx.html
@@ -33,8 +33,7 @@ div.navfooter{margin-bottom:1em}
</header>
<main>
-<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="relx.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="escript.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="sfx"></a>Chapter 10. Self-extracting releases</h2></div></div></div><p>Erlang.mk allows you to package <a class="link" href="relx.html" title="Chapter 9. Releases">Relx releases</a>
-<a class="xref" href="relx.html" title="Chapter 9. Releases">Chapter 9, <em>Releases</em></a> as
+<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="relx.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="escript.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="sfx"></a>Chapter 10. Self-extracting releases</h2></div></div></div><p>Erlang.mk allows you to package <a class="link" href="relx.html" title="Chapter 9. Releases">Relx releases</a> as
self-extracting archives. These archives contain all the
files in the release and come in the form of a script that
will extract and run the release automatically.</p><p>This allows you to package the release as a single file
diff --git a/guide/shell.html b/guide/shell.html
index 791a2ee..0d389a5 100644
--- a/guide/shell.html
+++ b/guide/shell.html
@@ -42,7 +42,9 @@ To continue with our example, if you want to use <span class="emphasis"><em>kjel
shell, you also need to change <code class="literal">SHELL_ERL</code> and point it to the
<code class="literal">kjell</code> executable:</p><pre class="programlisting">SHELL_ERL = $(DEPS_DIR)/kjell/bin/kjell</pre><p>You can specify additional options to be used when starting the
shell using the <code class="literal">SHELL_OPTS</code> variable:</p><pre class="programlisting">SHELL_OPTS = -setcookie chocolate</pre><p>Any of the usual <code class="literal">erl</code> options can be used, including <code class="literal">-eval</code>:</p><pre class="programlisting">SHELL_OPTS = -eval 'my_app:run()'</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_usage_3"></a>17.2. Usage</h2></div></div></div><p>To start the shell, all you need is the following command:</p><pre class="programlisting">$ make shell</pre><p>The shell can be stopped as usual with a double Ctrl+C or the
-command <code class="literal">q().</code>.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tests.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tests.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="eunit.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
+command <code class="literal">q().</code>.</p><p>Note that the <code class="literal">shell</code> target does not build the application. To do it,
+use either the <code class="literal">app</code> target or, if you want to include also test
+modules, the <code class="literal">test-build</code> target.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tests.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tests.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="eunit.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
</main>
</body>
</html>
diff --git a/guide/triq.html b/guide/triq.html
new file mode 100644
index 0000000..dde4b76
--- /dev/null
+++ b/guide/triq.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>Erlang.mk User Guide</title>
+<style type="text/css"><!--
+body{background:white;color:black;font-family:"Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;justify-content:center;margin:0 auto;padding:0;width:600px}
+header {align-items:center;display:flex;justify-content:center}
+header nav.left{text-align:right;width:150px}
+header nav.right{text-align:left;width:150px}
+header nav a{display:block;margin:1.5em 1em}
+main{margin-top:2em;text-align:justify}
+main h2, main h3{margin-top:2em}
+main h1, main div.chapter>div.titlepage h2{font-size:2em;margin-top:.67em}
+a{color:#d9230f;text-decoration:none}
+a:hover{text-decoration:underline}
+a.xref{display:none}
+h1, h2, h3{font-weight:normal}
+div.navfooter{margin-bottom:1em}
+--></style>
+</head>
+<body>
+<header>
+ <nav class="left">
+ <a href="index.html">User guide</a>
+ <a href="getting_started.html">Tutorials</a>
+ </nav>
+ <a href="/" class="logo"><img src="../res/logo-small.png" alt="Erlang.mk" title="Erlang.mk: A build tool for Erlang that just works" height="200" width="206"/></a>
+ <nav class="right">
+ <a href="https://github.com/ninenines/erlang.mk/tree/master/index">470+ packages</a>
+ <a href="https://github.com/ninenines/erlang.mk/issues">Issues?</a>
+ </nav>
+</header>
+<main>
+
+<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="ct.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="coverage.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="triq"></a>Chapter 20. Triq</h2></div></div></div><p><a class="ulink" href="https://triq.gitlab.io/" target="_top">Triq</a> is a QuickCheck-like library for
+property-based testing. Erlang.mk automates discovery and checking of
+Triq properties.</p><p>To run all tests (including Triq):</p><pre class="programlisting">$ make tests</pre><p>To run all tests and static checks (including Triq):</p><pre class="programlisting">$ make check</pre><p>You can also run Triq separately:</p><pre class="programlisting">$ make triq</pre><p>To check properties from a single module:</p><pre class="programlisting">$ make triq t=foo_tests</pre><p>To check a single property:</p><pre class="programlisting">$ make triq t=foo_tests:bar</pre></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ct.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tests.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="coverage.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
+</main>
+</body>
+</html>
diff --git a/guide/why.html b/guide/why.html
index 919182d..f7a9bdb 100644
--- a/guide/why.html
+++ b/guide/why.html
@@ -33,15 +33,14 @@ div.navfooter{margin-bottom:1em}
</header>
<main>
-<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="about.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="history.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="why"></a>Chapter 26. Why Erlang.mk</h2></div></div></div><p>Why would you choose Erlang.mk, if not for its
-<a class="link" href="overview.html" title="Chapter 3. Overview">many features</a>
-<a class="xref" href="overview.html" title="Chapter 3. Overview">Chapter 3, <em>Overview</em></a>? This chapter will
-attempt to answer that.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_erlang_mk_is_fast"></a>26.1. Erlang.mk is fast</h2></div></div></div><p>Erlang.mk is as fast as it gets.</p><p>Erlang.mk will group the compilation of files so as to avoid
+<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="about.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="history.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="why"></a>Chapter 27. Why Erlang.mk</h2></div></div></div><p>Why would you choose Erlang.mk, if not for its
+<a class="link" href="overview.html" title="Chapter 3. Overview">many features</a>? This chapter will
+attempt to answer that.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_erlang_mk_is_fast"></a>27.1. Erlang.mk is fast</h2></div></div></div><p>Erlang.mk is as fast as it gets.</p><p>Erlang.mk will group the compilation of files so as to avoid
running the BEAM more than necessary. This saves many seconds
compared to traditional Makefiles, even on small projects.</p><p>Erlang.mk will not try to be too smart. It provides a simple
solution that works for most people, and gives additional
options for projects that run into edge cases, often in the
-form of extra variables or rules to be defined.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_erlang_mk_gives_you_the_full_power_of_unix"></a>26.2. Erlang.mk gives you the full power of Unix</h2></div></div></div><p>Erlang.mk is a Makefile.</p><p>You could use Erlang.mk directly without configuring anything
+form of extra variables or rules to be defined.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_erlang_mk_gives_you_the_full_power_of_unix"></a>27.2. Erlang.mk gives you the full power of Unix</h2></div></div></div><p>Erlang.mk is a Makefile.</p><p>You could use Erlang.mk directly without configuring anything
and it would just work. But you can also extend it greatly
either through configuration or hooks, and you can of course
add your own rules to the Makefile.</p><p>In all cases: for configuration, hooks or custom rules, you
@@ -49,22 +48,22 @@ have all the power of Unix at your disposal, and can call
any utility <span class="emphasis"><em>or even any language interpreter</em></span> you want,
every time you need to. Erlang.mk also allows you to write
scripts in this small language called Erlang directly inside
-your Makefile if you ever need to…</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_erlang_mk_is_a_text_file"></a>26.3. Erlang.mk is a text file</h2></div></div></div><p>Erlang.mk is a Makefile.</p><p>Which means Erlang.mk is a simple text file. You can edit a
+your Makefile if you ever need to…</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_erlang_mk_is_a_text_file"></a>27.3. Erlang.mk is a text file</h2></div></div></div><p>Erlang.mk is a Makefile.</p><p>Which means Erlang.mk is a simple text file. You can edit a
text file. Nothing stops you. If you run into any bug, or
behavior that does not suit you, you can just open the
<span class="emphasis"><em>erlang.mk</em></span> file in your favorite editor, fix and/or comment
-a few lines, save, and try again. It’s as simple as it gets.</p><p>Currently using a binary build tool? Good luck with that.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_erlang_mk_can_manage_erlang_itself"></a>26.4. Erlang.mk can manage Erlang itself</h2></div></div></div><p>Erlang.mk isn’t written in Erlang.</p><p>That’s not a good thing, you say? Well, here’s one thing
+a few lines, save, and try again. It’s as simple as it gets.</p><p>Currently using a binary build tool? Good luck with that.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_erlang_mk_can_manage_erlang_itself"></a>27.4. Erlang.mk can manage Erlang itself</h2></div></div></div><p>Erlang.mk isn’t written in Erlang.</p><p>That’s not a good thing, you say? Well, here’s one thing
that Erlang.mk and Makefiles can do for you that Erlang
build tool can’t easily: choose what version of Erlang is
to be used for compiling the project.</p><p>This really is a one-liner in Erlang.mk (a few more lines
if you also let it download and build Erlang directly)
and allows for even greater things, like testing your
project across all supported Erlang versions in one small
-command: <code class="literal">make -k ci</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_erlang_mk_can_do_more_than_erlang"></a>26.5. Erlang.mk can do more than Erlang</h2></div></div></div><p>Erlang.mk doesn’t care what your dependencies are written in.</p><p>Erlang.mk will happily compile any dependency, as long as
+command: <code class="literal">make -k ci</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_erlang_mk_can_do_more_than_erlang"></a>27.5. Erlang.mk can do more than Erlang</h2></div></div></div><p>Erlang.mk doesn’t care what your dependencies are written in.</p><p>Erlang.mk will happily compile any dependency, as long as
they come with a Makefile. The dependency can be written
in C, C++ or even Javascript… Who cares, really? If you
need Erlang.mk to fetch it, then Erlang.mk will fetch it
-and compile it as needed.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_erlang_mk_integrates_nicely_in_make_and_automake_projects"></a>26.6. Erlang.mk integrates nicely in Make and Automake projects</h2></div></div></div><p>If you are planning to put your project in the middle of
+and compile it as needed.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_erlang_mk_integrates_nicely_in_make_and_automake_projects"></a>27.6. Erlang.mk integrates nicely in Make and Automake projects</h2></div></div></div><p>If you are planning to put your project in the middle of
a Make or Automake-based build environment, then the most
logical thing to do is to use a Makefile.</p><p>Erlang.mk will happily sit in such an environment and behave
as you expect it to.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="about.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="about.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="history.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
diff --git a/guide/xref.html b/guide/xref.html
index 3440412..a4a9aff 100644
--- a/guide/xref.html
+++ b/guide/xref.html
@@ -33,7 +33,7 @@ div.navfooter{margin-bottom:1em}
</header>
<main>
-<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="dialyzer.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="plugins.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="xref"></a>Chapter 23. Xref</h2></div></div></div><p>Placeholder chapter.</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dialyzer.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tests.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="plugins.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
+<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="dialyzer.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="plugins.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="xref"></a>Chapter 24. Xref</h2></div></div></div><p>Placeholder chapter.</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dialyzer.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tests.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="plugins.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
</main>
</body>
</html>