summaryrefslogtreecommitdiff
path: root/kernel/driver.cc
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/driver.cc')
-rw-r--r--kernel/driver.cc28
1 files changed, 28 insertions, 0 deletions
diff --git a/kernel/driver.cc b/kernel/driver.cc
index 116df542..6df7cf2e 100644
--- a/kernel/driver.cc
+++ b/kernel/driver.cc
@@ -72,6 +72,32 @@ int getopt(int argc, char **argv, const char *optstring)
USING_YOSYS_NAMESPACE
+#ifdef EMSCRIPTEN
+
+extern "C" int main(int, char**);
+extern "C" void run(const char*);
+extern "C" const char *prompt();
+
+int main(int, char**)
+{
+ log_files.push_back(stdout);
+ log_error_stderr = true;
+ yosys_banner();
+ yosys_setup();
+}
+
+void run(const char *command)
+{
+ run_pass(command);
+}
+
+const char *prompt()
+{
+ return create_prompt(yosys_get_design(), 0);
+}
+
+#else /* EMSCRIPTEN */
+
int main(int argc, char **argv)
{
std::string frontend_command = "auto";
@@ -440,3 +466,5 @@ int main(int argc, char **argv)
return 0;
}
+#endif /* EMSCRIPTEN */
+