diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
new file mode 100644
index 0000000..f849c2b
--- /dev/null
+++ b/lib/Driver/Tools.cpp
@@ -0,0 +1,55 @@
+//===--- Tools.cpp - Tools Implementations ------------------------------*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "Tools.h"
+
+using namespace clang::driver;
+using namespace clang::driver::tools;
+
+void Clang::ConstructJob(Compilation &C, const JobAction &JA,
+                         InputInfo &Output, InputInfoList &Inputs,
+                         const ArgList &TCArgs,
+                         const char *LinkingOutput) const {
+
+}
+
+void gcc::Preprocess::ConstructJob(Compilation &C, const JobAction &JA,
+                                   InputInfo &Output, InputInfoList &Inputs,
+                                   const ArgList &TCArgs,
+                                   const char *LinkingOutput) const {
+
+}
+
+void gcc::Precompile::ConstructJob(Compilation &C, const JobAction &JA,
+                                   InputInfo &Output, InputInfoList &Inputs,
+                                   const ArgList &TCArgs,
+                                   const char *LinkingOutput) const {
+
+}
+
+void gcc::Compile::ConstructJob(Compilation &C, const JobAction &JA,
+                                InputInfo &Output, InputInfoList &Inputs,
+                                const ArgList &TCArgs,
+                                const char *LinkingOutput) const {
+
+}
+
+void gcc::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
+                                 InputInfo &Output, InputInfoList &Inputs,
+                                 const ArgList &TCArgs,
+                                 const char *LinkingOutput) const {
+
+}
+
+void gcc::Link::ConstructJob(Compilation &C, const JobAction &JA,
+                             InputInfo &Output, InputInfoList &Inputs,
+                             const ArgList &TCArgs,
+                             const char *LinkingOutput) const {
+
+}
