Age | Commit message (Collapse) | Author |
|
[ci-skip]
|
|
No amount of re-reading was enough to find this, until after I
pushed. Of course.
|
|
|
|
|
|
|
|
Short section on Unix, long section on Windows/MSYS2! \o/
|
|
|
|
|
|
|
|
|
|
|
|
This is useful only for projects that are stable and rarely
need to rebuild it. Check the guide additions for more info.
|
|
|
|
|
|
|
|
This is a very large change of a central part of Erlang.mk.
I will admit that I am not quite confident on that one. If
you do have issues following this change, please open a
ticket and I will look at it immediately.
At this point, it works for me, but I wouldn't be surprised
to hear about a few minor issues.
This commit introduces a dependency file $(PROJECT).d which
contains Makefile rules between Erlang source files and
headers, behaviors and parse_transforms. This allows us
to rebuild only the files that are needed.
The $(PROJECT).d is generated automatically when missing,
and when any of the files change.
It is possible to hook before and after this generation,
by defining a $(PROJECT).d:: rule. This allows users to
generate Erlang files which are then compiled by Erlang.mk
automatically (and to track their dependencies, of course).
Here goes nothing...
|
|
Two reasons for doing this:
* The current solution for enforcing sequential operations makes
a lot of things slower. Either we do it properly or we don't.
* Most of Erlang.mk is sequential by nature. There is very little
to gain from Make's own parallel building. Something more
interesting would be to enable fetching of dependencies
concurrently by other means, and enable compilation of
Erlang files concurrently (requires patching OTP).
|
|
Plugins can automatically be fetched and included from
dependencies. All that is needed is to add either the
dependency name or the name + path of the plugin to the
DEP_PLUGINS variable.
Useful for allowing tools to easily add support for new
targets, adding templates or for putting the whole build
ecosystem in one common dependency.
|
|
|