blob: 7c016625c5f5068c2b77a5977a5f4292324c1a34 [file] [log] [blame]
import time
import os, fnmatch
import sys
#########################################################
#
# 1. execute ld to generate log
# 2. collect all undefined reference symbols
# 3. find out the files defining the symbols
# 4. sort all the files
# 5. let user decide whether copy the file or just make fake file
#
if __name__ == '__main__':
count = 0
argc = len(sys.argv)
if argc != 3:
print " Usage: python gen-wrap-funclist.py input output\n\n"
sys.exit(-1)
input_file = sys.argv[1]
output_file = sys.argv[2]
print "Input file is [%s]\n" % (input_file)
print "Output result file is [%s]\n" % (output_file)
# collect all the extern-dep functions
wrap_filelist = []
revert_wrap_filelist = {}
sym = ""
fp = open(input_file, "r")
line = fp.readline()
while line != '':
if line == '\n':
line = fp.readline()
sym = line.split()[1]
line = fp.readline()
if line == '\n':
continue
iterms = line.split()
if len(iterms) != 0:
file = iterms[0]
if file[-1] != 'h':
if not file in wrap_filelist:
print file
wrap_filelist.append(file)
revert_wrap_filelist[file] = []
revert_wrap_filelist[file].append(sym)
count = count + 1
else:
if not sym in revert_wrap_filelist[file]:
revert_wrap_filelist[file].append(sym)
line = fp.readline()
fp.close()
fpw = open(output_file, "w")
for x in wrap_filelist:
funclist = revert_wrap_filelist[x]
fpw.write(x)
fpw.write("\n")
for y in funclist:
fpw.write("\t\t")
fpw.write(y)
fpw.write("\n")
fpw.write("\n")
fpw.close()
print("Find %d Wrap-Function Definitaions\n", count)