summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/build/create_devinc.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/build/create_devinc.py')
-rw-r--r--src/lib/netlist/build/create_devinc.py48
1 files changed, 39 insertions, 9 deletions
diff --git a/src/lib/netlist/build/create_devinc.py b/src/lib/netlist/build/create_devinc.py
index 8e95c071dce..6888d71183f 100644
--- a/src/lib/netlist/build/create_devinc.py
+++ b/src/lib/netlist/build/create_devinc.py
@@ -20,7 +20,7 @@ if sys.version_info > (3, ):
last_src = ""
-def process_entry(srcfile, name, params):
+def process_srcfile(srcfile):
global last_src
if (last_src != srcfile):
last_src = srcfile
@@ -28,6 +28,13 @@ def process_entry(srcfile, name, params):
print("// Source: {}".format(srcfile))
print("// ---------------------------------------------------------------------")
print("")
+
+def process_entry_external(srcfile, name):
+ process_srcfile(srcfile)
+ print("NETLIST_EXTERNAL({})".format(name))
+
+def process_entry(srcfile, name, params):
+ process_srcfile(srcfile)
p = re.sub("\+","",params)
ps = p.split(",")
pusage = ""
@@ -54,36 +61,59 @@ def process_file(srcfile):
ls = re.sub("\"","",ls)
m = re.match(r"NETLIB_DEVICE_IMPL\((\w+),(\w+),([a-zA-Z0-9_+@,]*)", ls)
#print("Line{}: {}".format(count, line.strip()))
- if m != None:
+ if m is not None:
process_entry(srcfile, m.group(2), m.group(3))
else:
m = re.match(r"NETLIB_DEVICE_IMPL_ALIAS\((\w+),(\w+),(\w+),([a-zA-Z0-9_+@,]*)", ls)
- if m != None:
+ if m is not None:
process_entry(srcfile, m.group(3), m.group(4))
else:
m = re.match(r"NETLIB_DEVICE_IMPL_NS\((\w+),(\w+),(\w+),([a-zA-Z0-9_+@,]*)", ls)
- if m != None:
+ if m is not None:
process_entry(srcfile, m.group(3), m.group(4))
else:
m = re.match(r"LOCAL_LIB_ENTRY\((\w+)\)", ls)
- if m != None:
+ if m is not None:
process_entry(srcfile, m.group(1), "")
else:
- m = re.match(r"(static)*TRUTHTABLE_START\((\w+),(\w+),(\w+),([a-zA-Z0-9_+@,]*)", ls)
- if m != None:
+ m = re.match(r"(static)*TRUTH_TABLE\((\w+),(\w+),(\w+),([a-zA-Z0-9_+@,]*)", ls)
+ if m is not None:
process_entry(srcfile, m.group(2), m.group(5))
+ else:
+ #m = re.match(r"EXTERNAL_SOURCE\((\w+)\)", ls)
+ m = re.match(r"NETLIST_START\((\w+)\)", ls)
+ if m is not None:
+ process_entry_external(srcfile, m.group(1))
src.close()
+def file_header():
+ print("// license:BSD-3-Clause")
+ print("// copyright-holders:Couriersud")
+ print("")
+ print("#ifndef NLD_DEVINC_H")
+ print("#define NLD_DEVINC_H")
+ print("")
+ print("#ifndef __PLIB_PREPROCESSOR__\n")
+ print("")
+ print("#include \"../nl_setup.h\"")
+ print("")
+
+def file_footer():
+ print("#endif // __PLIB_PREPROCESSOR__\n")
+ print("#endif // NLD_DEVINC_H\n")
+
if __name__ == '__main__':
if (len(sys.argv) == 0):
print('Usage:')
print(' create_devinc files ...')
sys.exit(0)
- files_sorted = [];
+ files_sorted = []
for argno in range(1, len(sys.argv)):
files_sorted.append(sys.argv[argno])
- files_sorted.sort();
+ files_sorted.sort()
+ file_header()
for entry in files_sorted:
process_file(entry)
+ file_footer()