+ chains.push_back(chain);
+}
+
+bool Toolchain::has_tool(const string &tag) const
+{
+ if(tools.count(tag))
+ return true;
+ for(ToolchainList::const_iterator i=chains.begin(); i!=chains.end(); ++i)
+ if((*i)->has_tool(tag))
+ return true;
+ return false;
+}
+
+Tool &Toolchain::get_tool(const string &tag) const
+{
+ if(!tools.count(tag))
+ {
+ for(ToolchainList::const_iterator i=chains.begin(); i!=chains.end(); ++i)
+ if((*i)->has_tool(tag))
+ return (*i)->get_tool(tag);
+ }
+