summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/build/create_lib_entries.py
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2020-08-24 22:01:39 +0200
committer couriersud <couriersud@gmx.org>2020-08-24 22:01:38 +0200
commit8335c1bed5d96ddfe07d53894ac742a078262b48 (patch)
tree771ab8b256ccbb1f3a8b86808c0d454419922329 /src/lib/netlist/build/create_lib_entries.py
parent2880eea644c9fa32638b1e9c936c1e141ae97f7b (diff)
netlist: build system improvements
* Medium term this will significantly ease adding devices to netlist.
Diffstat (limited to 'src/lib/netlist/build/create_lib_entries.py')
-rw-r--r--src/lib/netlist/build/create_lib_entries.py57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/lib/netlist/build/create_lib_entries.py b/src/lib/netlist/build/create_lib_entries.py
new file mode 100644
index 00000000000..461d5e2038b
--- /dev/null
+++ b/src/lib/netlist/build/create_lib_entries.py
@@ -0,0 +1,57 @@
+#!/usr/bin/python
+##
+## license:BSD-3-Clause
+## copyright-holders:Couriersud
+
+import os
+import os.path
+import re
+import sys
+import xml.sax
+import xml.sax.saxutils
+import zlib
+
+
+# workaround for version incompatibility
+if sys.version_info > (3, ):
+ long = int
+
+# globals
+devices = []
+
+def process_file(srcfile):
+ src = open(srcfile,'r')
+ lines = src.readlines()
+ for line in lines:
+ ls = re.sub("\s+","",line.strip())
+ ls = re.sub("^\s*//.*","",ls)
+ m = re.match(r"NETLIB_DEVICE_IMPL\((\w+),", ls)
+ #print("Line{}: {}".format(count, line.strip()))
+ if m != None:
+ n = m.group(1)
+ devices.append(n)
+ else:
+ m = re.match(r"NETLIB_DEVICE_IMPL_ALIAS\((\w+),", ls)
+ if m != None:
+ n = m.group(1)
+ devices.append(n)
+ else:
+ m = re.match(r"NETLIB_DEVICE_IMPL_NS\((\w+),(\w+),", ls)
+ if m != None:
+ n = m.group(2)
+ devices.append(n)
+ src.close()
+
+if __name__ == '__main__':
+ if (len(sys.argv) == 0):
+ print('Usage:')
+ print(' extract files ...')
+ sys.exit(0)
+
+ for argno in range(1, len(sys.argv)):
+ process_file(sys.argv[argno])
+
+ devices.sort()
+ for d in devices:
+ print("LIB_ENTRY({})".format(d))
+ \ No newline at end of file