 +    # able to run actions and build libraries by their short name.
 +    self.WriteEdge([self.name], 'phony', [output], use_prebuild_stamp=False)
 +
-+    output_link_deps = set()
-+    if spec['type'] not in ('executable', 'loadable_module'):
-+      if 'library' in spec['type']:
-+        output_link_deps.add(output)
-+      #for dep in deps:
-+      #  output_link_deps.update(self.target_links.get(dep, set()))
-+
-+    return (output, output_link_deps)
++    return output
 +
 +  def ComputeOutputFileName(self, spec):
 +    target = spec['target_name']

+    self.name = spec['target_name']  # XXX remove bad chars
+
+    if spec['type'] == 'settings':
+      return (None, None)
+
+    # Compute predepends for all rules.
+    prebuild_deps = []

+*.pyc
diff --git a/pylib/gyp/generator/ninja.py b/pylib/gyp/generator/ninja.py
new file mode 100644
index 0000000..41a0730
--- /dev/null
+++ b/pylib/gyp/generator/ninja.py
@@ -0,0 +1,534 @@
+#!/usr/bin/python
+
+# Copyright (c) 2010 Google Inc. All rights reserved.
