Make improvements.

According to the GNU make manual user variables CFLAGS, and LDFLAGS are
defined as an empty strings.
$@ target, happens to be portable and useful
- do not care about exit status
Using .PHONY ensures that make won't go looking for nonexistent product files
named after these targets.