Update global make file for C++ code

Also allow the C++ compiler to be set globally rather than in the
individual makefiles. This contributes to #28