Chapter 5. Limitations

No software is perfect.

It’s very important, when evaluating and when using a tool, to understand its limitations, so as to avoid making mistakes and wasting valuable time.

This chapter lists all known limitations of Erlang.mk.

5.1. Erlang must be available

Currently Erlang.mk requires you to install Erlang beforehand. Installing Erlang is not always easy, particularly if you need a specific version of Erlang for a specific project.

In addition, the Erlang being used must be in your $PATH before you use Erlang.mk.

In the future we envision, Erlang.mk could manage the Erlang version you need to use a project. Erlang.mk already does this for running tests when using make ci, so doing this during development is just a step away.

5.2. Spaces in path

Erlang.mk will currently not work properly if the path to the project contains spaces. To check if that is the case, use the command pwd.

This issue is due to how Makefiles work. There might be ways to solve it, we have not given up on it, but it’s very low priority considering how simple the workaround is.

5.3. Dependency tracking and modification times

Erlang source files that depend on other files will have their modification time updated when they need to be recompiled due to a dependency having changed. This could cause some editors to think the file changed when it didn’t.

Erlang.mk must use this method in order to be able to compile files in one erlc invocation. The benefits greatly outweigh the issue in this case and so there are currently no plans to fix this behavior.