summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Speirs <bill.speirs@gmail.com>2014-10-16 12:06:54 -0400
committerClifford Wolf <clifford@clifford.at>2014-10-17 11:41:36 +0200
commit31267a1ae8d670c4b8749fc55b07c01d9285a488 (patch)
tree678fb6b416aef122cbb9b9affd5f9c702dc2ce03
parentfda52f05f277720e12aadb4716415ec9bff616a5 (diff)
Header changes so it will compile on VS
-rw-r--r--frontends/verific/verific.cc7
-rw-r--r--frontends/vhdl2verilog/vhdl2verilog.cc7
-rw-r--r--kernel/driver.cc7
-rw-r--r--kernel/yosys.cc10
-rw-r--r--kernel/yosys.h29
-rw-r--r--libs/ezsat/ezminisat.cc5
-rw-r--r--passes/abc/abc.cc7
-rw-r--r--passes/cmds/cover.cc13
-rw-r--r--passes/cmds/show.cc5
-rw-r--r--passes/hierarchy/hierarchy.cc6
10 files changed, 79 insertions, 17 deletions
diff --git a/frontends/verific/verific.cc b/frontends/verific/verific.cc
index 5e1894cf..44dfba0a 100644
--- a/frontends/verific/verific.cc
+++ b/frontends/verific/verific.cc
@@ -20,11 +20,14 @@
#include "kernel/yosys.h"
#include "kernel/sigtools.h"
#include "kernel/log.h"
-#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
-#include <dirent.h>
+
+#ifndef _WIN32
+# include <unistd.h>
+# include <dirent.h>
+#endif
USING_YOSYS_NAMESPACE
diff --git a/frontends/vhdl2verilog/vhdl2verilog.cc b/frontends/vhdl2verilog/vhdl2verilog.cc
index 39b4f149..82ff7b50 100644
--- a/frontends/vhdl2verilog/vhdl2verilog.cc
+++ b/frontends/vhdl2verilog/vhdl2verilog.cc
@@ -20,14 +20,17 @@
#include "kernel/register.h"
#include "kernel/sigtools.h"
#include "kernel/log.h"
-#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
-#include <dirent.h>
#include <errno.h>
#include <limits.h>
+#ifndef _WIN32
+# include <unistd.h>
+# include <dirent.h>
+#endif
+
YOSYS_NAMESPACE_BEGIN
struct Vhdl2verilogPass : public Pass {
diff --git a/kernel/driver.cc b/kernel/driver.cc
index 8117a61c..7f2cdb32 100644
--- a/kernel/driver.cc
+++ b/kernel/driver.cc
@@ -27,11 +27,14 @@
#include <stdio.h>
#include <string.h>
-#include <unistd.h>
-#include <libgen.h>
#include <limits.h>
#include <errno.h>
+#ifndef _WIN32
+# include <unistd.h>
+#endif
+
+
USING_YOSYS_NAMESPACE
int main(int argc, char **argv)
diff --git a/kernel/yosys.cc b/kernel/yosys.cc
index 1ce7b520..9c1cb58f 100644
--- a/kernel/yosys.cc
+++ b/kernel/yosys.cc
@@ -33,17 +33,21 @@
#elif defined(__APPLE__)
# include <mach-o/dyld.h>
#else
+# include <unistd.h>
+# include <dirent.h>
# include <sys/types.h>
# include <sys/stat.h>
#endif
-#include <unistd.h>
#include <limits.h>
-#include <dirent.h>
#include <errno.h>
YOSYS_NAMESPACE_BEGIN
+#ifdef _WIN32
+const char *yosys_version_str = "Windows";
+#endif
+
int autoidx = 1;
RTLIL::Design *yosys_design = NULL;
@@ -325,10 +329,10 @@ void yosys_shutdown()
#ifdef YOSYS_ENABLE_PLUGINS
for (auto &it : loaded_plugins)
dlclose(it.second);
-#endif
loaded_plugins.clear();
loaded_plugin_aliases.clear();
+#endif
}
RTLIL::IdString new_id(std::string file, int line, std::string func)
diff --git a/kernel/yosys.h b/kernel/yosys.h
index 239146d7..e4465edf 100644
--- a/kernel/yosys.h
+++ b/kernel/yosys.h
@@ -68,6 +68,30 @@
# include <tcl.h>
#endif
+// a few platform specific things
+#ifdef _WIN32
+# define NOMINMAX
+# include <Windows.h>
+# include <stdint.h> // takes care of a number of typedefs
+# include <io.h>
+# include <direct.h>
+
+// these are always a bit dangerous :-)
+# define strtok_r strtok_s
+# define strdup _strdup
+# define snprintf _snprintf
+# define access _access
+# define getcwd _getcwd
+# define mkdir _mkdir
+# define popen _popen
+# define pclose _pclose
+
+# define PATH_MAX MAX_PATH
+# define F_OK 00
+# define X_OK 00 // note this is NOT correct as there is no execute flag in Windows
+#endif
+
+
#define PRIVATE_NAMESPACE_BEGIN namespace {
#define PRIVATE_NAMESPACE_END }
#define YOSYS_NAMESPACE_BEGIN namespace Yosys {
@@ -85,6 +109,9 @@
#if !defined(__GNUC__) && !defined(__clang__)
# define __attribute__(...)
+# define _NORETURN_ __declspec(noreturn)
+#else
+# define _NORETURN_
#endif
YOSYS_NAMESPACE_BEGIN
@@ -96,7 +123,7 @@ namespace RTLIL {
struct Cell;
}
-std::string stringf(const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
+std::string stringf(const char *fmt, ...) __attribute__((format(printf, 1, 2)));
std::string vstringf(const char *fmt, va_list ap);
std::string next_token(std::string &text, const char *sep);
bool patmatch(const char *pattern, const char *string);
diff --git a/libs/ezsat/ezminisat.cc b/libs/ezsat/ezminisat.cc
index b996d4a3..dee82a8d 100644
--- a/libs/ezsat/ezminisat.cc
+++ b/libs/ezsat/ezminisat.cc
@@ -27,7 +27,10 @@
#include <stdint.h>
#include <csignal>
#include <cinttypes>
-#include <unistd.h>
+
+#ifndef _WIN32
+# include <unistd.h>
+#endif
#include "../minisat/Solver.h"
#include "../minisat/SimpSolver.h"
diff --git a/passes/abc/abc.cc b/passes/abc/abc.cc
index 89180439..79aa067d 100644
--- a/passes/abc/abc.cc
+++ b/passes/abc/abc.cc
@@ -43,15 +43,18 @@
#include "kernel/sigtools.h"
#include "kernel/cost.h"
#include "kernel/log.h"
-#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
-#include <dirent.h>
#include <cerrno>
#include <sstream>
#include <climits>
+#ifndef _WIN32
+# include <unistd.h>
+# include <dirent.h>
+#endif
+
#include "blifparse.h"
USING_YOSYS_NAMESPACE
diff --git a/passes/cmds/cover.cc b/passes/cmds/cover.cc
index 857d5aa4..b8baaf3d 100644
--- a/passes/cmds/cover.cc
+++ b/passes/cmds/cover.cc
@@ -17,9 +17,18 @@
*
*/
-#include <sys/types.h>
-#include <unistd.h>
#include "kernel/yosys.h"
+#include <sys/types.h>
+
+#ifndef _WIN32
+# include <unistd.h>
+#else
+# include <io.h>
+#endif
+
+#include "kernel/register.h"
+#include "kernel/rtlil.h"
+#include "kernel/log.h"
USING_YOSYS_NAMESPACE
PRIVATE_NAMESPACE_BEGIN
diff --git a/passes/cmds/show.cc b/passes/cmds/show.cc
index c6335cb3..1413742d 100644
--- a/passes/cmds/show.cc
+++ b/passes/cmds/show.cc
@@ -21,7 +21,10 @@
#include "kernel/celltypes.h"
#include "kernel/log.h"
#include <string.h>
-#include <dirent.h>
+
+#ifndef _WIN32
+# include <dirent.h>
+#endif
#ifdef YOSYS_ENABLE_READLINE
# include <readline/readline.h>
diff --git a/passes/hierarchy/hierarchy.cc b/passes/hierarchy/hierarchy.cc
index 4b414d3c..2a7e9634 100644
--- a/passes/hierarchy/hierarchy.cc
+++ b/passes/hierarchy/hierarchy.cc
@@ -21,7 +21,11 @@
#include <stdlib.h>
#include <stdio.h>
#include <set>
-#include <unistd.h>
+
+#ifndef _WIN32
+# include <unistd.h>
+#endif
+
USING_YOSYS_NAMESPACE
PRIVATE_NAMESPACE_BEGIN