From 1e209c658e768911a27fbed8f996e99e8b68f320 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Tue, 21 Apr 2020 13:39:21 +0200 Subject: Update user guide --- guide/getting_started.html | 9 ++++++++- guide/index.html | 2 +- guide/plugins_list.html | 15 ++++++++------- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/guide/getting_started.html b/guide/getting_started.html index d779c71..151a31a 100644 --- a/guide/getting_started.html +++ b/guide/getting_started.html @@ -41,7 +41,14 @@ to your remote repositories. For example, for GitHub users, put all your projects in a common folder with the same name as your username. For example $HOME/ninenines/cowboy for the Cowboy project.

2.2. Downloading Erlang.mk

At the time of writing, Erlang.mk is unlikely to be present -in your Erlang distribution, or even in your OS packages.

The next step is therefore to download it:

$ wget https://erlang.mk/erlang.mk

Or:

$ curl -O https://erlang.mk/erlang.mk

Alternatively, just click on this link.

Make sure you put the file inside the folder we created previously.

2.3. Getting started with OTP applications

An OTP application is an Erlang application that has a supervision +in your Erlang distribution, or even in your OS packages.

The next step is therefore to download it:

$ wget https://erlang.mk/erlang.mk

Or:

$ curl -O https://erlang.mk/erlang.mk

Alternatively, just click on this link.

Make sure you put the file inside the folder we created previously.

2.2.1. Bash completion

If your preferred shell is Bash, a completion script is available. +In order to install it, use the following commands:

$ mkdir ~/.bash_completion.d/
+$ cd ~/.bash_completion.d/
+$ wget -O erlang_mk https://raw.githubusercontent.com/ninenines/erlang.mk/master/etc/bash_completion

Then edit the file ~/.bash_completion and add:

