diff options
author | yenatch <yenatch@gmail.com> | 2013-09-11 01:20:52 -0400 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2013-09-11 01:23:01 -0400 |
commit | 6a21963799575fa8a88ed55cde5408ef67c92d63 (patch) | |
tree | b944c65708c15f961d7fec1ee42cb587c53d0ba0 /scan_includes.py | |
parent | e1c3fee92651a5b3550974e9fbd152840e796654 (diff) |
scan source files for Makefile dependencies
preprocessing should work with multiple object files now
Diffstat (limited to 'scan_includes.py')
-rw-r--r-- | scan_includes.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/scan_includes.py b/scan_includes.py new file mode 100644 index 000000000..71b2e58a7 --- /dev/null +++ b/scan_includes.py @@ -0,0 +1,27 @@ +# coding: utf-8 + +# Recursively scan an asm file for rgbasm INCLUDEs and INCBINs. +# This is used to generate dependencies for each rgbasm object file. + +import sys + +def scan_for_includes(filename): + filenames = [] + for line in open(filename, 'r').readlines(): + if 'INCLUDE' in line or 'INCBIN' in line: + line = line.split(';')[0] + if 'INCLUDE' in line or 'INCBIN' in line: + filenames += [line.split('"')[1]] + return filenames + +def recursive_scan_for_includes(filename): + filenames = [] + if '.asm' in filename or '.tx' in filename: + for include in scan_for_includes(filename): + filenames += [include] + recursive_scan_for_includes(include) + return filenames + +if len(sys.argv) > 1: + for arg in sys.argv[1:]: + sys.stdout.write(' '.join(recursive_scan_for_includes(arg))) + |