If you copied the text directly from the Makefile , here is your problem:
Instead of a simple dash (ASCII 45, Unicode U + 002D) you have en-dash (cp1252 0x96, Unicode U + 2013) in the gcc -o ... and gcc -c ... lines. Replace them with a simple dash.
To find out if you succeeded, use the following command:
 cat Makefile | tr -d '\r\n\t -~' | hexdump -C 
This will extract all the βstrangeβ bytes from the Makefile and print them to you in hexdump. Ideally, the output of this command should be as follows:
 00000000 
In your case, there will probably be an output:
 00000000 ef bb bf e2 80 93 e2 80 93 |.........| 00000009 
This means that the file is UTF-8 encoded (the first three bytes tell you this) and it has two other UTF-8 characters: two times e2 80 93 , which is the UTF-8 encoding for U + 2013, en-dash .
 source share