aboutsummaryrefslogtreecommitdiffstats
path: root/doc/src/guide
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <[email protected]>2017-05-12 10:19:24 +0200
committerLoïc Hoguin <[email protected]>2017-05-15 16:53:11 +0200
commit724521b68c19f107437db9fa2ee8def6ff604e0a (patch)
treee6a95a40c155e548675ec0d495680a0690ccc9c3 /doc/src/guide
parent5fd792337b5627f3f4c9af4488591dbb291299d8 (diff)
downloaderlang.mk-724521b68c19f107437db9fa2ee8def6ff604e0a.tar.gz
erlang.mk-724521b68c19f107437db9fa2ee8def6ff604e0a.tar.bz2
erlang.mk-724521b68c19f107437db9fa2ee8def6ff604e0a.zip
Support plugins local to the application
If the application's Makefile specify either: DEP_PLUGINS = $(PROJECT) or e.g.: DEP_PLUGINS = $(PROJECT)/mk/dist.mk then load the plugin from the application instead of a dependency. This helps when you have an application with common Erlang modules and Erlang.mk plugins: your common application can load Erlang.mk plugins exactly like other applications depending on the common application.
Diffstat (limited to 'doc/src/guide')
-rw-r--r--doc/src/guide/external_plugins.asciidoc28
1 files changed, 28 insertions, 0 deletions
diff --git a/doc/src/guide/external_plugins.asciidoc b/doc/src/guide/external_plugins.asciidoc
index c398c59..68deb82 100644
--- a/doc/src/guide/external_plugins.asciidoc
+++ b/doc/src/guide/external_plugins.asciidoc
@@ -101,3 +101,31 @@ DEP_EARLY_PLUGINS = common_deps
DEPS += cowboy
TEST_DEPS = ct_helper
dep_ct_helper = git https://github.com/ninenines/ct_helper master
+
+=== Loading plugins local to the application
+
+If the Erlang.mk plugin lives in the same directory or repository as your
+application or library, then you can load it exactly like an external
+plugin: the dependency name is simply the name of your application or
+library.
+
+For example, the following Makefile loads a plugin in the 'mk'
+subdirectory:
+
+[source,make]
+DEP_PLUGINS = $(PROJECT)/mk/dist.mk
+
+This also works with early-stage plugins:
+
+[source,make]
+DEP_EARLY_PLUGINS = $(PROJECT)/mk/variables.mk
+
+Like external plugins, if you do not specify the path to the plugin, it
+defaults to 'plugins.mk' or 'early-plugins.mk', located at the root of
+your application:
+
+[source,make]
+# Loads ./early-plugins.mk
+DEP_EARLY_PLUGINS = $(PROJECT)
+# Loads ./plugins.mk
+DEP_PLUGINS = $(PROJECT)