shithub: pokecrystal

Download patch

ref: 05cffac7448a46468a70d21104a53110fd7c3a00
parent: d257188282e932380de4e1b1a46758a1bc9c8cd6
author: yenatch <yenatch@gmail.com>
date: Sun Apr 10 15:19:58 EDT 2016

Add a custom scan_includes.py.

--- a/Makefile
+++ b/Makefile
@@ -6,9 +6,8 @@
 .SECONDEXPANSION:
 .PRECIOUS: %.2bpp %.1bpp
 
-poketools := extras/pokemontools
 gfx       := $(PYTHON) gfx.py
-includes  := $(PYTHON) $(poketools)/scan_includes.py
+includes  := $(PYTHON) scan_includes.py
 
 
 crystal_obj := \
--- /dev/null
+++ b/scan_includes.py
@@ -1,0 +1,35 @@
+#!/bin/python
+# coding: utf-8
+
+"""
+Recursively scan an asm file for dependencies.
+"""
+
+import sys
+import argparse
+
+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]
+			includes.add(include)
+			scan_file(include)
+		elif 'INCBIN' in line:
+			include = line.split('"')[1]
+			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()