What is so horrible about using cp makefiles/`uname -o`/`uname -m`/Makefile . to copy the correct makefile for the platform?
Also multiple incompatible compilers, and cross-compiling… and Darwin doesn't have uname -o, and Linux's uname -o has a / in the output.
Hmm, what isn't wrong with it?