From 983f82bdfcb3e78f04468fcfd02d6a6ee5869b13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Mon, 3 Dec 2018 19:22:12 +0100 Subject: Don't rebuild dependencies by default Unless it's a symbolic link, it's built directly, FULL=1 is set or the file ebin/dep_built in the dependency is removed. See the documentation changes for more details. This provides immense build speed gains, for example on a RabbitMQ project it went from 10s to 1s for the 2nd+ builds. --- doc/src/guide/deps.asciidoc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'doc/src/guide') diff --git a/doc/src/guide/deps.asciidoc b/doc/src/guide/deps.asciidoc index 9e78826..9939e82 100644 --- a/doc/src/guide/deps.asciidoc +++ b/doc/src/guide/deps.asciidoc @@ -296,6 +296,24 @@ different version of D, it will always be A's version that wins, because we fetch all dependencies of A before fetching those from B or C. +Once a dependency is built, it will not be built again by +default. Typically dependencies do not need to be recompiled +and this speeds up building immensely. There are a few ways +to force recompiling a dependency however: + +* The dependency directory is a symbolic link; the dependency + will always be recompiled. + +* The dependency is built directly, for example with a command + like `make -C deps/cowlib`, or `make` in the dependency's + directory. + +* The variable `FULL` is set, for example `make FULL=1`. This + will force building of all dependencies. This can be added + to your Makefile before including 'erlang.mk'. + +* The file `ebin/dep_built` in the dependency is removed. + === Fetching and listing dependencies only You can fetch all dependencies recursively without building anything, -- cgit v1.2.3