aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2015-11-18 16:24:36 +0100
committerLoïc Hoguin <[email protected]>2015-11-18 17:25:56 +0100
commitd514facbb41c1b76d76ffe435ccd5174d8c749c2 (patch)
tree66db51d1d878e11aa2ea37c3ec93aa7eaf8430c0
parent5ebdaa80c8b6f0e2c0431a1000b50fee87a62fb4 (diff)
downloaderlang.mk-d514facbb41c1b76d76ffe435ccd5174d8c749c2.tar.gz
erlang.mk-d514facbb41c1b76d76ffe435ccd5174d8c749c2.tar.bz2
erlang.mk-d514facbb41c1b76d76ffe435ccd5174d8c749c2.zip
Fix target dependencies and enable parallel again2.0.0-pre.2
We can now use 'make -j 32' again. All tests pass. There might be some issues left with the areas that are not fully tested yet (some plugins). A few changes in behavior: * 'make app' will also do 'make deps' unless SKIP_DEPS is set. You can use 'make app-build' instead to just build the application. * 'make rel' will also do 'make app' (and therefore deps). There are no alternative target to keep the old behavior at this time.
-rw-r--r--build.config2
-rw-r--r--core/core.mk2
-rw-r--r--core/erlc.mk4
-rw-r--r--doc/src/guide/app.asciidoc28
-rw-r--r--plugins/relx.mk4
5 files changed, 21 insertions, 19 deletions
diff --git a/build.config b/build.config
index 674035e..fed0626 100644
--- a/build.config
+++ b/build.config
@@ -10,6 +10,7 @@ core/index
core/deps
# Plugins that must run before Erlang code gets compiled.
+plugins/erlydtl
plugins/protobuffs
# Core modules, continued.
@@ -28,7 +29,6 @@ plugins/ct
plugins/dialyzer
plugins/edoc
plugins/elvis
-plugins/erlydtl
plugins/escript
plugins/eunit
plugins/relx
diff --git a/core/core.mk b/core/core.mk
index 6e15eeb..52a9472 100644
--- a/core/core.mk
+++ b/core/core.mk
@@ -76,8 +76,6 @@ endif
# Core targets.
-.NOTPARALLEL:
-
all:: deps app rel
# Noop to avoid a Make warning when there's nothing to do.
diff --git a/core/erlc.mk b/core/erlc.mk
index 39ad574..42d0e32 100644
--- a/core/erlc.mk
+++ b/core/erlc.mk
@@ -45,10 +45,10 @@ ifneq ($(wildcard src/),)
# Targets.
ifeq ($(wildcard ebin/test),)
-app:: $(PROJECT).d
+app:: deps $(PROJECT).d
$(verbose) $(MAKE) --no-print-directory app-build
else
-app:: clean $(PROJECT).d
+app:: clean deps $(PROJECT).d
$(verbose) $(MAKE) --no-print-directory app-build
endif
diff --git a/doc/src/guide/app.asciidoc b/doc/src/guide/app.asciidoc
index 1320577..b2854de 100644
--- a/doc/src/guide/app.asciidoc
+++ b/doc/src/guide/app.asciidoc
@@ -46,13 +46,18 @@ up generating releases.
==== Application
-You can build your application specifically, without
-looking at handling dependencies or generating a release,
-by running the following command:
+You can build your application and dependencies without
+generating a release by running the following command:
[source,bash]
$ make app
+To build your application without touching dependencies
+at all, you can use the `SKIP_DEPS` variable:
+
+[source,bash]
+$ make app SKIP_DEPS=1
+
This command is very useful if you have a lot of dependencies
and develop on a machine with slow file access, like the
Raspberry Pi and many other embedded devices.
@@ -76,22 +81,21 @@ in the next chapter.
==== Release
-You can generate the release, skipping the steps for building
-the application and dependencies, by running the following
-command:
+It is not possible to build the release without at least
+building the application itself, unless of course if there's
+no application to begin with.
+
+To generate the release, `make` will generally suffice with
+a normal Erlang.mk. A separate target is however available,
+and will take care of building the release, after building
+the application and all dependencies:
[source,bash]
$ make rel
-This command can be useful if nothing changed except the
-release configuration files.
-
Consult the link:relx.asciidoc[Releases] chapter for more
information about what releases are and how they are generated.
-Note that this command may fail if a required dependency
-is missing.
-
=== Application resource file
When building your application, Erlang.mk will generate the
diff --git a/plugins/relx.mk b/plugins/relx.mk
index 5aa6196..a27992d 100644
--- a/plugins/relx.mk
+++ b/plugins/relx.mk
@@ -22,7 +22,7 @@ endif
ifeq ($(IS_DEP),)
ifneq ($(wildcard $(RELX_CONFIG)),)
-rel:: distclean-relx-rel relx-rel
+rel:: relx-rel
endif
endif
@@ -34,7 +34,7 @@ $(RELX):
$(gen_verbose) $(call core_http_get,$(RELX),$(RELX_URL))
$(verbose) chmod +x $(RELX)
-relx-rel: $(RELX) rel-deps
+relx-rel: $(RELX) rel-deps app
$(verbose) $(RELX) -c $(RELX_CONFIG) $(RELX_OPTS)
distclean-relx-rel: