import sys
import os
+import optparse
class InputFile:
def __init__(self, fn):
self.ignore_categs = []
self.ignore_funcs = []
+ path = os.path.split(fn)[0]
+
for line in InputFile(fn):
parts = line.split()
if parts[0]=="typemap":
- self.typemap = parts[1]
+ self.typemap = os.path.join(path, parts[1])
elif parts[0]=="iomap":
- self.iomap = parts[1]
+ self.iomap = os.path.join(path, parts[1])
elif parts[0]=="spec":
- self.specs.append(parts[1])
+ self.specs.append(os.path.join(path, parts[1]))
elif parts[0]=="prefix":
self.prefix = parts[1]
elif parts[0]=="enumspec":
- self.enumspecs.append(parts[1])
+ self.enumspecs.append(os.path.join(path, parts[1]))
elif parts[0]=="enumprefix":
self.enumprefix = parts[1]
elif parts[0]=="ignore":
return enums
-template = Template(sys.argv[1])
+parser = optparse.OptionParser()
+parser.add_option("--depends", dest="depends", default=False)
+(options, args) = parser.parse_args()
+
+template = Template(args[0])
apis = []
-for i in sys.argv[2:]:
+for i in args[1:]:
apis.append(Api(i))
-template.process(apis)
+if options.depends:
+ deps = args[:]
+ if template.mode=="functions":
+ for api in apis:
+ deps += api.specs
+ deps.append(api.typemap)
+ deps.append(api.iomap)
+ elif template.mode=="enums":
+ for api in apis:
+ deps += api.enumspecs
+ sys.stdout.write("%s: %s\n"%(options.depends, " ".join(deps)))
+else:
+ template.process(apis)