- toolchain.add_tool(new GnuCCompiler(*this, *current_arch));
- toolchain.add_tool(new GnuCxxCompiler(*this, *current_arch));
- toolchain.add_tool(new GnuLinker(*this, *current_arch));
- toolchain.add_tool(new GnuArchiver(*this, *current_arch));
- toolchain.add_tool(new Copy(*this));
- toolchain.add_tool(new Tar(*this));
- toolchain.add_tool(new PkgConfigGenerator(*this));
- if(current_arch->get_system()=="windows")
- toolchain.add_tool(new MingwDllTool(*this, *current_arch));
+ const string &sys = current_arch->get_system();
+ if(sys=="android")
+ toolchain.add_toolchain(new AndroidTools(*this, *current_arch));
+ else if((sys=="darwin" || sys=="freebsd") && vfs.find_binary("clang"))
+ toolchain.add_toolchain(new ClangTools(*this, *current_arch));
+ else
+ toolchain.add_toolchain(new GnuTools(*this, *current_arch));
+ toolchain.add_toolchain(new BuiltinTools(*this));