diff options
author | Daniel Harding <33dannye@gmail.com> | 2018-07-01 10:54:43 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-01 10:54:43 -0500 |
commit | e42ec2368b3f61715f1e86d26bd8706684336c62 (patch) | |
tree | 7e290929824d0857be5846364da0007da0c749a5 /tools/scan_includes.py | |
parent | 30aa1150f1c42a42aebb4dd1cd9f919b62cbff09 (diff) | |
parent | e9d1642fbbe19df0dac0c2dca16ac22aed760b84 (diff) |
Merge pull request #42 from xCrystal/master
More home disassembly ; Redesign TX_SYMBOL constants ; rename 'Kind' labels ; more wram addresses and text symbols ; Don't use the extras submodule ; Add support for disassembling poketcg-specific macros
Diffstat (limited to 'tools/scan_includes.py')
-rw-r--r-- | tools/scan_includes.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tools/scan_includes.py b/tools/scan_includes.py new file mode 100644 index 0000000..53ff091 --- /dev/null +++ b/tools/scan_includes.py @@ -0,0 +1,43 @@ +#!/bin/python +# coding: utf-8 + +""" +Recursively scan an asm file for dependencies. +""" + +import sys +import argparse +import os.path + +includes = set() + +def scan_file(filename): + for line in open(filename): + if 'INC' not in line: + continue + line = line.split(';')[0] + if 'INCLUDE' in line: + include = line.split('"')[1] + if os.path.exists("src/"): + includes.add("src/" + include) + scan_file("src/" + include) + else: + includes.add(include) + scan_file(include) + elif 'INCBIN' in line: + include = line.split('"')[1] + if 'baserom.gbc' not in line and os.path.exists("src/"): + includes.add("src/" + include) + else: + includes.add(include) + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument('filenames', nargs='*') + args = ap.parse_args() + for filename in set(args.filenames): + scan_file(filename) + sys.stdout.write(' '.join(includes)) + +if __name__ == '__main__': + main() |