aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2014-11-05 16:21:57 +0200
committerLoïc Hoguin <[email protected]>2014-11-05 16:21:57 +0200
commit92626f1548c1dea677594c48040066ac2bb6f550 (patch)
tree520d1b089ac998ef7862ba563ed343d89351c7e5
parent724f024bbffaa56dadb10ed88130831ed7e81b09 (diff)
downloaderlang.mk-92626f1548c1dea677594c48040066ac2bb6f550.tar.gz
erlang.mk-92626f1548c1dea677594c48040066ac2bb6f550.tar.bz2
erlang.mk-92626f1548c1dea677594c48040066ac2bb6f550.zip
Add an erlang-mk target for automated updating of erlang.mk
-rw-r--r--README.md16
-rw-r--r--core/core.mk14
-rw-r--r--erlang.mk14
3 files changed, 42 insertions, 2 deletions
diff --git a/README.md b/README.md
index 9672670..31f718b 100644
--- a/README.md
+++ b/README.md
@@ -219,6 +219,22 @@ If `{id, "git"},` is found in your project's `.app.src`, the
extended output of `git describe ...` will replace it. This
can be retrieved at runtime via `application:get_key/2`.
+Updating erlang.mk
+------------------
+
+You can update erlang.mk by running `make erlang-mk`. This automated
+update will always take the latest erlang.mk version, compile it and
+replace the erlang.mk of your project with the updated version.
+
+If your project includes a `build.config`, erlang.mk will use it
+when building the updated version.
+
+The `ERLANG_MK_BUILD_CONFIG` variable can be used to rename the
+`build.config` file.
+
+The `ERLANG_MK_BUILD_DIR` variable contains the path to the
+temporary directory used to build the updated erlang.mk.
+
Bootstrap plugin
----------------
diff --git a/core/core.mk b/core/core.mk
index ec42331..0b06f73 100644
--- a/core/core.mk
+++ b/core/core.mk
@@ -12,7 +12,7 @@
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-.PHONY: all deps app rel docs tests clean distclean help
+.PHONY: all deps app rel docs tests clean distclean help erlang-mk
ERLANG_MK_VERSION = 1
@@ -71,3 +71,15 @@ define core_http_get
erl -noshell -eval 'ssl:start(), inets:start(), case httpc:request(get, {"$(2)", []}, [{autoredirect, true}], []) of {ok, {{_, 200, _}, _, Body}} -> case file:write_file("$(1)", Body) of ok -> ok; {error, R1} -> halt(R1) end; {error, R2} -> halt(R2) end, halt(0).'
endef
endif
+
+# Automated update.
+
+ERLANG_MK_BUILD_CONFIG ?= build.config
+ERLANG_MK_BUILD_DIR ?= .erlang.mk.build
+
+erlang-mk:
+ git clone https://github.com/ninenines/erlang.mk $(ERLANG_MK_BUILD_DIR)
+ if [ -f $(ERLANG_MK_BUILD_CONFIG) ]; then cp $(ERLANG_MK_BUILD_CONFIG) $(ERLANG_MK_BUILD_DIR); fi
+ cd $(ERLANG_MK_BUILD_DIR) && make
+ cp $(ERLANG_MK_BUILD_DIR)/erlang.mk ./erlang.mk
+ rm -rf $(ERLANG_MK_BUILD_DIR)
diff --git a/erlang.mk b/erlang.mk
index fd7f0fd..9d6caf9 100644
--- a/erlang.mk
+++ b/erlang.mk
@@ -12,7 +12,7 @@
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-.PHONY: all deps app rel docs tests clean distclean help
+.PHONY: all deps app rel docs tests clean distclean help erlang-mk
ERLANG_MK_VERSION = 1
@@ -72,6 +72,18 @@ define core_http_get
endef
endif
+# Automated update.
+
+ERLANG_MK_BUILD_CONFIG ?= build.config
+ERLANG_MK_BUILD_DIR ?= .erlang.mk.build
+
+erlang-mk:
+ git clone https://github.com/ninenines/erlang.mk $(ERLANG_MK_BUILD_DIR)
+ if [ -f $(ERLANG_MK_BUILD_CONFIG) ]; then cp $(ERLANG_MK_BUILD_CONFIG) $(ERLANG_MK_BUILD_DIR); fi
+ cd $(ERLANG_MK_BUILD_DIR) && make
+ cp $(ERLANG_MK_BUILD_DIR)/erlang.mk ./erlang.mk
+ rm -rf $(ERLANG_MK_BUILD_DIR)
+
# Copyright (c) 2013-2014, Loïc Hoguin <[email protected]>
# This file is part of erlang.mk and subject to the terms of the ISC License.