7.3 Special Characters in Output Variables
Many output variables are intended to be evaluated both by
make and by the shell. Some characters are expanded
differently in these two contexts, so to avoid confusion these
variables' values should not contain any of the following characters:
" # $ & ' ( ) * ; < > ? [ \ ^ ` |
Also, these variables' values should neither contain newlines, nor start
with ‘~’, nor contain white space or ‘:’ immediately followed
by ‘~’. The values can contain nonempty sequences of white space
characters like tabs and spaces, but each such sequence might
arbitrarily be replaced by a single space during substitution.
These restrictions apply both to the values that configure
computes, and to the values set directly by the user. For example, the
following invocations of configure are problematic, since they
attempt to use special characters within
CPPFLAGS and white space
CPPFLAGS='-DOUCH="&\"#$*?"' '../My Source/ouch-1.0/configure'
'../My Source/ouch-1.0/configure' CPPFLAGS='-DOUCH="&\"#$*?"'