Generic C/C++ non-recursive make build system