aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2024-11-27 12:16:07 +0100
committerLoïc Hoguin <[email protected]>2024-11-27 12:16:07 +0100
commitc730de793f32ccd58dba04901310a8cc1cb6c54a (patch)
tree0e0eec711d8453076be7c19eb4bd494017b8ac38
parentda89ac9fa9af8a96dc13404bc286fead20f47e86 (diff)
downloaderlang.mk-gh-pages.tar.gz
erlang.mk-gh-pages.tar.bz2
erlang.mk-gh-pages.zip
Update user guidegh-pages
-rw-r--r--guide/getting_started.html12
-rw-r--r--guide/index.html2
-rw-r--r--guide/plugins_usage.html20
3 files changed, 29 insertions, 5 deletions
diff --git a/guide/getting_started.html b/guide/getting_started.html
index 7369da2..8d4d0e9 100644
--- a/guide/getting_started.html
+++ b/guide/getting_started.html
@@ -142,7 +142,17 @@ 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 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
+Available templates:
+ cowboy_http_h
+ cowboy_loop_h
+ cowboy_rest_h
+ cowboy_websocket_h
+ gen_fsm
+ gen_server
+ gen_statem
+ module
+ 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/index.html b/guide/index.html
index 2730877..9d88626 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="id1337"></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#_querying_dependencies">7.5. Querying dependencies</a></span></dt><dt><span class="section"><a href="deps.html#_ignoring_unwanted_dependencies">7.6. Ignoring unwanted dependencies</a></span></dt><dt><span class="section"><a href="deps.html#_dependencies_directory">7.7. Dependencies directory</a></span></dt><dt><span class="section"><a href="deps.html#_many_applications_in_one_repository">7.8. 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.9. Repositories with no application at the root level</a></span></dt><dt><span class="section"><a href="deps.html#_autopatch">7.10. Autopatch</a></span></dt><dt><span class="section"><a href="deps.html#_dealing_with_duplicate_modules">7.11. Dealing with duplicate modules</a></span></dt><dt><span class="section"><a href="deps.html#_skipping_deps">7.12. 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="cross_compiling.html">13. Cross compiling</a></span></dt><dd><dl><dt><span class="section"><a href="cross_compiling.html#_compiling">13.1. Compiling</a></span></dt><dt><span class="section"><a href="cross_compiling.html#_building_the_release">13.2. Building the release</a></span></dt></dl></dd><dt><span class="chapter"><a href="compat.html">14. Compatibility with other build tools</a></span></dt><dd><dl><dt><span class="section"><a href="compat.html#_rebar_projects_as_erlang_mk_dependencies">14.1. Rebar projects as Erlang.mk dependencies</a></span></dt><dt><span class="section"><a href="compat.html#_erlang_mk_projects_as_rebar_dependencies">14.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">15. AsciiDoc documentation</a></span></dt><dd><dl><dt><span class="section"><a href="asciidoc.html#_requirements_2">15.1. Requirements</a></span></dt><dt><span class="section"><a href="asciidoc.html#_writing_asciidoc_documentation">15.2. Writing AsciiDoc documentation</a></span></dt><dt><span class="section"><a href="asciidoc.html#_configuration_3">15.3. Configuration</a></span></dt><dt><span class="section"><a href="asciidoc.html#_usage">15.4. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="edoc.html">16. EDoc comments</a></span></dt><dd><dl><dt><span class="section"><a href="edoc.html#_writing_edoc_comments">16.1. Writing EDoc comments</a></span></dt><dt><span class="section"><a href="edoc.html#_configuration_4">16.2. Configuration</a></span></dt><dt><span class="section"><a href="edoc.html#_usage_2">16.3. Usage</a></span></dt><dt><span class="section"><a href="edoc.html#_running_edoc_on_all_applications">16.4. Running EDoc on all applications</a></span></dt></dl></dd><dt><span class="chapter"><a href="sphinx.html">17. Sphinx documentation</a></span></dt><dd><dl><dt><span class="section"><a href="sphinx.html#_writing_sphinx_documentation">17.1. Writing Sphinx documentation</a></span></dt><dt><span class="section"><a href="sphinx.html#_basic_setup">17.2. Basic setup</a></span></dt><dt><span class="section"><a href="sphinx.html#_erlang_mk_configuration">17.3. Erlang.mk configuration</a></span></dt><dt><span class="section"><a href="sphinx.html#_generating_man_pages">17.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">18. Erlang shell</a></span></dt><dd><dl><dt><span class="section"><a href="shell.html#_configuration_5">18.1. Configuration</a></span></dt><dt><span class="section"><a href="shell.html#_usage_3">18.2. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="eunit.html">19. EUnit</a></span></dt><dd><dl><dt><span class="section"><a href="eunit.html#_writing_tests">19.1. Writing tests</a></span></dt><dt><span class="section"><a href="eunit.html#_configuration_6">19.2. Configuration</a></span></dt><dt><span class="section"><a href="eunit.html#_usage_4">19.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="ct.html">20. Common Test</a></span></dt><dd><dl><dt><span class="section"><a href="ct.html#_writing_tests_2">20.1. Writing tests</a></span></dt><dt><span class="section"><a href="ct.html#_configuration_7">20.2. Configuration</a></span></dt><dt><span class="section"><a href="ct.html#_usage_5">20.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="proper.html">21. PropEr</a></span></dt><dt><span class="chapter"><a href="triq.html">22. Triq</a></span></dt><dt><span class="chapter"><a href="coverage.html">23. Code coverage</a></span></dt><dd><dl><dt><span class="section"><a href="coverage.html#_enabling_cover_when_running_tests">23.1. Enabling cover when running tests</a></span></dt><dt><span class="section"><a href="coverage.html#_adding_applications_to_the_cover_report">23.2. Adding applications to the cover report</a></span></dt><dt><span class="section"><a href="coverage.html#_removing_modules_from_the_cover_report">23.3. Removing modules from the cover report</a></span></dt><dt><span class="section"><a href="coverage.html#_configuring_paths">23.4. Configuring paths</a></span></dt><dt><span class="section"><a href="coverage.html#_merging_coverdata_files">23.5. Merging coverdata files</a></span></dt></dl></dd><dt><span class="chapter"><a href="ci.html">24. Continuous integration</a></span></dt><dd><dl><dt><span class="section"><a href="ci.html#_configuring_erlang_otp_versions_to_test">24.1. Configuring Erlang/OTP versions to test</a></span></dt><dt><span class="section"><a href="ci.html#_running_tests_across_all_configured_versions">24.2. Running tests across all configured versions</a></span></dt><dt><span class="section"><a href="ci.html#_extending_the_ci_targets">24.3. Extending the CI targets</a></span></dt></dl></dd><dt><span class="chapter"><a href="dialyzer.html">25. Dialyzer</a></span></dt><dd><dl><dt><span class="section"><a href="dialyzer.html#_how_it_works">25.1. How it works</a></span></dt><dt><span class="section"><a href="dialyzer.html#_configuration_8">25.2. Configuration</a></span></dt><dt><span class="section"><a href="dialyzer.html#_usage_6">25.3. Usage</a></span></dt><dt><span class="section"><a href="dialyzer.html#_dialyzing_beam_files">25.4. Dialyzing beam files</a></span></dt></dl></dd><dt><span class="chapter"><a href="concuerror.html">26. Concuerror</a></span></dt><dd><dl><dt><span class="section"><a href="concuerror.html#_configuration_9">26.1. Configuration</a></span></dt><dt><span class="section"><a href="concuerror.html#_writing_tests_3">26.2. Writing tests</a></span></dt><dt><span class="section"><a href="concuerror.html#_usage_7">26.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="xref.html">27. Xref</a></span></dt><dd><dl><dt><span class="section"><a href="xref.html#_usage_8">27.1. Usage</a></span></dt><dt><span class="section"><a href="xref.html#_queries">27.2. Queries</a></span></dt><dt><span class="section"><a href="xref.html#_analysis_scope">27.3. Analysis scope</a></span></dt><dt><span class="section"><a href="xref.html#_ignoring_warnings">27.4. Ignoring warnings</a></span></dt></dl></dd></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">28. External plugins</a></span></dt><dd><dl><dt><span class="section"><a href="plugins_usage.html#_loading_all_plugins_from_a_dependency">28.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">28.2. Loading one plugin from a dependency</a></span></dt><dt><span class="section"><a href="plugins_usage.html#_writing_external_plugins">28.3. Writing external plugins</a></span></dt><dt><span class="section"><a href="plugins_usage.html#_early_stage_plugins">28.4. Early-stage plugins</a></span></dt><dt><span class="section"><a href="plugins_usage.html#_loading_plugins_local_to_the_application">28.5. Loading plugins local to the application</a></span></dt></dl></dd><dt><span class="chapter"><a href="plugins_list.html">29. List of plugins</a></span></dt><dd><dl><dt><span class="section"><a href="plugins_list.html#_ci_erlang_mk">29.1. ci.erlang.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_efene_mk">29.2. efene.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_elixir_mk">29.3. elixir.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_elvis_mk">29.4. elvis.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_esh_mk">29.5. esh.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_geas">29.6. geas</a></span></dt><dt><span class="section"><a href="plugins_list.html#_hexer_mk">29.7. hexer.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_hexpm_mk">29.8. hexpm.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_jorel">29.9. jorel</a></span></dt><dt><span class="section"><a href="plugins_list.html#_lfe_mk">29.10. lfe.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_mix_mk">29.11. mix.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_reload_mk">29.12. reload.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_rust_mk">29.13. rust.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_version_mk">29.14. version.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">30. Why Erlang.mk</a></span></dt><dd><dl><dt><span class="section"><a href="why.html#_erlang_mk_is_fast">30.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">30.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">30.3. Erlang.mk is a text file</a></span></dt><dt><span class="section"><a href="why.html#_erlang_mk_can_manage_erlang_itself">30.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">30.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">30.6. Erlang.mk integrates nicely in Make and Automake projects</a></span></dt></dl></dd><dt><span class="chapter"><a href="history.html">31. Short history</a></span></dt><dd><dl><dt><span class="section"><a href="history.html#_before_erlang_mk">31.1. Before Erlang.mk</a></span></dt><dt><span class="section"><a href="history.html#_lifetime_of_the_project">31.2. Lifetime of the project</a></span></dt></dl></dd><dt><span class="chapter"><a href="contributing.html">32. Contributing</a></span></dt><dd><dl><dt><span class="section"><a href="contributing.html#_priorities">32.1. Priorities</a></span></dt><dt><span class="section"><a href="contributing.html#_bugs">32.2. Bugs</a></span></dt><dt><span class="section"><a href="contributing.html#_code">32.3. Code</a></span></dt><dt><span class="section"><a href="contributing.html#_packages">32.4. Packages</a></span></dt><dt><span class="section"><a href="contributing.html#_documentation">32.5. Documentation</a></span></dt><dt><span class="section"><a href="contributing.html#_feature_requests">32.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="id1337"></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#_querying_dependencies">7.5. Querying dependencies</a></span></dt><dt><span class="section"><a href="deps.html#_ignoring_unwanted_dependencies">7.6. Ignoring unwanted dependencies</a></span></dt><dt><span class="section"><a href="deps.html#_dependencies_directory">7.7. Dependencies directory</a></span></dt><dt><span class="section"><a href="deps.html#_many_applications_in_one_repository">7.8. 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.9. Repositories with no application at the root level</a></span></dt><dt><span class="section"><a href="deps.html#_autopatch">7.10. Autopatch</a></span></dt><dt><span class="section"><a href="deps.html#_dealing_with_duplicate_modules">7.11. Dealing with duplicate modules</a></span></dt><dt><span class="section"><a href="deps.html#_skipping_deps">7.12. 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="cross_compiling.html">13. Cross compiling</a></span></dt><dd><dl><dt><span class="section"><a href="cross_compiling.html#_compiling">13.1. Compiling</a></span></dt><dt><span class="section"><a href="cross_compiling.html#_building_the_release">13.2. Building the release</a></span></dt></dl></dd><dt><span class="chapter"><a href="compat.html">14. Compatibility with other build tools</a></span></dt><dd><dl><dt><span class="section"><a href="compat.html#_rebar_projects_as_erlang_mk_dependencies">14.1. Rebar projects as Erlang.mk dependencies</a></span></dt><dt><span class="section"><a href="compat.html#_erlang_mk_projects_as_rebar_dependencies">14.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">15. AsciiDoc documentation</a></span></dt><dd><dl><dt><span class="section"><a href="asciidoc.html#_requirements_2">15.1. Requirements</a></span></dt><dt><span class="section"><a href="asciidoc.html#_writing_asciidoc_documentation">15.2. Writing AsciiDoc documentation</a></span></dt><dt><span class="section"><a href="asciidoc.html#_configuration_3">15.3. Configuration</a></span></dt><dt><span class="section"><a href="asciidoc.html#_usage">15.4. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="edoc.html">16. EDoc comments</a></span></dt><dd><dl><dt><span class="section"><a href="edoc.html#_writing_edoc_comments">16.1. Writing EDoc comments</a></span></dt><dt><span class="section"><a href="edoc.html#_configuration_4">16.2. Configuration</a></span></dt><dt><span class="section"><a href="edoc.html#_usage_2">16.3. Usage</a></span></dt><dt><span class="section"><a href="edoc.html#_running_edoc_on_all_applications">16.4. Running EDoc on all applications</a></span></dt></dl></dd><dt><span class="chapter"><a href="sphinx.html">17. Sphinx documentation</a></span></dt><dd><dl><dt><span class="section"><a href="sphinx.html#_writing_sphinx_documentation">17.1. Writing Sphinx documentation</a></span></dt><dt><span class="section"><a href="sphinx.html#_basic_setup">17.2. Basic setup</a></span></dt><dt><span class="section"><a href="sphinx.html#_erlang_mk_configuration">17.3. Erlang.mk configuration</a></span></dt><dt><span class="section"><a href="sphinx.html#_generating_man_pages">17.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">18. Erlang shell</a></span></dt><dd><dl><dt><span class="section"><a href="shell.html#_configuration_5">18.1. Configuration</a></span></dt><dt><span class="section"><a href="shell.html#_usage_3">18.2. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="eunit.html">19. EUnit</a></span></dt><dd><dl><dt><span class="section"><a href="eunit.html#_writing_tests">19.1. Writing tests</a></span></dt><dt><span class="section"><a href="eunit.html#_configuration_6">19.2. Configuration</a></span></dt><dt><span class="section"><a href="eunit.html#_usage_4">19.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="ct.html">20. Common Test</a></span></dt><dd><dl><dt><span class="section"><a href="ct.html#_writing_tests_2">20.1. Writing tests</a></span></dt><dt><span class="section"><a href="ct.html#_configuration_7">20.2. Configuration</a></span></dt><dt><span class="section"><a href="ct.html#_usage_5">20.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="proper.html">21. PropEr</a></span></dt><dt><span class="chapter"><a href="triq.html">22. Triq</a></span></dt><dt><span class="chapter"><a href="coverage.html">23. Code coverage</a></span></dt><dd><dl><dt><span class="section"><a href="coverage.html#_enabling_cover_when_running_tests">23.1. Enabling cover when running tests</a></span></dt><dt><span class="section"><a href="coverage.html#_adding_applications_to_the_cover_report">23.2. Adding applications to the cover report</a></span></dt><dt><span class="section"><a href="coverage.html#_removing_modules_from_the_cover_report">23.3. Removing modules from the cover report</a></span></dt><dt><span class="section"><a href="coverage.html#_configuring_paths">23.4. Configuring paths</a></span></dt><dt><span class="section"><a href="coverage.html#_merging_coverdata_files">23.5. Merging coverdata files</a></span></dt></dl></dd><dt><span class="chapter"><a href="ci.html">24. Continuous integration</a></span></dt><dd><dl><dt><span class="section"><a href="ci.html#_configuring_erlang_otp_versions_to_test">24.1. Configuring Erlang/OTP versions to test</a></span></dt><dt><span class="section"><a href="ci.html#_running_tests_across_all_configured_versions">24.2. Running tests across all configured versions</a></span></dt><dt><span class="section"><a href="ci.html#_extending_the_ci_targets">24.3. Extending the CI targets</a></span></dt></dl></dd><dt><span class="chapter"><a href="dialyzer.html">25. Dialyzer</a></span></dt><dd><dl><dt><span class="section"><a href="dialyzer.html#_how_it_works">25.1. How it works</a></span></dt><dt><span class="section"><a href="dialyzer.html#_configuration_8">25.2. Configuration</a></span></dt><dt><span class="section"><a href="dialyzer.html#_usage_6">25.3. Usage</a></span></dt><dt><span class="section"><a href="dialyzer.html#_dialyzing_beam_files">25.4. Dialyzing beam files</a></span></dt></dl></dd><dt><span class="chapter"><a href="concuerror.html">26. Concuerror</a></span></dt><dd><dl><dt><span class="section"><a href="concuerror.html#_configuration_9">26.1. Configuration</a></span></dt><dt><span class="section"><a href="concuerror.html#_writing_tests_3">26.2. Writing tests</a></span></dt><dt><span class="section"><a href="concuerror.html#_usage_7">26.3. Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="xref.html">27. Xref</a></span></dt><dd><dl><dt><span class="section"><a href="xref.html#_usage_8">27.1. Usage</a></span></dt><dt><span class="section"><a href="xref.html#_queries">27.2. Queries</a></span></dt><dt><span class="section"><a href="xref.html#_analysis_scope">27.3. Analysis scope</a></span></dt><dt><span class="section"><a href="xref.html#_ignoring_warnings">27.4. Ignoring warnings</a></span></dt></dl></dd></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">28. External plugins</a></span></dt><dd><dl><dt><span class="section"><a href="plugins_usage.html#_loading_all_plugins_from_a_dependency">28.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">28.2. Loading one plugin from a dependency</a></span></dt><dt><span class="section"><a href="plugins_usage.html#_writing_external_plugins">28.3. Writing external plugins</a></span></dt><dt><span class="section"><a href="plugins_usage.html#_early_stage_plugins">28.4. Early-stage plugins</a></span></dt><dt><span class="section"><a href="plugins_usage.html#_loading_plugins_local_to_the_application">28.5. Loading plugins local to the application</a></span></dt><dt><span class="section"><a href="plugins_usage.html#_adding_templates_via_plugins">28.6. Adding templates via plugins</a></span></dt></dl></dd><dt><span class="chapter"><a href="plugins_list.html">29. List of plugins</a></span></dt><dd><dl><dt><span class="section"><a href="plugins_list.html#_ci_erlang_mk">29.1. ci.erlang.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_efene_mk">29.2. efene.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_elixir_mk">29.3. elixir.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_elvis_mk">29.4. elvis.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_esh_mk">29.5. esh.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_geas">29.6. geas</a></span></dt><dt><span class="section"><a href="plugins_list.html#_hexer_mk">29.7. hexer.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_hexpm_mk">29.8. hexpm.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_jorel">29.9. jorel</a></span></dt><dt><span class="section"><a href="plugins_list.html#_lfe_mk">29.10. lfe.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_mix_mk">29.11. mix.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_reload_mk">29.12. reload.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_rust_mk">29.13. rust.mk</a></span></dt><dt><span class="section"><a href="plugins_list.html#_version_mk">29.14. version.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">30. Why Erlang.mk</a></span></dt><dd><dl><dt><span class="section"><a href="why.html#_erlang_mk_is_fast">30.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">30.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">30.3. Erlang.mk is a text file</a></span></dt><dt><span class="section"><a href="why.html#_erlang_mk_can_manage_erlang_itself">30.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">30.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">30.6. Erlang.mk integrates nicely in Make and Automake projects</a></span></dt></dl></dd><dt><span class="chapter"><a href="history.html">31. Short history</a></span></dt><dd><dl><dt><span class="section"><a href="history.html#_before_erlang_mk">31.1. Before Erlang.mk</a></span></dt><dt><span class="section"><a href="history.html#_lifetime_of_the_project">31.2. Lifetime of the project</a></span></dt></dl></dd><dt><span class="chapter"><a href="contributing.html">32. Contributing</a></span></dt><dd><dl><dt><span class="section"><a href="contributing.html#_priorities">32.1. Priorities</a></span></dt><dt><span class="section"><a href="contributing.html#_bugs">32.2. Bugs</a></span></dt><dt><span class="section"><a href="contributing.html#_code">32.3. Code</a></span></dt><dt><span class="section"><a href="contributing.html#_packages">32.4. Packages</a></span></dt><dt><span class="section"><a href="contributing.html#_documentation">32.5. Documentation</a></span></dt><dt><span class="section"><a href="contributing.html#_feature_requests">32.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/plugins_usage.html b/guide/plugins_usage.html
index 1d7159f..c6207e8 100644
--- a/guide/plugins_usage.html
+++ b/guide/plugins_usage.html
@@ -70,7 +70,7 @@ in one go if they wish to do so.</p><p>Plugins can include some help text by ext
$(verbose) printf "%s\n" "" "Run benchmark: $(MAKE) perfs"</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_early_stage_plugins"></a>28.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.
+your applications, a regular plugin is loaded too late in the process.
You need to use "Early-stage plugins". They are declared using the
<code class="literal">DEP_EARLY_PLUGINS</code> variable instead. Plugins listed in this variable
are loaded near the beginning of Erlang.mk Otherwise, they work exactly
@@ -81,7 +81,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>28.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>28.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>
@@ -90,7 +90,21 @@ defaults to <span class="emphasis"><em>plugins.mk</em></span> or <span class="em
your application:</p><pre class="programlisting"># Loads ./early-plugins.mk
DEP_EARLY_PLUGINS = $(PROJECT)
# Loads ./plugins.mk
-DEP_PLUGINS = $(PROJECT)</pre></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="plugins.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="plugins_list.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>
+DEP_PLUGINS = $(PROJECT)</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_adding_templates_via_plugins"></a>28.6. Adding templates via plugins</h2></div></div></div><p>Plugins may add templates either from within their Makefile or from
+an external file. The recommended method is to use an external file;
+however do note it only works for Make 4 and above:</p><pre class="programlisting">THIS := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
+tpl_test_mk = $(file &lt; $(THIS)/templates/my_template.erl)</pre><p>With <span class="emphasis"><em>templates/my_template.erl</em></span> containing:</p><pre class="programlisting">-module(template_name).</pre><p>Erlang.mk will do string substitution replacing the following
+strings with their equivalent:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<code class="literal">template_name</code>: the name provided by the user
+</li><li class="listitem">
+<code class="literal">project_name</code>: either <code class="literal">$(PROJECT)</code> or the target application’s name
+</li><li class="listitem">
+<code class="literal">template_sp</code>: internal; propagates whitespace settings to Makefiles
+</li><li class="listitem">
+<code class="literal">rel_deps_dir</code>: internal; path to deps/* from within an apps/* Makefile
+</li><li class="listitem">
+<code class="literal">rel_root_dir</code>: internal; path to top-level directory from within an apps/* Makefile
+</li></ul></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="plugins.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="plugins_list.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>