for bcfile in ~/.bash_completion.d/* ; do
+    . $bcfile
+done

Note that Make’s legacy Bash completion will be overwritten. +If you need legacy completion for other C projects, consider sourcing +Erlang.mk’s Bash completion only in your Erlang project directory instead.

2.3. Getting started with OTP applications

An OTP application is an Erlang application that has a supervision tree. In other words, it will always have processes running.

This kind of project can be automatically generated by Erlang.mk. All you need to do is use the bootstrap target:

$ make -f erlang.mk bootstrap

Something similar to the following snippet will then appear on your screen:

git clone https://github.com/ninenines/erlang.mk .erlang.mk.build
diff --git a/guide/index.html b/guide/index.html
index 5e67520..d545587 100644
--- a/guide/index.html
+++ b/guide/index.html
@@ -33,7 +33,7 @@ div.navfooter{margin-bottom:1em}
 
 
-

Erlang.mk User Guide

Loïc Hoguin


Table of Contents

1. Installation
1.1. On Unix
1.2. On Windows
2. Getting started
2.1. Creating a folder for your project
2.2. Downloading Erlang.mk
2.3. Getting started with OTP applications
2.4. Getting started with OTP libraries
2.5. Getting started with OTP releases
2.6. Getting started from scratch
2.7. Using spaces instead of tabs
2.8. Using templates
2.9. Hiding Erlang.mk from git
2.10. Getting help
3. Overview
3.1. Building your project
3.2. Exploring the package index
3.3. Generating documentation
3.4. Running tests
3.5. Need more?
4. Updating Erlang.mk
4.1. Initial bootstrap
4.2. Updating
4.3. Customizing the build
5. Limitations
5.1. Erlang must be available
5.2. Spaces in path
5.3. Dependency tracking and modification times
I. Code
6. Building
6.1. How to build
6.2. What to build
6.3. Application resource file
6.4. Automatic application resource file values
6.5. File formats
6.6. Compilation options
6.7. Cold and hot builds
6.8. Dependency tracking
6.9. Generating Erlang source
6.10. Cleaning
7. Packages and dependencies
7.1. Searching packages
7.2. Adding dependencies to your project
7.3. How deps are fetched and built
7.4. Fetching and listing dependencies only
7.5. Querying dependencies
7.6. Ignoring unwanted dependencies
7.7. Dependencies directory
7.8. Many applications in one repository
7.9. Repositories with no application at the root level
7.10. Autopatch
7.11. Dealing with duplicate modules
7.12. Skipping deps
8. NIFs and port drivers
8.1. C source code location and Erlang environment
8.2. Using a custom Makefile
8.3. Using Erlang.mk directly
8.4. Propagating compile and linker flags to sub-Makefiles
9. Releases
9.1. Setup
9.2. Configuration
9.3. Generating the release
9.4. Running the release
9.5. Upgrading a release
9.6. Getting Relx semver value
10. Self-extracting releases
10.1. Generating the self-extracting archive
10.2. Running the release
11. Escripts
11.1. Requirements
11.2. Generating an escript
11.3. Configuration
11.4. Extra files
11.5. Optimizing for size
12. OTP version management
12.1. Erlang versions
12.2. OTP version pinning
12.3. Continuous integration
12.4. Configuring Kerl
13. Cross compiling
13.1. Compiling
13.2. Building the release
14. Compatibility with other build tools
14.1. Rebar projects as Erlang.mk dependencies
14.2. Erlang.mk projects as Rebar dependencies
II. Documentation
15. AsciiDoc documentation
15.1. Requirements
15.2. Writing AsciiDoc documentation
15.3. Configuration
15.4. Usage
16. EDoc comments
16.1. Writing EDoc comments
16.2. Configuration
16.3. Usage
16.4. Running EDoc on all applications
17. Sphinx documentation
17.1. Writing Sphinx documentation
17.2. Basic setup
17.3. Erlang.mk configuration
17.4. Generating man pages
III. Tests
18. Erlang shell
18.1. Configuration
18.2. Usage
19. EUnit
19.1. Writing tests
19.2. Configuration
19.3. Usage
20. Common Test
20.1. Writing tests
20.2. Configuration
20.3. Usage
21. PropEr
22. Triq
23. Code coverage
23.1. Enabling cover when running tests
23.2. Adding applications to the cover report
23.3. Configuring paths
23.4. Merging coverdata files
24. Continuous integration
24.1. Configuring Erlang/OTP versions to test
24.2. Running tests across all configured versions
24.3. Extending the CI targets
25. Dialyzer
25.1. How it works
25.2. Configuration
25.3. Usage
25.4. Dialyzing beam files
26. Xref
IV. Third-party plugins
27. External plugins
27.1. Loading all plugins from a dependency
27.2. Loading one plugin from a dependency
27.3. Writing external plugins
27.4. Early-stage plugins
27.5. Loading plugins local to the application
28. List of plugins
28.1. ci.erlang.mk
28.2. efene.mk
28.3. elixir.mk
28.4. elvis.mk
28.5. geas
28.6. hexer.mk
28.7. hexpm.mk
28.8. jorel
28.9. lfe.mk
28.10. mix.mk
28.11. reload.mk
28.12. rust.mk
28.13. version.mk
V. About Erlang.mk
29. Why Erlang.mk
29.1. Erlang.mk is fast
29.2. Erlang.mk gives you the full power of Unix
29.3. Erlang.mk is a text file
29.4. Erlang.mk can manage Erlang itself
29.5. Erlang.mk can do more than Erlang
29.6. Erlang.mk integrates nicely in Make and Automake projects
30. Short history
30.1. Before Erlang.mk
30.2. Lifetime of the project
31. Contributing
31.1. Priorities
31.2. Bugs
31.3. Code
31.4. Packages
31.5. Documentation
31.6. Feature requests
+

Erlang.mk User Guide

Loïc Hoguin


Table of Contents

1. Installation
1.1. On Unix
1.2. On Windows
2. Getting started
2.1. Creating a folder for your project
2.2. Downloading Erlang.mk
2.3. Getting started with OTP applications
2.4. Getting started with OTP libraries
2.5. Getting started with OTP releases
2.6. Getting started from scratch
2.7. Using spaces instead of tabs
2.8. Using templates
2.9. Hiding Erlang.mk from git
2.10. Getting help
3. Overview
3.1. Building your project
3.2. Exploring the package index
3.3. Generating documentation
3.4. Running tests
3.5. Need more?
4. Updating Erlang.mk
4.1. Initial bootstrap
4.2. Updating
4.3. Customizing the build
5. Limitations
5.1. Erlang must be available
5.2. Spaces in path
5.3. Dependency tracking and modification times
I. Code
6. Building
6.1. How to build
6.2. What to build
6.3. Application resource file
6.4. Automatic application resource file values
6.5. File formats
6.6. Compilation options
6.7. Cold and hot builds
6.8. Dependency tracking
6.9. Generating Erlang source
6.10. Cleaning
7. Packages and dependencies
7.1. Searching packages
7.2. Adding dependencies to your project
7.3. How deps are fetched and built
7.4. Fetching and listing dependencies only
7.5. Querying dependencies
7.6. Ignoring unwanted dependencies
7.7. Dependencies directory
7.8. Many applications in one repository
7.9. Repositories with no application at the root level
7.10. Autopatch
7.11. Dealing with duplicate modules
7.12. Skipping deps
8. NIFs and port drivers
8.1. C source code location and Erlang environment
8.2. Using a custom Makefile
8.3. Using Erlang.mk directly
8.4. Propagating compile and linker flags to sub-Makefiles
9. Releases
9.1. Setup
9.2. Configuration
9.3. Generating the release
9.4. Running the release
9.5. Upgrading a release
9.6. Getting Relx semver value
10. Self-extracting releases
10.1. Generating the self-extracting archive
10.2. Running the release
11. Escripts
11.1. Requirements
11.2. Generating an escript
11.3. Configuration
11.4. Extra files
11.5. Optimizing for size
12. OTP version management
12.1. Erlang versions
12.2. OTP version pinning
12.3. Continuous integration
12.4. Configuring Kerl
13. Cross compiling
13.1. Compiling
13.2. Building the release
14. Compatibility with other build tools
14.1. Rebar projects as Erlang.mk dependencies
14.2. Erlang.mk projects as Rebar dependencies
II. Documentation
15. AsciiDoc documentation
15.1. Requirements
15.2. Writing AsciiDoc documentation
15.3. Configuration
15.4. Usage
16. EDoc comments
16.1. Writing EDoc comments
16.2. Configuration
16.3. Usage
16.4. Running EDoc on all applications
17. Sphinx documentation
17.1. Writing Sphinx documentation
17.2. Basic setup
17.3. Erlang.mk configuration
17.4. Generating man pages
III. Tests
18. Erlang shell
18.1. Configuration
18.2. Usage
19. EUnit
19.1. Writing tests
19.2. Configuration
19.3. Usage
20. Common Test
20.1. Writing tests
20.2. Configuration
20.3. Usage
21. PropEr
22. Triq
23. Code coverage
23.1. Enabling cover when running tests
23.2. Adding applications to the cover report
23.3. Configuring paths
23.4. Merging coverdata files
24. Continuous integration
24.1. Configuring Erlang/OTP versions to test
24.2. Running tests across all configured versions
24.3. Extending the CI targets
25. Dialyzer
25.1. How it works
25.2. Configuration
25.3. Usage
25.4. Dialyzing beam files
26. Xref
IV. Third-party plugins
27. External plugins
27.1. Loading all plugins from a dependency
27.2. Loading one plugin from a dependency
27.3. Writing external plugins
27.4. Early-stage plugins
27.5. Loading plugins local to the application
28. List of plugins
28.1. ci.erlang.mk
28.2. efene.mk
28.3. elixir.mk
28.4. elvis.mk
28.5. esh.mk
28.6. geas
28.7. hexer.mk
28.8. hexpm.mk
28.9. jorel
28.10. lfe.mk
28.11. mix.mk
28.12. reload.mk
28.13. rust.mk
28.14. version.mk
V. About Erlang.mk
29. Why Erlang.mk
29.1. Erlang.mk is fast
29.2. Erlang.mk gives you the full power of Unix
29.3. Erlang.mk is a text file
29.4. Erlang.mk can manage Erlang itself
29.5. Erlang.mk can do more than Erlang
29.6. Erlang.mk integrates nicely in Make and Automake projects
30. Short history
30.1. Before Erlang.mk
30.2. Lifetime of the project
31. Contributing
31.1. Priorities
31.2. Bugs
31.3. Code
31.4. Packages
31.5. Documentation
31.6. Feature requests
diff --git a/guide/plugins_list.html b/guide/plugins_list.html index b7cacb6..ff66fc5 100644 --- a/guide/plugins_list.html +++ b/guide/plugins_list.html @@ -40,16 +40,17 @@ most recent patch(es).

28.3. elixir.mk

An Elixir plugin for Erlang.mk. Elixir is an alternative language for the BEAM.

28.4. elvis.mk

An Elvis plugin for Erlang.mk. -Elvis is an Erlang style reviewer.

28.5. geas

Geas gives aggregated +Elvis is an Erlang style reviewer.

28.5. esh.mk

An Esh template plugin for Erlang.mk. +Esh is a simple template engine using shell.

28.6. geas

Geas gives aggregated information on a project and its dependencies, and is available -as an Erlang.mk plugin.

28.6. hexer.mk

An Hex plugin for Erlang.mk -using the hexer tool.

28.7. hexpm.mk

Another Hex plugin for -Erlang.mk, with support for Hex dependency operators.

28.8. jorel

Jorel is Just anOther RELease -assembler for Erlang/OTP, and is available as an Erlang.mk plugin.

28.9. lfe.mk

An LFE plugin for Erlang.mk. +as an Erlang.mk plugin.

28.7. hexer.mk

An Hex plugin for Erlang.mk +using the hexer tool.

28.8. hexpm.mk

Another Hex plugin for +Erlang.mk, with support for Hex dependency operators.

28.9. jorel

Jorel is Just anOther RELease +assembler for Erlang/OTP, and is available as an Erlang.mk plugin.

28.10. lfe.mk

An LFE plugin for Erlang.mk. LFE, or Lisp Flavoured Erlang, is an alternative -language for the BEAM.

28.10. mix.mk

A Mix plugin for Erlang.mk, +language for the BEAM.

28.11. mix.mk

A Mix plugin for Erlang.mk, to generate a compatible configuration file for -Mix.

28.11. reload.mk

A live reload plugin for Erlang.mk.

28.12. rust.mk

A plugin to build Rust crates and install binaries into priv/.

28.13. version.mk

A plugin to apply a semantic version automatically to Erlang.mk projects.

+Mix.

28.12. reload.mk

A live reload plugin for Erlang.mk.

28.13. rust.mk

A plugin to build Rust crates and install binaries into priv/.

28.14. version.mk

A plugin to apply a semantic version automatically to Erlang.mk projects.

-- cgit v1.2.3