Improve POSIX-compatibility of Makefile
* Add .POSIX special target so make(1) processes it as a POSIX Makefile.
* Use inference rules instead of GNU make pattern rules.
* Avoid use of $< outside of inference rules.
* Add an `all` target as the first target in the file, making it the
* Avoid use of $^.
* Split yacc(1) options into separate arguments (causes problems with
Though .PHONY, `:=`, `+=`, and `?=` aren't in POSIX.1-2008, they are
left since they are widely supported and accepted for inclusion in the
next edition of POSIX.
Tested with GNU make, OpenBSD make, FreeBSD make, and bmake.