I hates whitespace in path. I wrote a Perl script which uses a resource file and several template files. So I created a makefile to copy them to user’s
HOME directory. It looks like:
cp -f $< $@
Unfortunately, it doesn’t work when there are whitespaces in $(HOME) string, such as
/abc/d e/. That happens on Cygwin default installation.
You can double-qoute path, but there are whitespaces in target and target can not be double-qouted. Finally, I find a workaround after diving into
`make' info page for a long time. Here is the trick.
space := $(nullstring) # a space at the end
QUOTED_HOME=$(subst $(space),\ ,$(HOME))
cp -f $< $(subst $(space),\ ,$@)