== 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.

=== 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.

=== 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.

=== 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.
