--- /dev/null
+#ifndef TOOLCHAIN_H_
+#define TOOLCHAIN_H_
+
+#include <map>
+#include <string>
+
+class Tool;
+
+class Toolchain
+{
+private:
+ typedef std::map<std::string, Tool *> ToolMap;
+
+ ToolMap tools;
+
+public:
+ ~Toolchain();
+
+ void add_tool(Tool *);
+ const Tool &get_tool(const std::string &) const;
+ const Tool *get_tool_for_suffix(const std::string &) const;
+};
+
+#endif