Make the build a little more portable for non-gnu make and cc. BSD make doesn't understand $^, and the Sun make has a problem with $<. This avoids the automatic variables by explicitly specifying the objects and targets. This also avoids a compiler complaint for a #error directive by putting the message in quotes.