aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2015-12-01 15:39:38 +0100
committerLoïc Hoguin <[email protected]>2015-12-01 15:39:38 +0100
commitcf2cdda6e0b941b1b0b61c8b8a305dd70de930ac (patch)
treea16256ce1d49eb200fa70a77f0bc161586ed52d9
parent565c73fdbe5bacd1b3ce78796b0ccd3eb01c5bca (diff)
downloaderlang.mk-cf2cdda6e0b941b1b0b61c8b8a305dd70de930ac.tar.gz
erlang.mk-cf2cdda6e0b941b1b0b61c8b8a305dd70de930ac.tar.bz2
erlang.mk-cf2cdda6e0b941b1b0b61c8b8a305dd70de930ac.zip
Update user guide
-rw-r--r--guide/ch20.html31
-rw-r--r--guide/index.html2
2 files changed, 31 insertions, 2 deletions
diff --git a/guide/ch20.html b/guide/ch20.html
index 7fe395e..5f0b788 100644
--- a/guide/ch20.html
+++ b/guide/ch20.html
@@ -31,7 +31,36 @@ 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="ch19.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch21.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="_dialyzer"></a>Chapter 20. Dialyzer</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="ch19.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="pt03.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch21.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="ch19.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch21.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="_dialyzer"></a>Chapter 20. 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>20.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_3"></a>20.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
+be written to (and read from). By default this is
+<span class="emphasis"><em>$(PROJECT).plt</em></span> in the project’s directory. Note that
+the <code class="literal">DIALYZER_PLT</code> variable is exported and is understood
+by Dialyzer directly.</p><p>The <code class="literal">PLT_APPS</code> variable can be used to add additional
+applications to the PLT. You can either list application
+names or paths to these applications.</p><p>Erlang.mk defines two variables for specifying options
+for the analysis: <code class="literal">DIALYZER_DIRS</code> and <code class="literal">DIALYZER_OPTS</code>.
+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_2"></a>20.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="ch19.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="pt03.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch21.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/index.html b/guide/index.html
index 58d1633..2cd9b84 100644
--- a/guide/index.html
+++ b/guide/index.html
@@ -31,7 +31,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="ch01.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="idm139634276036304"></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="ch01.html">1. Installation</a></span></dt><dd><dl><dt><span class="section"><a href="ch01.html#_on_unix">1.1. On Unix</a></span></dt><dt><span class="section"><a href="ch01.html#_on_windows">1.2. On Windows</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch02.html">2. Getting started</a></span></dt><dd><dl><dt><span class="section"><a href="ch02.html#_creating_a_folder_for_your_project">2.1. Creating a folder for your project</a></span></dt><dt><span class="section"><a href="ch02.html#_downloading_erlang_mk">2.2. Downloading Erlang.mk</a></span></dt><dt><span class="section"><a href="ch02.html#_getting_started_with_otp_applications">2.3. Getting started with OTP applications</a></span></dt><dt><span class="section"><a href="ch02.html#_getting_started_with_otp_libraries">2.4. Getting started with OTP libraries</a></span></dt><dt><span class="section"><a href="ch02.html#_getting_started_with_otp_releases">2.5. Getting started with OTP releases</a></span></dt><dt><span class="section"><a href="ch02.html#_using_spaces_instead_of_tabs">2.6. Using spaces instead of tabs</a></span></dt><dt><span class="section"><a href="ch02.html#_using_templates">2.7. Using templates</a></span></dt><dt><span class="section"><a href="ch02.html#_getting_help">2.8. Getting help</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch03.html">3. Overview</a></span></dt><dd><dl><dt><span class="section"><a href="ch03.html#_building_your_project">3.1. Building your project</a></span></dt><dt><span class="section"><a href="ch03.html#_exploring_the_package_index">3.2. Exploring the package index</a></span></dt><dt><span class="section"><a href="ch03.html#_generating_documentation">3.3. Generating documentation</a></span></dt><dt><span class="section"><a href="ch03.html#_running_tests">3.4. Running tests</a></span></dt><dt><span class="section"><a href="ch03.html#_need_more">3.5. Need more?</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch04.html">4. Updating Erlang.mk</a></span></dt><dd><dl><dt><span class="section"><a href="ch04.html#_initial_bootstrap">4.1. Initial bootstrap</a></span></dt><dt><span class="section"><a href="ch04.html#_updating">4.2. Updating</a></span></dt><dt><span class="section"><a href="ch04.html#_customizing_the_build">4.3. Customizing the build</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch05.html">5. Limitations</a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#_erlang_must_be_available">5.1. Erlang must be available</a></span></dt><dt><span class="section"><a href="ch05.html#_spaces_in_path">5.2. Spaces in path</a></span></dt><dt><span class="section"><a href="ch05.html#_dependency_tracking_and_modification_times">5.3. Dependency tracking and modification times</a></span></dt></dl></dd><dt><span class="part"><a href="pt01.html">I. Code</a></span></dt><dd><dl><dt><span class="chapter"><a href="ch06.html">6. Building</a></span></dt><dd><dl><dt><span class="section"><a href="ch06.html#_how_to_build">6.1. How to build</a></span></dt><dt><span class="section"><a href="ch06.html#_what_to_build">6.2. What to build</a></span></dt><dt><span class="section"><a href="ch06.html#_application_resource_file">6.3. Application resource file</a></span></dt><dt><span class="section"><a href="ch06.html#_automatic_application_resource_file_values">6.4. Automatic application resource file values</a></span></dt><dt><span class="section"><a href="ch06.html#_file_formats">6.5. File formats</a></span></dt><dt><span class="section"><a href="ch06.html#_compilation_options">6.6. Compilation options</a></span></dt><dt><span class="section"><a href="ch06.html#_cold_and_hot_builds">6.7. Cold and hot builds</a></span></dt><dt><span class="section"><a href="ch06.html#_dependency_tracking">6.8. Dependency tracking</a></span></dt><dt><span class="section"><a href="ch06.html#_generating_erlang_source">6.9. Generating Erlang source</a></span></dt><dt><span class="section"><a href="ch06.html#_cleaning">6.10. Cleaning</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch07.html">7. Packages and dependencies</a></span></dt><dd><dl><dt><span class="section"><a href="ch07.html#_searching_packages">7.1. Searching packages</a></span></dt><dt><span class="section"><a href="ch07.html#_adding_dependencies_to_your_project">7.2. Adding dependencies to your project</a></span></dt><dt><span class="section"><a href="ch07.html#_how_deps_are_fetched_and_built">7.3. How deps are fetched and built</a></span></dt><dt><span class="section"><a href="ch07.html#_ignoring_unwanted_dependencies">7.4. Ignoring unwanted dependencies</a></span></dt><dt><span class="section"><a href="ch07.html#_dependencies_directory">7.5. Dependencies directory</a></span></dt><dt><span class="section"><a href="ch07.html#_dependencies_local_to_the_repository">7.6. Dependencies local to the repository</a></span></dt><dt><span class="section"><a href="ch07.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="ch07.html#_autopatch">7.8. Autopatch</a></span></dt><dt><span class="section"><a href="ch07.html#_skipping_deps">7.9. Skipping deps</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch08.html">8. NIFs and port drivers</a></span></dt><dd><dl><dt><span class="section"><a href="ch08.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="ch08.html#_using_a_custom_makefile">8.2. Using a custom Makefile</a></span></dt><dt><span class="section"><a href="ch08.html#_using_erlang_mk_directly">8.3. Using Erlang.mk directly</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch09.html">9. Releases</a></span></dt><dd><dl><dt><span class="section"><a href="ch09.html#_setup">9.1. Setup</a></span></dt><dt><span class="section"><a href="ch09.html#_configuration">9.2. Configuration</a></span></dt><dt><span class="section"><a href="ch09.html#_generating_the_release">9.3. Generating the release</a></span></dt><dt><span class="section"><a href="ch09.html#_running_the_release">9.4. Running the release</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch10.html">10. Escripts</a></span></dt><dt><span class="chapter"><a href="ch11.html">11. Compatibility with other build tools</a></span></dt><dd><dl><dt><span class="section"><a href="ch11.html#_rebar_projects_as_erlang_mk_dependencies">11.1. Rebar projects as Erlang.mk dependencies</a></span></dt><dt><span class="section"><a href="ch11.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="pt02.html">II. Documentation</a></span></dt><dd><dl><dt><span class="chapter"><a href="ch12.html">12. Asciidoc documentation</a></span></dt><dt><span class="chapter"><a href="ch13.html">13. EDoc comments</a></span></dt></dl></dd><dt><span class="part"><a href="pt03.html">III. Tests</a></span></dt><dd><dl><dt><span class="chapter"><a href="ch14.html">14. Erlang shell</a></span></dt><dd><dl><dt><span class="section"><a href="ch14.html#_configuration_2">14.1. Configuration</a></span></dt><dt><span class="section"><a href="ch14.html#_usage">14.2. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch15.html">15. EUnit</a></span></dt><dt><span class="chapter"><a href="ch16.html">16. Common Test</a></span></dt><dt><span class="chapter"><a href="ch17.html">17. Property based testing</a></span></dt><dt><span class="chapter"><a href="ch18.html">18. Code coverage</a></span></dt><dt><span class="chapter"><a href="ch19.html">19. Continuous integration</a></span></dt><dt><span class="chapter"><a href="ch20.html">20. Dialyzer</a></span></dt><dt><span class="chapter"><a href="ch21.html">21. Xref</a></span></dt></dl></dd><dt><span class="part"><a href="pt04.html">IV. Third-party plugins</a></span></dt><dd><dl><dt><span class="chapter"><a href="ch22.html">22. External plugins</a></span></dt><dd><dl><dt><span class="section"><a href="ch22.html#_loading_all_plugins_from_a_dependency">22.1. Loading all plugins from a dependency</a></span></dt><dt><span class="section"><a href="ch22.html#_loading_one_plugin_from_a_dependency">22.2. Loading one plugin from a dependency</a></span></dt><dt><span class="section"><a href="ch22.html#_writing_external_plugins">22.3. Writing external plugins</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="pt05.html">V. About Erlang.mk</a></span></dt><dd><dl><dt><span class="chapter"><a href="ch23.html">23. Why Erlang.mk</a></span></dt><dd><dl><dt><span class="section"><a href="ch23.html#_erlang_mk_is_fast">23.1. Erlang.mk is fast</a></span></dt><dt><span class="section"><a href="ch23.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="ch23.html#_erlang_mk_is_a_text_file">23.3. Erlang.mk is a text file</a></span></dt><dt><span class="section"><a href="ch23.html#_erlang_mk_can_manage_erlang_itself">23.4. Erlang.mk can manage Erlang itself</a></span></dt><dt><span class="section"><a href="ch23.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="ch23.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="ch24.html">24. Short history</a></span></dt><dt><span class="chapter"><a href="ch25.html">25. Architecture</a></span></dt><dt><span class="chapter"><a href="ch26.html">26. Contributing</a></span></dt></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="ch01.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="ch01.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="idm139639056938272"></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="ch01.html">1. Installation</a></span></dt><dd><dl><dt><span class="section"><a href="ch01.html#_on_unix">1.1. On Unix</a></span></dt><dt><span class="section"><a href="ch01.html#_on_windows">1.2. On Windows</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch02.html">2. Getting started</a></span></dt><dd><dl><dt><span class="section"><a href="ch02.html#_creating_a_folder_for_your_project">2.1. Creating a folder for your project</a></span></dt><dt><span class="section"><a href="ch02.html#_downloading_erlang_mk">2.2. Downloading Erlang.mk</a></span></dt><dt><span class="section"><a href="ch02.html#_getting_started_with_otp_applications">2.3. Getting started with OTP applications</a></span></dt><dt><span class="section"><a href="ch02.html#_getting_started_with_otp_libraries">2.4. Getting started with OTP libraries</a></span></dt><dt><span class="section"><a href="ch02.html#_getting_started_with_otp_releases">2.5. Getting started with OTP releases</a></span></dt><dt><span class="section"><a href="ch02.html#_using_spaces_instead_of_tabs">2.6. Using spaces instead of tabs</a></span></dt><dt><span class="section"><a href="ch02.html#_using_templates">2.7. Using templates</a></span></dt><dt><span class="section"><a href="ch02.html#_getting_help">2.8. Getting help</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch03.html">3. Overview</a></span></dt><dd><dl><dt><span class="section"><a href="ch03.html#_building_your_project">3.1. Building your project</a></span></dt><dt><span class="section"><a href="ch03.html#_exploring_the_package_index">3.2. Exploring the package index</a></span></dt><dt><span class="section"><a href="ch03.html#_generating_documentation">3.3. Generating documentation</a></span></dt><dt><span class="section"><a href="ch03.html#_running_tests">3.4. Running tests</a></span></dt><dt><span class="section"><a href="ch03.html#_need_more">3.5. Need more?</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch04.html">4. Updating Erlang.mk</a></span></dt><dd><dl><dt><span class="section"><a href="ch04.html#_initial_bootstrap">4.1. Initial bootstrap</a></span></dt><dt><span class="section"><a href="ch04.html#_updating">4.2. Updating</a></span></dt><dt><span class="section"><a href="ch04.html#_customizing_the_build">4.3. Customizing the build</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch05.html">5. Limitations</a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#_erlang_must_be_available">5.1. Erlang must be available</a></span></dt><dt><span class="section"><a href="ch05.html#_spaces_in_path">5.2. Spaces in path</a></span></dt><dt><span class="section"><a href="ch05.html#_dependency_tracking_and_modification_times">5.3. Dependency tracking and modification times</a></span></dt></dl></dd><dt><span class="part"><a href="pt01.html">I. Code</a></span></dt><dd><dl><dt><span class="chapter"><a href="ch06.html">6. Building</a></span></dt><dd><dl><dt><span class="section"><a href="ch06.html#_how_to_build">6.1. How to build</a></span></dt><dt><span class="section"><a href="ch06.html#_what_to_build">6.2. What to build</a></span></dt><dt><span class="section"><a href="ch06.html#_application_resource_file">6.3. Application resource file</a></span></dt><dt><span class="section"><a href="ch06.html#_automatic_application_resource_file_values">6.4. Automatic application resource file values</a></span></dt><dt><span class="section"><a href="ch06.html#_file_formats">6.5. File formats</a></span></dt><dt><span class="section"><a href="ch06.html#_compilation_options">6.6. Compilation options</a></span></dt><dt><span class="section"><a href="ch06.html#_cold_and_hot_builds">6.7. Cold and hot builds</a></span></dt><dt><span class="section"><a href="ch06.html#_dependency_tracking">6.8. Dependency tracking</a></span></dt><dt><span class="section"><a href="ch06.html#_generating_erlang_source">6.9. Generating Erlang source</a></span></dt><dt><span class="section"><a href="ch06.html#_cleaning">6.10. Cleaning</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch07.html">7. Packages and dependencies</a></span></dt><dd><dl><dt><span class="section"><a href="ch07.html#_searching_packages">7.1. Searching packages</a></span></dt><dt><span class="section"><a href="ch07.html#_adding_dependencies_to_your_project">7.2. Adding dependencies to your project</a></span></dt><dt><span class="section"><a href="ch07.html#_how_deps_are_fetched_and_built">7.3. How deps are fetched and built</a></span></dt><dt><span class="section"><a href="ch07.html#_ignoring_unwanted_dependencies">7.4. Ignoring unwanted dependencies</a></span></dt><dt><span class="section"><a href="ch07.html#_dependencies_directory">7.5. Dependencies directory</a></span></dt><dt><span class="section"><a href="ch07.html#_dependencies_local_to_the_repository">7.6. Dependencies local to the repository</a></span></dt><dt><span class="section"><a href="ch07.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="ch07.html#_autopatch">7.8. Autopatch</a></span></dt><dt><span class="section"><a href="ch07.html#_skipping_deps">7.9. Skipping deps</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch08.html">8. NIFs and port drivers</a></span></dt><dd><dl><dt><span class="section"><a href="ch08.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="ch08.html#_using_a_custom_makefile">8.2. Using a custom Makefile</a></span></dt><dt><span class="section"><a href="ch08.html#_using_erlang_mk_directly">8.3. Using Erlang.mk directly</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch09.html">9. Releases</a></span></dt><dd><dl><dt><span class="section"><a href="ch09.html#_setup">9.1. Setup</a></span></dt><dt><span class="section"><a href="ch09.html#_configuration">9.2. Configuration</a></span></dt><dt><span class="section"><a href="ch09.html#_generating_the_release">9.3. Generating the release</a></span></dt><dt><span class="section"><a href="ch09.html#_running_the_release">9.4. Running the release</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch10.html">10. Escripts</a></span></dt><dt><span class="chapter"><a href="ch11.html">11. Compatibility with other build tools</a></span></dt><dd><dl><dt><span class="section"><a href="ch11.html#_rebar_projects_as_erlang_mk_dependencies">11.1. Rebar projects as Erlang.mk dependencies</a></span></dt><dt><span class="section"><a href="ch11.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="pt02.html">II. Documentation</a></span></dt><dd><dl><dt><span class="chapter"><a href="ch12.html">12. Asciidoc documentation</a></span></dt><dt><span class="chapter"><a href="ch13.html">13. EDoc comments</a></span></dt></dl></dd><dt><span class="part"><a href="pt03.html">III. Tests</a></span></dt><dd><dl><dt><span class="chapter"><a href="ch14.html">14. Erlang shell</a></span></dt><dd><dl><dt><span class="section"><a href="ch14.html#_configuration_2">14.1. Configuration</a></span></dt><dt><span class="section"><a href="ch14.html#_usage">14.2. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch15.html">15. EUnit</a></span></dt><dt><span class="chapter"><a href="ch16.html">16. Common Test</a></span></dt><dt><span class="chapter"><a href="ch17.html">17. Property based testing</a></span></dt><dt><span class="chapter"><a href="ch18.html">18. Code coverage</a></span></dt><dt><span class="chapter"><a href="ch19.html">19. Continuous integration</a></span></dt><dt><span class="chapter"><a href="ch20.html">20. Dialyzer</a></span></dt><dd><dl><dt><span class="section"><a href="ch20.html#_how_it_works">20.1. How it works</a></span></dt><dt><span class="section"><a href="ch20.html#_configuration_3">20.2. Configuration</a></span></dt><dt><span class="section"><a href="ch20.html#_usage_2">20.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch21.html">21. Xref</a></span></dt></dl></dd><dt><span class="part"><a href="pt04.html">IV. Third-party plugins</a></span></dt><dd><dl><dt><span class="chapter"><a href="ch22.html">22. External plugins</a></span></dt><dd><dl><dt><span class="section"><a href="ch22.html#_loading_all_plugins_from_a_dependency">22.1. Loading all plugins from a dependency</a></span></dt><dt><span class="section"><a href="ch22.html#_loading_one_plugin_from_a_dependency">22.2. Loading one plugin from a dependency</a></span></dt><dt><span class="section"><a href="ch22.html#_writing_external_plugins">22.3. Writing external plugins</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="pt05.html">V. About Erlang.mk</a></span></dt><dd><dl><dt><span class="chapter"><a href="ch23.html">23. Why Erlang.mk</a></span></dt><dd><dl><dt><span class="section"><a href="ch23.html#_erlang_mk_is_fast">23.1. Erlang.mk is fast</a></span></dt><dt><span class="section"><a href="ch23.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="ch23.html#_erlang_mk_is_a_text_file">23.3. Erlang.mk is a text file</a></span></dt><dt><span class="section"><a href="ch23.html#_erlang_mk_can_manage_erlang_itself">23.4. Erlang.mk can manage Erlang itself</a></span></dt><dt><span class="section"><a href="ch23.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="ch23.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="ch24.html">24. Short history</a></span></dt><dt><span class="chapter"><a href="ch25.html">25. Architecture</a></span></dt><dt><span class="chapter"><a href="ch26.html">26. Contributing</a></span></dt></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="ch01.html">Next</a></td></tr></table></div>
</main>
</body>
</html>