erlang.mk is a free, open source build & deployment project written in Makefile and released under ISC. It has 587 GitHub stars, 238 forks and 41 open issues, and was last pushed 11 days ago. On this registry it ranks #78 of 84 tracked projects in Build & Deployment, with 5 head-to-head comparisons available.

What is erlang.mk?

erlang.mk is a Makefile-based build tool for Erlang projects, intended for Erlang developers and teams who want dependency fetching, compilation, and release work driven by a single include erlang.mk line rather than a separate build system.

What it is

Erlang.mk is a build tool for Erlang that ships as a Makefile and is pulled directly into a project's own Makefile. It lives in the Erlang/OTP ecosystem and is catalogued here under Developer Tools / Build & Deployment. The project is written in Makefile, licensed under the ISC licence, and its repository carries 587 stars, 237 forks, and 41 open issues. Its topics — build-system, build-tool, erlang, makefile, and package-manager — describe the scope. The website at erlang.mk and its user guide are the two entry points the README points to.

The concrete problem it solves is the hand-written build script. An Erlang project still needs a way to declare the OTP project name, fetch dependencies, and drive compilation, and without a shared convention that logic becomes bespoke Makefile rules every maintainer writes again. Erlang.mk supplies those rules. A complete project definition shrinks to a project name, a dependency list, a pinned dependency revision such as dep_cowboy_commit = 2.8.0, and the include line.

Key capabilities

  • Integration is a single line: include erlang.mk at the end of the project Makefile, with no separate build daemon or configuration file.
  • The project name is declared with the PROJECT variable, which tells the tool what artifact it is building.
  • Dependencies are listed in the DEPS variable, and each one can be pinned to an exact revision with a dep__commit variable, as in dep_cowboy_commit = 2.8.0.
  • It acts as a package manager as well as a build system, which is one of its five repository topics.
  • Builds run through make, so the tool reuses standard Make invocations and existing Makefile knowledge instead of introducing a new command set.
  • It is tested and supported on Linux, FreeBSD, OSX, and Windows.
  • Documentation covers a full user guide on the erlang.mk site plus a getting-started page at erlang.mk/guide/getting_started.html, with a Discord server for help.

Who uses it and how

  • Erlang teams that want one Makefile as the single build entry point, avoiding a second build tool in the repository.
  • Projects that need a dependency held at a known revision, using a dep__commit variable to fix what DEPS pulls in.
  • Developers working across platforms, since the tool is tested and supported on Linux, FreeBSD, OSX, and Windows.
  • New contributors onboarding from the getting-started guide, with the Discord server as the support channel.
  • Maintainers standardising several Erlang repositories on the same build conventions by reusing one include line.

Getting started

Add the line include erlang.mk to the project Makefile alongside PROJECT and DEPS declarations, then follow the getting-started guide at erlang.mk/guide/getting_started.html.

How it compares

The facts supplied for this page name no comparable tools and no paid products that erlang.mk replaces. On the evidence available it stands alone in this registry as the Makefile-based build tool for Erlang.

When to use it — and when not to

Choose erlang.mk when the team is already comfortable with Make and wants build and dependency handling without operating a database, object store, or mail service, since the tool is a file included in the repository. Avoid it if the project wants a build interface that is not Make, because Makefile semantics are the entire design. The supplied repository facts give no release history and the README excerpt is sparse, so read the user guide and review the 41 open issues before adopting it.

project readme (upstream, from github) — read inline

= Erlang.mk

A build tool for Erlang that just works.

http://erlang.mk/ - http://erlang.mk/guide/[User guide]

Embrace the power and simplicity of Makefiles.

[source,make] PROJECT = webchat DEPS = cowboy dep_cowboy_commit = 2.8.0 include erlang.mk

http://erlang.mk/guide/getting_started.html[Get started]

Tested and supported on http://erlang.mk/guide/installation.html#_on_unix[Linux, FreeBSD, OSX] and http://erlang.mk/guide/installation.html#_on_windows[Windows].

Get help! https://discord.gg/x25nNq2fFE[Discord server].

Frequently asked questions

Is erlang.mk free to use?

erlang.mk is open source under the ISC licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does erlang.mk do?

A build tool for Erlang that just works.

What is erlang.mk written in?

erlang.mk is primarily written in Makefile. Its source is publicly available at https://github.com/ninenines/erlang.mk, and it has 587 GitHub stars.