| import re | |
| import sys | |
| abs_path_re = re.compile('[A-Za-z]:\\.*') | |
| contents = sys.stdin.readlines() | |
| if contents: | |
| contents = [line.rstrip() for line in contents] | |
| contents = [line.replace('"', '') for line in contents] | |
| _, first_dep_line = contents[0].split(':', 1) | |
| deps = [] | |
| remaining_deps = [first_dep_line] + contents[1:] | |
| # Go through each line and split on whitespace. | |
| # There may be multiple deps on each line. | |
| for line in remaining_deps: | |
| line = line.strip(' \t\\') | |
| line = line.replace('\\', '/') | |
| line_deps = line.split() | |
| deps.extend(line_deps) | |
| # Strip out all absolute paths. Assume these are system includes | |
| # we don't care about. colons in the path confuse make. | |
| deps = filter(lambda d: not abs_path_re.match(d), deps) | |
| sys.stdout.write('%s %s: \\\n' % (deps[0] + '.d', deps[0] + '.o')) | |
| sys.stdout.write(' \\\n'.join([' %s' % d for d in deps])) | |
| sys.stdout.write('\n') |