diff options
Diffstat (limited to 'makefile_escaping/env_vars.mk')
-rw-r--r-- | makefile_escaping/env_vars.mk | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/makefile_escaping/env_vars.mk b/makefile_escaping/env_vars.mk new file mode 100644 index 0000000..47c1647 --- /dev/null +++ b/makefile_escaping/env_vars.mk @@ -0,0 +1,15 @@ +escape = $(subst ','\'',$(1)) +escape_var = $(call escape,$(value $(1))) + +test_var ?= This is safe. +export test_var + +echo_test_var := printf '%s\n' '$(call escape_var,test_var)' +bash_test_var := bash -c '$(call escape_var,echo_test_var)' + +.PHONY: test +test: + @printf '%s\n' '$(call escape_var,test_var)' + @printf '%s\n' "$$test_var" + @bash -c '$(call escape_var,echo_test_var)' + @bash -c '$(call escape_var,bash_test_var)' |