diff options
author | Loïc Hoguin <[email protected]> | 2018-12-11 15:05:14 +0100 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2018-12-11 15:05:14 +0100 |
commit | b4c7ad9112974725655e39dc7d2a5591da3a7e8e (patch) | |
tree | 9db93191d5cc4462abea40a691172cbf376d3820 /docs/en/erlang.mk/1/guide/deps.asciidoc | |
parent | d3abb447a118aecf23afddbec9b83a61ae8d1670 (diff) | |
download | ninenines.eu-b4c7ad9112974725655e39dc7d2a5591da3a7e8e.tar.gz ninenines.eu-b4c7ad9112974725655e39dc7d2a5591da3a7e8e.tar.bz2 ninenines.eu-b4c7ad9112974725655e39dc7d2a5591da3a7e8e.zip |
Remove bullet from the website
Diffstat (limited to 'docs/en/erlang.mk/1/guide/deps.asciidoc')
-rw-r--r-- | docs/en/erlang.mk/1/guide/deps.asciidoc | 59 |
1 files changed, 54 insertions, 5 deletions
diff --git a/docs/en/erlang.mk/1/guide/deps.asciidoc b/docs/en/erlang.mk/1/guide/deps.asciidoc index 3ba7a398..913fa245 100644 --- a/docs/en/erlang.mk/1/guide/deps.asciidoc +++ b/docs/en/erlang.mk/1/guide/deps.asciidoc @@ -115,6 +115,14 @@ SHELL_DEPS = tddreloader All these will be documented in more details in their respective chapters. +Note that these additional types of dependencies will only +be fetched after normal dependencies by default. You can +force a dependency to be downloaded first by extending the +target `deps::` before including 'erlang.mk', for example: + +[source,make] +deps:: $(CURDIR)/deps/triq + ==== Modifying the dependency source or version By default, Erlang.mk will look into its package index to @@ -288,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, @@ -476,11 +502,10 @@ performed: * Run autopatch on the project Autopatch first checks if there is any project-specific patch -enabled. There are currently two: `RABBITMQ_CLIENT_PATCH` for -the `amqp_client` dependency, and `RABBITMQ_SERVER_PATCH` for -the `rabbit` dependency. These are needed only for RabbitMQ -versions before 3.6.0 (assuming you are using upstream RabbitMQ, -and not a fork). +enabled. There are currently three: `RABBITMQ_CLIENT_PATCH` for +the `amqp_client` dependency (before 3.6.0), `RABBITMQ_SERVER_PATCH` +for the `rabbit` dependency (before 3.6.0) and `ELIXIR_PATCH` +for the `elixir` dependency. Otherwise, autopatch performs different operations depending on the kind of project it finds the dependency to be. @@ -503,6 +528,30 @@ empty Makefile generated, for compatibility purposes. * Other projects with no Makefile are left untouched. +You can add additional commands to be run immediately before +or after autopatch is done by extending the target +`autopatch-$(dep)::`, for example this would remove +a module: + +[source,make] +---- +autopatch-ranch:: + rm -f $(DEPS_DIR)/ranch/src/ranch_proxy_header.erl +---- + +A common use case for this feature is to apply a PATCH +file on the dependency immediately after fetching it. +It can also be used to add compiler options, for example: + +[source,make] +---- +autopatch-couchbeam:: + printf "\nERLC_OPTS += -DWITH_JIFFY\n" >> $(DEPS_DIR)/couchbeam/Makefile +---- + +The commands will run before autopatch when the target is +defined before including 'erlang.mk', and after otherwise. + You can disable the replacing of the 'erlang.mk' file by defining the `NO_AUTOPATCH_ERLANG_MK` variable: |