Add MSYS2-compatible build.
authorWilliam D. Jones <thor0505@comcast.net>
Tue, 16 Aug 2016 18:41:37 +0000 (14:41 -0400)
committerWilliam D. Jones <thor0505@comcast.net>
Tue, 16 Aug 2016 18:41:59 +0000 (14:41 -0400)
Makefile
kernel/yosys.cc

index 77279494e1bd7bff2d1c33aabaf9b3679931ee84..7054bf55d9ef6281c2d8ded0bc38e90ebaee5461 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -4,6 +4,7 @@ CONFIG := clang
 # CONFIG := gcc-4.8
 # CONFIG := emcc
 # CONFIG := mxe
+CONFIG := msys2
 
 # features (the more the better)
 ENABLE_TCL := 1
@@ -172,8 +173,19 @@ ABCMKARGS += ARCHFLAGS="-DSIZEOF_VOID_P=4 -DSIZEOF_LONG=4 -DSIZEOF_INT=4 -DWIN32
 ABCMKARGS += LIBS="lib/x86/pthreadVC2.lib -s" ABC_USE_NO_READLINE=1 CC="$(CXX)" CXX="$(CXX)"
 EXE = .exe
 
+else ifeq ($(CONFIG),msys2)
+CXX = i686-w64-mingw32-gcc
+LD = i686-w64-mingw32-gcc
+CXXFLAGS += -std=c++11 -Os -D_POSIX_SOURCE -DYOSYS_WIN32_UNIX_DIR
+CXXFLAGS := $(filter-out -fPIC,$(CXXFLAGS))
+LDFLAGS := $(filter-out -rdynamic,$(LDFLAGS)) -s
+LDLIBS := $(filter-out -lrt,$(LDLIBS))
+ABCMKARGS += ARCHFLAGS="-DSIZEOF_VOID_P=4 -DSIZEOF_LONG=4 -DSIZEOF_INT=4 -DWIN32_NO_DLL -DHAVE_STRUCT_TIMESPEC -x c++ -fpermissive -w"
+ABCMKARGS += LIBS="lib/x86/pthreadVC2.lib -s" ABC_USE_NO_READLINE=0 CC="$(CXX)" CXX="$(CXX)"
+EXE = .exe
+
 else ifneq ($(CONFIG),none)
-$(error Invalid CONFIG setting '$(CONFIG)'. Valid values: clang, gcc, gcc-4.8, emcc, none)
+$(error Invalid CONFIG setting '$(CONFIG)'. Valid values: clang, gcc, gcc-4.8, emcc, mxe, msys2)
 endif
 
 ifeq ($(ENABLE_LIBYOSYS),1)
@@ -514,6 +526,9 @@ config-mxe: clean
        echo 'ENABLE_PLUGINS := 0' >> Makefile.conf
        echo 'ENABLE_READLINE := 0' >> Makefile.conf
 
+config-msys2: clean
+       echo 'CONFIG := msys2' > Makefile.conf
+
 config-gprof: clean
        echo 'CONFIG := gcc' > Makefile.conf
        echo 'ENABLE_GPROF := 1' >> Makefile.conf
@@ -536,4 +551,3 @@ echo-git-rev:
 
 .PHONY: all top-all abc test install install-abc manual clean mrproper qtcreator
 .PHONY: config-clean config-clang config-gcc config-gcc-4.8 config-gprof config-sudo
-
index 42ccf13f7deec429dab2ba33393ec2b21f349781..17f6847b5061491423b83cb3db12867fc6c1e1e6 100644 (file)
@@ -687,7 +687,7 @@ std::string proc_share_dirname()
 std::string proc_share_dirname()
 {
        std::string proc_self_path = proc_self_dirname();
-#  ifdef _WIN32
+#  if defined(_WIN32) && !defined(YOSYS_WIN32_UNIX_DIR)
        std::string proc_share_path = proc_self_path + "share\\";
        if (check_file_exists(proc_share_path, true))
                return proc_share_path;
@@ -1130,4 +1130,3 @@ struct ScriptCmdPass : public Pass {
 } ScriptCmdPass;
 
 YOSYS_NAMESPACE_END
-