 +  def ComputeOutput(self, spec):
 +    filename = self.ComputeOutputFileName(spec)
 +
-+    assert 'product_prefix' not in spec
 +    if 'product_name' in spec:
 +      print 'XXX ignoring product_name', spec['product_name']
 +    assert 'product_extension' not in spec

+
+""" % {
+  'cwd': os.getcwd(),
+}
+
+def QuoteShellArgument(arg):

+    if '_library' in spec['type'] and target[:3] == 'lib':
+      target = target[3:]
+
+    if spec['type'] in ('static_library', 'loadable_module', 'shared_library'):
+      prefix = spec.get('product_prefix', 'lib')
+
+    if spec['type'] == 'static_library':
+      return '%s%s.a' % (prefix, target)
+    elif spec['type'] in ('loadable_module', 'shared_library'):
+      return '%s%s.so' % (prefix, target)
+    elif spec['type'] == 'none':
+      return '%s.stamp' % target
+    elif spec['type'] == 'settings':
