aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/makefile_escaping
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2020-05-30 21:43:15 +0000
committerEgor Tensin <Egor.Tensin@gmail.com>2020-05-30 21:47:09 +0000
commit3fc78d2fabb5c613f10c9e94d8a1a4c1a548648f (patch)
treece1b2d56eaed7836d116ef8fbd3a0cdf92f0f664 /makefile_escaping
parentmakefile_escaping: fix variable overrides (diff)
downloadblog-3fc78d2fabb5c613f10c9e94d8a1a4c1a548648f.tar.gz
blog-3fc78d2fabb5c613f10c9e94d8a1a4c1a548648f.zip
makefile_escaping: more concise test cases
Diffstat (limited to '')
-rw-r--r--makefile_escaping/escaping_env_vars.mk23
-rw-r--r--makefile_escaping/escaping_quotes.mk2
-rw-r--r--makefile_escaping/escaping_shell.mk18
-rw-r--r--makefile_escaping/quoting_args.mk8
4 files changed, 10 insertions, 41 deletions
diff --git a/makefile_escaping/escaping_env_vars.mk b/makefile_escaping/escaping_env_vars.mk
index 421c4b6..f2e7a2d 100644
--- a/makefile_escaping/escaping_env_vars.mk
+++ b/makefile_escaping/escaping_env_vars.mk
@@ -7,7 +7,7 @@ SHELL := bash
escape = $(subst ','\'',$(1))
-define escape_arg
+define escape_env
ifeq ($$(origin $(1)),environment)
$(1) := $$(value $(1))
endif
@@ -19,32 +19,15 @@ override $(1) := $$(value $(1))
endif
endef
-# Simple variable.
simple_var := Simple value
-test_var ?= $(simple_var)
-export test_var
-
-$(eval $(call escape_arg,test_var))
+test_var ?= $(simple_var) (in test_var)
+$(eval $(call escape_env,test_var))
simple_var := New simple value
-
-# printf $test_var
-echo_test_var := printf '%s\n' '$(call escape,$(test_var))'
-# bash -c 'printf $test_var'
-bash_test_var := bash -c '$(call escape,$(echo_test_var))'
-
-# Composite variable, includes both $simple_var and $test_var.
composite_var := Composite value - $(simple_var) - $(test_var)
-# printf $composite_var
-echo_composite_var := printf '%s\n' '$(call escape,$(composite_var))'
-
.PHONY: test
test:
@printf '%s\n' '$(call escape,$(test_var))'
- @printf '%s\n' "$$test_var"
- @bash -c '$(call escape,$(echo_test_var))'
- @bash -c '$(call escape,$(bash_test_var))'
@printf '%s\n' '$(call escape,$(composite_var))'
- @bash -c '$(call escape,$(echo_composite_var))'
diff --git a/makefile_escaping/escaping_quotes.mk b/makefile_escaping/escaping_quotes.mk
index 13835e7..2a43f69 100644
--- a/makefile_escaping/escaping_quotes.mk
+++ b/makefile_escaping/escaping_quotes.mk
@@ -9,9 +9,7 @@ escape = $(subst ','\'',$(1))
test_var := Includes ' quote
-# printf $test_var
echo_test_var := printf '%s\n' '$(call escape,$(test_var))'
-# bash -c 'printf $test_var'
bash_test_var := bash -c '$(call escape,$(echo_test_var))'
test:
diff --git a/makefile_escaping/escaping_shell.mk b/makefile_escaping/escaping_shell.mk
index 39fabf2..1be9c02 100644
--- a/makefile_escaping/escaping_shell.mk
+++ b/makefile_escaping/escaping_shell.mk
@@ -8,26 +8,14 @@ SHELL := bash
escape = $(subst ','\'',$(1))
cwd := $(shell basename -- "$$( pwd )")
-export cwd
-# printf $cwd
echo_cwd := printf '%s\n' '$(call escape,$(cwd))'
-# bash -c 'printf $cwd'
bash_cwd := bash -c '$(call escape,$(echo_cwd))'
-# Simple variable.
-inner_var := Inner variable
-# Composite variable, includes both $inner_var and $cwd.
-outer_var := Outer variable - $(inner_var) - $(cwd)
-
-# printf $outer_var
-echo_outer_var := printf '%s\n' '$(call escape,$(outer_var))'
+simple_var := Simple value
+compisite_var := Composite value - $(simple_var) - $(cwd)
.PHONY: test
test:
@printf '%s\n' '$(call escape,$(cwd))'
- @printf '%s\n' "$$cwd"
- @bash -c '$(call escape,$(echo_cwd))'
- @bash -c '$(call escape,$(bash_cwd))'
- @printf '%s\n' '$(call escape,$(outer_var))'
- @bash -c '$(call escape,$(echo_outer_var))'
+ @printf '%s\n' '$(call escape,$(compisite_var))'
diff --git a/makefile_escaping/quoting_args.mk b/makefile_escaping/quoting_args.mk
index ff55f51..db4f7cf 100644
--- a/makefile_escaping/quoting_args.mk
+++ b/makefile_escaping/quoting_args.mk
@@ -9,7 +9,7 @@ test_var := Same line?
export test_var
test:
- printf '%s\n' $(test_var)
- printf '%s\n' '$(test_var)'
- printf '%s\n' $$test_var
- printf '%s\n' "$$test_var"
+ @printf '%s\n' $(test_var)
+ @printf '%s\n' '$(test_var)'
+ @printf '%s\n' $$test_var
+ @printf '%s\n' "$$test_var"