I had a simple variable definition in my makefile:
THIS := ~/edan
and it had trailing spaces in the line.
Later, when I defined another variable in terms of this one:
WARES := $(THIS)/wares
the actual variable defined was /home/directory/edan wares
and then the make clean
rule removed /home/directory/edan
instead of what I wanted it to.
How can I prevent a makefile from executing if a line has trailing spaces?