support clang c++11
generalise build settings