mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-23 17:15:33 +00:00
Added "make mklibyosys", some minor API changes
This commit is contained in:
parent
3fe2441185
commit
1df81f92ce
7 changed files with 70 additions and 11 deletions
|
@ -291,7 +291,7 @@ int main(int argc, char **argv)
|
|||
}
|
||||
|
||||
while (optind < argc)
|
||||
run_frontend(argv[optind++], frontend_command, yosys_design, output_filename == "-" ? &backend_command : NULL, NULL);
|
||||
run_frontend(argv[optind++], frontend_command, output_filename == "-" ? &backend_command : NULL);
|
||||
|
||||
if (!scriptfile.empty()) {
|
||||
if (scriptfile_tcl) {
|
||||
|
@ -302,14 +302,14 @@ int main(int argc, char **argv)
|
|||
log_error("Can't exectue TCL script: this version of yosys is not built with TCL support enabled.\n");
|
||||
#endif
|
||||
} else
|
||||
run_frontend(scriptfile, "script", yosys_design, output_filename == "-" ? &backend_command : NULL, NULL);
|
||||
run_frontend(scriptfile, "script", output_filename == "-" ? &backend_command : NULL);
|
||||
}
|
||||
|
||||
for (auto it = passes_commands.begin(); it != passes_commands.end(); it++)
|
||||
run_pass(*it, yosys_design);
|
||||
run_pass(*it);
|
||||
|
||||
if (!backend_command.empty())
|
||||
run_backend(output_filename, backend_command, yosys_design);
|
||||
run_backend(output_filename, backend_command);
|
||||
|
||||
if (print_stats)
|
||||
{
|
||||
|
|
|
@ -679,8 +679,11 @@ static void handle_label(std::string &command, bool &from_to_active, const std::
|
|||
}
|
||||
}
|
||||
|
||||
void run_frontend(std::string filename, std::string command, RTLIL::Design *design, std::string *backend_command, std::string *from_to_label)
|
||||
void run_frontend(std::string filename, std::string command, std::string *backend_command, std::string *from_to_label, RTLIL::Design *design)
|
||||
{
|
||||
if (design == nullptr)
|
||||
design = yosys_design;
|
||||
|
||||
if (command == "auto") {
|
||||
if (filename.size() > 2 && filename.substr(filename.size()-2) == ".v")
|
||||
command = "verilog";
|
||||
|
@ -772,8 +775,16 @@ void run_frontend(std::string filename, std::string command, RTLIL::Design *desi
|
|||
Frontend::frontend_call(design, NULL, filename, command);
|
||||
}
|
||||
|
||||
void run_frontend(std::string filename, std::string command, RTLIL::Design *design)
|
||||
{
|
||||
run_frontend(filename, command, nullptr, nullptr, design);
|
||||
}
|
||||
|
||||
void run_pass(std::string command, RTLIL::Design *design)
|
||||
{
|
||||
if (design == nullptr)
|
||||
design = yosys_design;
|
||||
|
||||
log("\n-- Running command `%s' --\n", command.c_str());
|
||||
|
||||
Pass::call(design, command);
|
||||
|
@ -781,6 +792,9 @@ void run_pass(std::string command, RTLIL::Design *design)
|
|||
|
||||
void run_backend(std::string filename, std::string command, RTLIL::Design *design)
|
||||
{
|
||||
if (design == nullptr)
|
||||
design = yosys_design;
|
||||
|
||||
if (command == "auto") {
|
||||
if (filename.size() > 2 && filename.substr(filename.size()-2) == ".v")
|
||||
command = "verilog";
|
||||
|
@ -1025,9 +1039,9 @@ struct ScriptPass : public Pass {
|
|||
if (args.size() < 2)
|
||||
log_cmd_error("Missing script file.\n");
|
||||
else if (args.size() == 2)
|
||||
run_frontend(args[1], "script", design, NULL, NULL);
|
||||
run_frontend(args[1], "script", design);
|
||||
else if (args.size() == 3)
|
||||
run_frontend(args[1], "script", design, NULL, &args[2]);
|
||||
run_frontend(args[1], "script", NULL, &args[2], design);
|
||||
else
|
||||
extra_args(args, 2, design, false);
|
||||
}
|
||||
|
|
|
@ -253,9 +253,10 @@ std::string proc_self_dirname();
|
|||
std::string proc_share_dirname();
|
||||
const char *create_prompt(RTLIL::Design *design, int recursion_counter);
|
||||
|
||||
void run_frontend(std::string filename, std::string command, RTLIL::Design *design, std::string *backend_command, std::string *from_to_label);
|
||||
void run_pass(std::string command, RTLIL::Design *design);
|
||||
void run_backend(std::string filename, std::string command, RTLIL::Design *design);
|
||||
void run_pass(std::string command, RTLIL::Design *design = nullptr);
|
||||
void run_frontend(std::string filename, std::string command, std::string *backend_command, std::string *from_to_label = nullptr, RTLIL::Design *design = nullptr);
|
||||
void run_frontend(std::string filename, std::string command, RTLIL::Design *design = nullptr);
|
||||
void run_backend(std::string filename, std::string command, RTLIL::Design *design = nullptr);
|
||||
void shell(RTLIL::Design *design);
|
||||
|
||||
// from kernel/version_*.o (cc source generated from Makefile)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue