From 49eb5405debb49d19c58f966b4fceac9ea9571ae Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Mon, 13 Jan 2020 14:26:10 +0100 Subject: [PATCH 1/2] Ensure ENV is well defined when using make This command should fail before calling other commands (which will fail to because the environment is wrong): ``` ENV=toto make install ``` --- GNUmakefile | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/GNUmakefile b/GNUmakefile index 865b35e8b..db87c5d21 100755 --- a/GNUmakefile +++ b/GNUmakefile @@ -2,7 +2,17 @@ SHELL=bash TMP_FOLDER=/tmp RELEASE_FOLDER=wllbg-release -ENV ?= prod +# ensure the ENV variable is well defined +ifeq ($(origin ENV), prod) + # all good ("prod" is a valid env) +else ifeq ($(origin ENV), dev) + # all good ("dev" is a valid env) +else ifeq ($(origin ENV), test) + # all good ("test" is a valid env) +else + # not good, force it to "prod" + override ENV = prod +endif help: ## Display this help menu @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' From 29f5515959de45a7f2971756e3563995c425c2c2 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Mon, 13 Jan 2020 15:58:59 +0100 Subject: [PATCH 2/2] Improve check by using list See https://stackoverflow.com/a/27335439/569101 --- GNUmakefile | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index db87c5d21..837f7103f 100755 --- a/GNUmakefile +++ b/GNUmakefile @@ -3,12 +3,9 @@ TMP_FOLDER=/tmp RELEASE_FOLDER=wllbg-release # ensure the ENV variable is well defined -ifeq ($(origin ENV), prod) - # all good ("prod" is a valid env) -else ifeq ($(origin ENV), dev) - # all good ("dev" is a valid env) -else ifeq ($(origin ENV), test) - # all good ("test" is a valid env) +AVAILABLE_ENV := prod dev test +ifneq ($(filter $(ENV),$(AVAILABLE_ENV)),) + # all good else # not good, force it to "prod" override ENV = prod