From d50f8c3695dce3ba7622370413034997c9a546f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 14 Mar 2018 16:40:54 +0100 Subject: Update user guide --- guide/index.html | 2 +- guide/installation.html | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/guide/index.html b/guide/index.html index 9650d74..4550a23 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. Ignoring unwanted dependencies
7.6. Dependencies directory
7.7. Many applications in one repository
7.8. Repositories with no application at the root level
7.9. Autopatch
7.10. 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. Compatibility with other build tools
13.1. Rebar projects as Erlang.mk dependencies
13.2. Erlang.mk projects as Rebar dependencies
II. Documentation
14. AsciiDoc documentation
14.1. Requirements
14.2. Writing AsciiDoc documentation
14.3. Configuration
14.4. Usage
15. EDoc comments
15.1. Writing EDoc comments
15.2. Configuration
15.3. Usage
16. Sphinx documentation
16.1. Writing Sphinx documentation
16.2. Basic setup
16.3. Erlang.mk configuration
16.4. Generating man pages
III. Tests
17. Erlang shell
17.1. Configuration
17.2. Usage
18. EUnit
18.1. Writing tests
18.2. Configuration
18.3. Usage
19. Common Test
19.1. Writing tests
19.2. Configuration
19.3. Usage
20. Code coverage
21. Continuous integration
21.1. Configuring Erlang/OTP versions to test
21.2. Running tests across all configured versions
21.3. Extending the CI targets
22. Dialyzer
22.1. How it works
22.2. Configuration
22.3. Usage
23. Xref
IV. Third-party plugins
24. External plugins
24.1. Loading all plugins from a dependency
24.2. Loading one plugin from a dependency
24.3. Writing external plugins
24.4. Early-stage plugins
24.5. Loading plugins local to the application
25. List of plugins
25.1. efene.mk
25.2. elixir.mk
25.3. elvis.mk
25.4. geas
25.5. hexer.mk
25.6. hexpm.mk
25.7. jorel
25.8. lfe.mk
25.9. mix.mk
25.10. reload.mk
25.11. rust.mk
V. About Erlang.mk
26. Why Erlang.mk
26.1. Erlang.mk is fast
26.2. Erlang.mk gives you the full power of Unix
26.3. Erlang.mk is a text file
26.4. Erlang.mk can manage Erlang itself
26.5. Erlang.mk can do more than Erlang
26.6. Erlang.mk integrates nicely in Make and Automake projects
27. Short history
27.1. Before Erlang.mk
27.2. Lifetime of the project
28. Contributing
28.1. Priorities
28.2. Bugs
28.3. Code
28.4. Packages
28.5. Documentation
28.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. Ignoring unwanted dependencies
7.6. Dependencies directory
7.7. Many applications in one repository
7.8. Repositories with no application at the root level
7.9. Autopatch
7.10. 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. Compatibility with other build tools
13.1. Rebar projects as Erlang.mk dependencies
13.2. Erlang.mk projects as Rebar dependencies
II. Documentation
14. AsciiDoc documentation
14.1. Requirements
14.2. Writing AsciiDoc documentation
14.3. Configuration
14.4. Usage
15. EDoc comments
15.1. Writing EDoc comments
15.2. Configuration
15.3. Usage
16. Sphinx documentation
16.1. Writing Sphinx documentation
16.2. Basic setup
16.3. Erlang.mk configuration
16.4. Generating man pages
III. Tests
17. Erlang shell
17.1. Configuration
17.2. Usage
18. EUnit
18.1. Writing tests
18.2. Configuration
18.3. Usage
19. Common Test
19.1. Writing tests
19.2. Configuration
19.3. Usage
20. Code coverage
21. Continuous integration
21.1. Configuring Erlang/OTP versions to test
21.2. Running tests across all configured versions
21.3. Extending the CI targets
22. Dialyzer
22.1. How it works
22.2. Configuration
22.3. Usage
23. Xref
IV. Third-party plugins
24. External plugins
24.1. Loading all plugins from a dependency
24.2. Loading one plugin from a dependency
24.3. Writing external plugins
24.4. Early-stage plugins
24.5. Loading plugins local to the application
25. List of plugins
25.1. efene.mk
25.2. elixir.mk
25.3. elvis.mk
25.4. geas
25.5. hexer.mk
25.6. hexpm.mk
25.7. jorel
25.8. lfe.mk
25.9. mix.mk
25.10. reload.mk
25.11. rust.mk
V. About Erlang.mk
26. Why Erlang.mk
26.1. Erlang.mk is fast
26.2. Erlang.mk gives you the full power of Unix
26.3. Erlang.mk is a text file
26.4. Erlang.mk can manage Erlang itself
26.5. Erlang.mk can do more than Erlang
26.6. Erlang.mk integrates nicely in Make and Automake projects
27. Short history
27.1. Before Erlang.mk
27.2. Lifetime of the project
28. Contributing
28.1. Priorities
28.2. Bugs
28.3. Code
28.4. Packages
28.5. Documentation
28.6. Feature requests
diff --git a/guide/installation.html b/guide/installation.html index 283c3bf..e8c0f0f 100644 --- a/guide/installation.html +++ b/guide/installation.html @@ -40,7 +40,9 @@ GNU Make 4.1 or later.

Git and Erlang/OTP must also be installed.

So installed, in order to compile Erlang/OTP. Erlang/OTP may have further requirements depending on your needs.

Some packages may require additional libraries.

1.1.1. Linux

The commands to install packages vary between distributions:

Arch Linux. 

$ pacman -S erlang git make

-

1.1.2. FreeBSD

FreeBSD comes with binary and source packages:

Install binary packages.  +

Alpine Linux and other distributions based on BusyBox come +with an incompatible awk program. Installing the GNU Awk +(gawk on Alpine) solves this issue.

1.1.2. FreeBSD

FreeBSD comes with binary and source packages:

Install binary packages. 

$ pkg install erlang git gmake

On FreeBSD the make command is BSD Make. Use gmake instead.

1.1.3. OS X and macOS

While Apple distributes their own GNU Make, their version is very old and plagued with numerous bugs. It is recommended -- cgit v1.2.3