diff --git a/bin/filelist_compile.py b/bin/filelist_compile.py index 721c32ab165c97f9267424d016cc39ef85ff3f00..a32e800650690652e1ea75c66b6515cbb6f91769 100755 --- a/bin/filelist_compile.py +++ b/bin/filelist_compile.py @@ -94,15 +94,7 @@ def read_list(filelist, first, incdirs, args): incdirs.append(env_var_substitute(line_list[0].lstrip("+incdir+"))) else: incdirs.append(line_list[0].lstrip("+incdir+")) - if args.tcl == False: - for file in os.listdir(env_var_substitute(line_list[0].lstrip("+incdir+"))): - if file.endswith(verilog_extensions): - # Append to filelist - if args.absolute == True: - compiled_filelist.append(env_var_substitute(line_list[0].lstrip("+incdir+"))+"/"+str(file)) - else: - compiled_filelist.append(line_list[0].lstrip("+incdir+")+"/"+str(file)) - else: + if args.tcl == True: if args.absolute == True: if first == True: compiled_filelist.append("set search_path " + str(env_var_substitute(line_list[0].lstrip("+incdir+"), tcl=True)).replace("$","$env")) @@ -115,18 +107,44 @@ def read_list(filelist, first, incdirs, args): first = False else: compiled_filelist.append("set search_path [ concat $search_path " + str(line_list[0].lstrip("+incdir+")).replace("$","$env") + " ]") + # elif args.makefile == True: + # if args.absolute == True: + # if first == True: + # compiled_filelist.append("set search_path " + str(env_var_substitute(line_list[0].lstrip("+incdir+"), tcl=True)).replace("$","$env")) + # first = False + # else: + # compiled_filelist.append("set search_path [ concat $search_path " + str(env_var_substitute(line_list[0].lstrip("+incdir+"), tcl=True)).replace("$","$env") + " ]") + # else: + # if first == True: + # compiled_filelist.append("set search_path " + str(line_list[0].lstrip("+incdir+")).replace("$","$env")) + # first = False + # else: + # compiled_filelist.append("set search_path [ concat $search_path " + str(line_list[0].lstrip("+incdir+")).replace("$","$env") + " ]") + elif args.makefile == False: + for file in os.listdir(env_var_substitute(line_list[0].lstrip("+incdir+"))): + if file.endswith(verilog_extensions): + # Append to filelist + if args.absolute == True: + compiled_filelist.append(env_var_substitute(line_list[0].lstrip("+incdir+"))+"/"+str(file)) + else: + compiled_filelist.append(line_list[0].lstrip("+incdir+")+"/"+str(file)) # If file list a verilog file elif line_list[0].endswith(verilog_extensions): # Append to filelist - if args.absolute == True: - if args.tcl == True: + if args.tcl == True: + if args.absolute == True: hdl_files.append(str(env_var_substitute(line_list[0], tcl=True)).replace("$","$env")) else: - compiled_filelist.append(env_var_substitute(line_list[0])) - else: - if args.tcl == True: hdl_files.append(str(line_list[0]).replace("$","$env")) + elif args.makefile == True: + if args.absolute == True: + compiled_filelist.append("VERILOG_SOURCES += " + str(env_var_substitute(line_list[0], tcl=True))) + else: + compiled_filelist.append("VERILOG_SOURCES += " + str(line_list[0])) + else: + if args.absolute == True: + compiled_filelist.append(env_var_substitute(line_list[0])) else: compiled_filelist.append(line_list[0]) if len(hdl_files) > 0: @@ -140,12 +158,17 @@ def read_list(filelist, first, incdirs, args): def incdir_compile(args, incdirs): temp_str = "" - if len(incdirs) > 0: - temp_str = 'set_property include_dirs "' - for directory in incdirs: - temp_dir = str(directory).replace("$","$env") - temp_str += " " + temp_dir - temp_str += '" [current_fileset]' + if args.tcl == True: + if len(incdirs) > 0: + temp_str = 'set_property include_dirs "' + for directory in incdirs: + temp_dir = str(directory).replace("$","$env") + temp_str += " " + temp_dir + temp_str += '" [current_fileset]' + elif args.makefile == True: + if len(incdirs) > 0: + for directory in incdirs: + temp_str += "EXTRA_ARGS += +incdir+" + str(directory) + "\n" return temp_str def defines_compile(args): @@ -165,13 +188,12 @@ def filelist_compile(args): filelist, first, incdirs = read_list(input_filelist, True, incdirs, args) filelist = [x+"\n" for x in filelist] # Create string of all paths to write out - filelist_str = filelist_header if (args.tcl == False) else filelist_header.replace("//","#") + filelist_str = filelist_header if (args.tcl == False and args.makefile == False) else filelist_header.replace("//","#") if args.tcl == True: # filelist_str += incdir_compile(args, incdirs) + "\n" filelist_str += defines_compile(args) for path in filelist: filelist_str += path - if args.tcl == True: - filelist_str += incdir_compile(args, incdirs) + "\n" + filelist_str += incdir_compile(args, incdirs) + "\n" # filelist_str += defines_compile(args) # Write out output filelist f_outlist = open(output_filelist, "w") @@ -185,6 +207,7 @@ if __name__ == "__main__": parser.add_argument("-o", "--output", type=str, help="Output Filelist location") parser.add_argument("-e", "--exclude", action='store_true', help="Exclude filists including these strings") parser.add_argument("-t", "--tcl", action='store_true', help="Generate a TCL Script") + parser.add_argument("-m", "--makefile", action='store_true', help="Generate a Makefile RTL Sources File") parser.add_argument("-a", "--absolute", action='store_true', help="Substitute environment Variables with Absolute Path") parser.add_argument("-r", "--rtldir", type=str, help="Directory where RTL Source will be copied to in TCL mode") parser.add_argument('-d', '--defines', nargs='+', default=[])