aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2015-12-30 01:58:35 +0100
committerLoïc Hoguin <[email protected]>2015-12-30 01:58:35 +0100
commita932f220ca62d1f4f6a0d9bfb6ee206fdef7fe59 (patch)
tree028a90f749bf735bb448ec3e268a29d201cf3d27
parentba073019fe0da3976e65c7188ca7af11c4bd1a59 (diff)
downloaderlang.mk-a932f220ca62d1f4f6a0d9bfb6ee206fdef7fe59.tar.gz
erlang.mk-a932f220ca62d1f4f6a0d9bfb6ee206fdef7fe59.tar.bz2
erlang.mk-a932f220ca62d1f4f6a0d9bfb6ee206fdef7fe59.zip
Update user guide
-rw-r--r--guide/building.html12
-rw-r--r--guide/compat.html7
-rw-r--r--guide/ct.html3
-rw-r--r--guide/deps.html3
-rw-r--r--guide/eunit.html3
-rw-r--r--guide/getting_started.html9
-rw-r--r--guide/index.html2
-rw-r--r--guide/overview.html50
-rw-r--r--guide/why.html3
9 files changed, 61 insertions, 31 deletions
diff --git a/guide/building.html b/guide/building.html
index b0482c7..4893be3 100644
--- a/guide/building.html
+++ b/guide/building.html
@@ -59,13 +59,15 @@ 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="ulink" href="deps.asciidoc" target="_top">Packages and dependencies</a> are covered
+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
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="ulink" href="releases.asciidoc" target="_top">Releases</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>
+<a class="xref" href="relx.html" title="Chapter 9. Releases">Chapter 9, <em>Releases</em></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
@@ -111,7 +113,8 @@ 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="ulink" href="deps.asciidoc" target="_top">Dependencies</a> are covered in details in
+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
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
@@ -140,7 +143,8 @@ The following formats are supported natively:</p><div class="informaltable"><tab
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="ulink" href="ports.asciidoc" target="_top">NIFs and port drivers</a>
+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 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/compat.html b/guide/compat.html
index def4498..005b305 100644
--- a/guide/compat.html
+++ b/guide/compat.html
@@ -44,7 +44,8 @@ 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="ulink" href="deps.asciidoc" target="_top">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>11.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>
+<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>11.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,
@@ -57,8 +58,8 @@ means that the Rebar family builds your project much the
same way as Erlang.mk.</p><p>Careful though! Different build tools have different fetching
strategies. If some applications provide differing dependencies,
they might be fetched differently by other build tools. Check
-the <a class="ulink" href="sanity_check.asciidoc" target="_top">Sanity check</a> chapter to find
-out how to detect such issues.</p><p>You can automatically generate this file when you build
+the upcoming Sanity check chapter to find out how to detect such
+issues.</p><p>You can automatically generate this file when you build
your application, by making it a dependency of the <code class="literal">app</code>
target:</p><pre class="programlisting">app:: rebar.config</pre><p>Don’t forget to commit the file when it changes!</p><p>If you run into other issues, it’s probably because you use a
feature specific to Erlang.mk, like the <code class="literal">cp</code> fetch method.
diff --git a/guide/ct.html b/guide/ct.html
index 14c1637..f1c21d5 100644
--- a/guide/ct.html
+++ b/guide/ct.html
@@ -54,7 +54,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="ulink" href="coverage.asciidoc" target="_top">code coverage</a> is available,
+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 18. Code coverage">code coverage</a>
+<a class="xref" href="coverage.html" title="Chapter 18. Code coverage">Chapter 18, <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="property_based_testing.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/deps.html b/guide/deps.html
index cbece74..1b424d1 100644
--- a/guide/deps.html
+++ b/guide/deps.html
@@ -58,7 +58,8 @@ building a NIF:</p><pre class="programlisting">BUILD_DEPS = leveldb
dep_leveldb = git https://github.com/basho/leveldb 2.1.3</pre><p>This dependency will be built before your application, so
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="ulink" href="ports.asciidoc" target="_top">NIFs and port drivers</a>
+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/eunit.html b/guide/eunit.html
index 686b23d..4af6bf8 100644
--- a/guide/eunit.html
+++ b/guide/eunit.html
@@ -69,7 +69,8 @@ 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="ulink" href="coverage.asciidoc" target="_top">code coverage</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 18. Code coverage">code coverage</a>
+<a class="xref" href="coverage.html" title="Chapter 18. Code coverage">Chapter 18, <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="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 b3a9d7f..edf340c 100644
--- a/guide/getting_started.html
+++ b/guide/getting_started.html
@@ -61,7 +61,8 @@ 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="ulink" href="updating.asciidoc" target="_top">Updating Erlang.mk</a> chapter for more
+<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
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
@@ -73,7 +74,8 @@ You can use the <code class="literal">bootstrap-rel</code> target for this purpo
create a project that will build a release:</p><pre class="programlisting">$ make -f erlang.mk bootstrap-lib bootstrap-rel</pre><p>It is often very useful to keep the top-level project for
commands useful during operations, and put the components
of the system in separate applications that you will then
-depend on. Consult the <a class="ulink" href="deps.asciidoc" target="_top">Packages and dependencies</a>
+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
@@ -89,7 +91,8 @@ project and build the release:</p><pre class="programlisting">$ make
===&gt; release successfully created!</pre><p>The first time you run this command, Erlang.mk will download
<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="ulink" href="relx.asciidoc" target="_top">Releases</a>
+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
diff --git a/guide/index.html b/guide/index.html
index 769cf67..724a2ed 100644
--- a/guide/index.html
+++ b/guide/index.html
@@ -32,7 +32,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="idm140243634134752"></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#_using_spaces_instead_of_tabs">2.6. Using spaces instead of tabs</a></span></dt><dt><span class="section"><a href="getting_started.html#_using_templates">2.7. Using templates</a></span></dt><dt><span class="section"><a href="getting_started.html#_getting_help">2.8. 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#_ignoring_unwanted_dependencies">7.4. Ignoring unwanted dependencies</a></span></dt><dt><span class="section"><a href="deps.html#_dependencies_directory">7.5. Dependencies directory</a></span></dt><dt><span class="section"><a href="deps.html#_dependencies_local_to_the_repository">7.6. Dependencies local to the repository</a></span></dt><dt><span class="section"><a href="deps.html#_repositories_with_no_application_at_the_root_level">7.7. Repositories with no application at the root level</a></span></dt><dt><span class="section"><a href="deps.html#_autopatch">7.8. Autopatch</a></span></dt><dt><span class="section"><a href="deps.html#_skipping_deps">7.9. 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></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></dl></dd><dt><span class="chapter"><a href="escript.html">10. Escripts</a></span></dt><dt><span class="chapter"><a href="compat.html">11. Compatibility with other build tools</a></span></dt><dd><dl><dt><span class="section"><a href="compat.html#_rebar_projects_as_erlang_mk_dependencies">11.1. Rebar projects as Erlang.mk dependencies</a></span></dt><dt><span class="section"><a href="compat.html#_erlang_mk_projects_as_rebar_dependencies">11.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">12. Asciidoc documentation</a></span></dt><dt><span class="chapter"><a href="edoc.html">13. EDoc comments</a></span></dt></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">14. Erlang shell</a></span></dt><dd><dl><dt><span class="section"><a href="shell.html#_configuration_2">14.1. Configuration</a></span></dt><dt><span class="section"><a href="shell.html#_usage">14.2. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="eunit.html">15. EUnit</a></span></dt><dd><dl><dt><span class="section"><a href="eunit.html#_writing_tests">15.1. Writing tests</a></span></dt><dt><span class="section"><a href="eunit.html#_configuration_3">15.2. Configuration</a></span></dt><dt><span class="section"><a href="eunit.html#_usage_2">15.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="ct.html">16. Common Test</a></span></dt><dd><dl><dt><span class="section"><a href="ct.html#_writing_tests_2">16.1. Writing tests</a></span></dt><dt><span class="section"><a href="ct.html#_configuration_4">16.2. Configuration</a></span></dt><dt><span class="section"><a href="ct.html#_usage_3">16.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="property_based_testing.html">17. Property based testing</a></span></dt><dt><span class="chapter"><a href="coverage.html">18. Code coverage</a></span></dt><dt><span class="chapter"><a href="ci.html">19. Continuous integration</a></span></dt><dt><span class="chapter"><a href="dialyzer.html">20. Dialyzer</a></span></dt><dd><dl><dt><span class="section"><a href="dialyzer.html#_how_it_works">20.1. How it works</a></span></dt><dt><span class="section"><a href="dialyzer.html#_configuration_5">20.2. Configuration</a></span></dt><dt><span class="section"><a href="dialyzer.html#_usage_4">20.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="xref.html">21. 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">22. External plugins</a></span></dt><dd><dl><dt><span class="section"><a href="plugins_usage.html#_loading_all_plugins_from_a_dependency">22.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">22.2. Loading one plugin from a dependency</a></span></dt><dt><span class="section"><a href="plugins_usage.html#_writing_external_plugins">22.3. Writing external plugins</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">23. Why Erlang.mk</a></span></dt><dd><dl><dt><span class="section"><a href="why.html#_erlang_mk_is_fast">23.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">23.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">23.3. Erlang.mk is a text file</a></span></dt><dt><span class="section"><a href="why.html#_erlang_mk_can_manage_erlang_itself">23.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">23.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">23.6. Erlang.mk integrates nicely in Make and Automake projects</a></span></dt></dl></dd><dt><span class="chapter"><a href="history.html">24. Short history</a></span></dt><dd><dl><dt><span class="section"><a href="history.html#_before_erlang_mk">24.1. Before Erlang.mk</a></span></dt><dt><span class="section"><a href="history.html#_lifetime_of_the_project">24.2. Lifetime of the project</a></span></dt></dl></dd><dt><span class="chapter"><a href="contributing.html">25. Contributing</a></span></dt><dd><dl><dt><span class="section"><a href="contributing.html#_priorities">25.1. Priorities</a></span></dt><dt><span class="section"><a href="contributing.html#_bugs">25.2. Bugs</a></span></dt><dt><span class="section"><a href="contributing.html#_code">25.3. Code</a></span></dt><dt><span class="section"><a href="contributing.html#_packages">25.4. Packages</a></span></dt><dt><span class="section"><a href="contributing.html#_documentation">25.5. Documentation</a></span></dt><dt><span class="section"><a href="contributing.html#_feature_requests">25.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="idm140328838329712"></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#_using_spaces_instead_of_tabs">2.6. Using spaces instead of tabs</a></span></dt><dt><span class="section"><a href="getting_started.html#_using_templates">2.7. Using templates</a></span></dt><dt><span class="section"><a href="getting_started.html#_getting_help">2.8. 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#_ignoring_unwanted_dependencies">7.4. Ignoring unwanted dependencies</a></span></dt><dt><span class="section"><a href="deps.html#_dependencies_directory">7.5. Dependencies directory</a></span></dt><dt><span class="section"><a href="deps.html#_dependencies_local_to_the_repository">7.6. Dependencies local to the repository</a></span></dt><dt><span class="section"><a href="deps.html#_repositories_with_no_application_at_the_root_level">7.7. Repositories with no application at the root level</a></span></dt><dt><span class="section"><a href="deps.html#_autopatch">7.8. Autopatch</a></span></dt><dt><span class="section"><a href="deps.html#_skipping_deps">7.9. 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></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></dl></dd><dt><span class="chapter"><a href="escript.html">10. Escripts</a></span></dt><dt><span class="chapter"><a href="compat.html">11. Compatibility with other build tools</a></span></dt><dd><dl><dt><span class="section"><a href="compat.html#_rebar_projects_as_erlang_mk_dependencies">11.1. Rebar projects as Erlang.mk dependencies</a></span></dt><dt><span class="section"><a href="compat.html#_erlang_mk_projects_as_rebar_dependencies">11.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">12. Asciidoc documentation</a></span></dt><dt><span class="chapter"><a href="edoc.html">13. EDoc comments</a></span></dt></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">14. Erlang shell</a></span></dt><dd><dl><dt><span class="section"><a href="shell.html#_configuration_2">14.1. Configuration</a></span></dt><dt><span class="section"><a href="shell.html#_usage">14.2. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="eunit.html">15. EUnit</a></span></dt><dd><dl><dt><span class="section"><a href="eunit.html#_writing_tests">15.1. Writing tests</a></span></dt><dt><span class="section"><a href="eunit.html#_configuration_3">15.2. Configuration</a></span></dt><dt><span class="section"><a href="eunit.html#_usage_2">15.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="ct.html">16. Common Test</a></span></dt><dd><dl><dt><span class="section"><a href="ct.html#_writing_tests_2">16.1. Writing tests</a></span></dt><dt><span class="section"><a href="ct.html#_configuration_4">16.2. Configuration</a></span></dt><dt><span class="section"><a href="ct.html#_usage_3">16.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="property_based_testing.html">17. Property based testing</a></span></dt><dt><span class="chapter"><a href="coverage.html">18. Code coverage</a></span></dt><dt><span class="chapter"><a href="ci.html">19. Continuous integration</a></span></dt><dt><span class="chapter"><a href="dialyzer.html">20. Dialyzer</a></span></dt><dd><dl><dt><span class="section"><a href="dialyzer.html#_how_it_works">20.1. How it works</a></span></dt><dt><span class="section"><a href="dialyzer.html#_configuration_5">20.2. Configuration</a></span></dt><dt><span class="section"><a href="dialyzer.html#_usage_4">20.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="xref.html">21. 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">22. External plugins</a></span></dt><dd><dl><dt><span class="section"><a href="plugins_usage.html#_loading_all_plugins_from_a_dependency">22.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">22.2. Loading one plugin from a dependency</a></span></dt><dt><span class="section"><a href="plugins_usage.html#_writing_external_plugins">22.3. Writing external plugins</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">23. Why Erlang.mk</a></span></dt><dd><dl><dt><span class="section"><a href="why.html#_erlang_mk_is_fast">23.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">23.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">23.3. Erlang.mk is a text file</a></span></dt><dt><span class="section"><a href="why.html#_erlang_mk_can_manage_erlang_itself">23.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">23.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">23.6. Erlang.mk integrates nicely in Make and Automake projects</a></span></dt></dl></dd><dt><span class="chapter"><a href="history.html">24. Short history</a></span></dt><dd><dl><dt><span class="section"><a href="history.html#_before_erlang_mk">24.1. Before Erlang.mk</a></span></dt><dt><span class="section"><a href="history.html#_lifetime_of_the_project">24.2. Lifetime of the project</a></span></dt></dl></dd><dt><span class="chapter"><a href="contributing.html">25. Contributing</a></span></dt><dd><dl><dt><span class="section"><a href="contributing.html#_priorities">25.1. Priorities</a></span></dt><dt><span class="section"><a href="contributing.html#_bugs">25.2. Bugs</a></span></dt><dt><span class="section"><a href="contributing.html#_code">25.3. Code</a></span></dt><dt><span class="section"><a href="contributing.html#_packages">25.4. Packages</a></span></dt><dt><span class="section"><a href="contributing.html#_documentation">25.5. Documentation</a></span></dt><dt><span class="section"><a href="contributing.html#_feature_requests">25.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/overview.html b/guide/overview.html
index cf35ede..0c5da11 100644
--- a/guide/overview.html
+++ b/guide/overview.html
@@ -35,37 +35,55 @@ div.navfooter{margin-bottom:1em}
<div class="navheader"><table width="100%" summary="Navigation header"><tr><td width="20%" align="left"><a accesskey="p" href="getting_started.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="updating.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="overview"></a>Chapter 3. Overview</h1></div></div></div><p>Now that you know how to get started, let’s take a look at
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="ulink" href="app.asciidoc" target="_top">Erlang-specific files</a>
+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="ulink" href="ports.asciidoc" target="_top">a NIF or a port driver</a>.</p><p>Erlang.mk embraces the concept of <a class="ulink" href="deps.asciidoc" target="_top">source dependencies</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>
+<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>.
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="ulink" href="relx.asciidoc" target="_top">generate releases</a>
-when applicable. It can also <a class="ulink" href="escripts.asciidoc" target="_top">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="ulink" href="deps.asciidoc" target="_top">built-in package index</a>.
+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 10. Escripts">generate escripts</a>
+<a class="xref" href="escript.html" title="Chapter 10. Escripts">Chapter 10, <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>.
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="ulink" href="edoc.asciidoc" target="_top">EDoc</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 13. EDoc comments">EDoc</a>
+<a class="xref" href="edoc.html" title="Chapter 13. EDoc comments">Chapter 13, <em>EDoc comments</em></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="ulink" href="asciidoc.asciidoc" target="_top">Asciidoc</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 12. Asciidoc documentation">Asciidoc</a>
+<a class="xref" href="asciidoc.html" title="Chapter 12. Asciidoc documentation">Chapter 12, <em>Asciidoc documentation</em></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="ulink" href="shell.asciidoc" target="_top">make shell</a> command allows you
+analysis tools.</p><p>The <a class="link" href="shell.html" title="Chapter 14. Erlang shell">make shell</a>
+<a class="xref" href="shell.html" title="Chapter 14. Erlang shell">Chapter 14, <em>Erlang shell</em></a> command allows you
to test your project manually. You can automate these
-unit tests with <a class="ulink" href="eunit.asciidoc" target="_top">EUnit</a> and test
-your entire system with <a class="ulink" href="common_test.asciidoc" target="_top">Common Test</a>.
-<a class="ulink" href="property_based_testing.asciidoc" target="_top">Property based testing</a>
+unit tests with <a class="link" href="eunit.html" title="Chapter 15. EUnit">EUnit</a>
+<a class="xref" href="eunit.html" title="Chapter 15. EUnit">Chapter 15, <em>EUnit</em></a> and test
+your entire system with <a class="link" href="ct.html" title="Chapter 16. Common Test">Common Test</a>
+<a class="xref" href="ct.html" title="Chapter 16. Common Test">Chapter 16, <em>Common Test</em></a>.
+<a class="link" href="property_based_testing.html" title="Chapter 17. Property based testing">Property based testing</a>
+<a class="xref" href="property_based_testing.html" title="Chapter 17. Property based testing">Chapter 17, <em>Property based testing</em></a>
with Triq is a strong alternative to writing unit tests
-manually. <a class="ulink" href="coverage.asciidoc" target="_top">Code coverage</a> can of course
+manually. <a class="link" href="coverage.html" title="Chapter 18. Code coverage">Code coverage</a>
+<a class="xref" href="coverage.html" title="Chapter 18. Code coverage">Chapter 18, <em>Code coverage</em></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="ulink" href="ci.asciidoc" target="_top">Continuous integration</a>.</p><p>On the static analysis side of things, Erlang.mk comes with
-support for <a class="ulink" href="dialyzer.asciidoc" target="_top">Dialyzer</a>, <a class="ulink" href="xref.asciidoc" target="_top">Xref</a>
-and <a class="ulink" href="elvis.asciidoc" target="_top">Elvis</a>, performing success typing
-analysis, cross reference and style reviewing.</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="ulink" href="why.asciidoc" target="_top">why you should use Erlang.mk</a>
-and its <a class="ulink" href="history.asciidoc" target="_top">history</a>. And if you’re still not
+setting up and using <a class="link" href="ci.html" title="Chapter 19. Continuous integration">Continuous integration</a>
+<a class="xref" href="ci.html" title="Chapter 19. Continuous integration">Chapter 19, <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 20. Dialyzer">Dialyzer</a>
+<a class="xref" href="dialyzer.html" title="Chapter 20. Dialyzer">Chapter 20, <em>Dialyzer</em></a> and <a class="link" href="xref.html" title="Chapter 21. Xref">Xref</a>
+<a class="xref" href="xref.html" title="Chapter 21. Xref">Chapter 21, <em>Xref</em></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 23. Why Erlang.mk">why you should use Erlang.mk</a>
+<a class="xref" href="why.html" title="Chapter 23. Why Erlang.mk">Chapter 23, <em>Why Erlang.mk</em></a>
+and its <a class="link" href="history.html" title="Chapter 24. Short history">history</a>
+<a class="xref" href="history.html" title="Chapter 24. Short history">Chapter 24, <em>Short history</em></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/why.html b/guide/why.html
index ad3dc79..3e8da98 100644
--- a/guide/why.html
+++ b/guide/why.html
@@ -33,7 +33,8 @@ 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="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 23. Why Erlang.mk</h2></div></div></div><p>Why would you choose Erlang.mk, if not for its
-<a class="ulink" href="overview.asciidoc" target="_top">many features</a>? This chapter will
+<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>23.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