aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/makefile_escaping/escaping_env_vars.mk
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2020-05-29 22:56:51 +0000
committerEgor Tensin <Egor.Tensin@gmail.com>2020-05-29 22:57:06 +0000
commit6c569b8b68e3bd95e5658fafba7ce49c3cf3d585 (patch)
tree6fc0168a79b11b11ba76cb4ebcba47140edb2a69 /makefile_escaping/escaping_env_vars.mk
parentmakefile_escaping: fix inclusions in other variables (diff)
downloadblog-6c569b8b68e3bd95e5658fafba7ce49c3cf3d585.tar.gz
blog-6c569b8b68e3bd95e5658fafba7ce49c3cf3d585.zip
makefile_escaping: rename *.mk files
Diffstat (limited to 'makefile_escaping/escaping_env_vars.mk')
-rw-r--r--makefile_escaping/escaping_env_vars.mk22
1 files changed, 22 insertions, 0 deletions
diff --git a/makefile_escaping/escaping_env_vars.mk b/makefile_escaping/escaping_env_vars.mk
new file mode 100644
index 0000000..7fdc087
--- /dev/null
+++ b/makefile_escaping/escaping_env_vars.mk
@@ -0,0 +1,22 @@
+escape = $(subst ','\'',$(1))
+
+test_var ?= This is safe.
+test_var := $(value test_var)
+export test_var
+
+inner_var := Inner variable
+outer_var := Outer variable - $(inner_var) - $(test_var)
+
+echo_test_var := printf '%s\n' '$(call escape,$(test_var))'
+bash_test_var := bash -c '$(call escape,$(echo_test_var))'
+
+echo_outer_var := printf '%s\n' '$(call escape,$(outer_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,$(outer_var))'
+ @bash -c '$(call escape,$(echo_outer_var))'