Support for MinGW compiler. Need to instal MinGW compiler and runtime.
							parent
							
								
									3db9870669
								
							
						
					
					
						commit
						c33a406066
					
				
							
								
								
									
										24
									
								
								build.sh
								
								
								
								
							
							
						
						
									
										24
									
								
								build.sh
								
								
								
								
							| 
						 | 
				
			
			@ -92,7 +92,7 @@ check_ret() {
 | 
			
		|||
set_downloader() {
 | 
			
		||||
    test_program_installed wget
 | 
			
		||||
    if [[ $? -ne 0 ]] ; then
 | 
			
		||||
        DOWNLOADER=wget
 | 
			
		||||
        DOWNLOADER="wget -nd"
 | 
			
		||||
        DOWNLOADER_NAME=wget
 | 
			
		||||
        return
 | 
			
		||||
    fi
 | 
			
		||||
| 
						 | 
				
			
			@ -154,6 +154,23 @@ clang_version_ok() {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
set_cc() {
 | 
			
		||||
 | 
			
		||||
    # on Cygwin we MUST use the MinGW "cross-compiler", therefore check these first
 | 
			
		||||
    # furthermore, we prefer 64 bit over 32 bit versions if both are available
 | 
			
		||||
    test_programs_installed x86_64-w64-mingw32-gcc x86_64-w64-mingw32-g++
 | 
			
		||||
    if [[ $? -ne 0 ]] ; then
 | 
			
		||||
        [ -z "$CC" ] && CC=x86_64-w64-mingw32-gcc
 | 
			
		||||
        [ -z "$CXX" ] && CXX=x86_64-w64-mingw32-g++
 | 
			
		||||
        return
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    test_programs_installed i686-w64-mingw32-gcc i686-w64-mingw32-g++
 | 
			
		||||
    if [[ $? -ne 0 ]] ; then
 | 
			
		||||
        [ -z "$CC" ] && CC=i686-w64-mingw32-gcc
 | 
			
		||||
        [ -z "$CXX" ] && CXX=i686-w64-mingw32-g++
 | 
			
		||||
        return
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    test_programs_installed clang clang++
 | 
			
		||||
    if [[ $? -ne 0 ]] && clang_version_ok ; then
 | 
			
		||||
        [ -z "$CC" ] && CC=clang
 | 
			
		||||
| 
						 | 
				
			
			@ -161,6 +178,7 @@ set_cc() {
 | 
			
		|||
        return
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # gcc and g++ will fail to correctly build Factor on Cygwin
 | 
			
		||||
    test_programs_installed gcc g++
 | 
			
		||||
    if [[ $? -ne 0 ]] ; then
 | 
			
		||||
        [ -z "$CC" ] && CC=gcc
 | 
			
		||||
| 
						 | 
				
			
			@ -187,8 +205,8 @@ check_installed_programs() {
 | 
			
		|||
    ensure_program_installed uname
 | 
			
		||||
    ensure_program_installed git
 | 
			
		||||
    ensure_program_installed wget curl
 | 
			
		||||
    ensure_program_installed clang gcc
 | 
			
		||||
    ensure_program_installed clang++ g++ cl
 | 
			
		||||
    ensure_program_installed clang x86_64-w64-mingw32-gcc i686-w64-mingw32-gcc gcc
 | 
			
		||||
    ensure_program_installed clang++ x86_64-w64-mingw32-g++ i686-w64-mingw32-g++ g++ cl
 | 
			
		||||
    ensure_program_installed make gmake
 | 
			
		||||
    ensure_program_installed md5sum md5
 | 
			
		||||
    ensure_program_installed cut
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
SITE_CFLAGS += -mno-cygwin -mwindows
 | 
			
		||||
SITE_CFLAGS += -mwindows
 | 
			
		||||
CFLAGS_CONSOLE += -mconsole
 | 
			
		||||
SHARED_FLAG = -shared
 | 
			
		||||
SHARED_DLL_EXTENSION=.dll
 | 
			
		||||
| 
						 | 
				
			
			@ -7,7 +7,7 @@ LIBS = -lm
 | 
			
		|||
 | 
			
		||||
PLAF_DLL_OBJS += vm/os-windows.o vm/mvm-windows.o
 | 
			
		||||
PLAF_EXE_OBJS += vm/resources.o vm/main-windows.o
 | 
			
		||||
PLAF_MASTER_HEADERS += vm/os-windows.hpp vm/mvm-windows.hpp
 | 
			
		||||
PLAF_MASTER_HEADERS += vm/os-windows.hpp
 | 
			
		||||
 | 
			
		||||
EXE_SUFFIX=
 | 
			
		||||
EXE_EXTENSION=.exe
 | 
			
		||||
| 
						 | 
				
			
			@ -15,5 +15,5 @@ DLL_SUFFIX=
 | 
			
		|||
DLL_EXTENSION=.dll
 | 
			
		||||
CONSOLE_EXTENSION=.com
 | 
			
		||||
 | 
			
		||||
LINKER = $(CPP) -shared -mno-cygwin -o 
 | 
			
		||||
LINKER = $(CPP) -shared -o 
 | 
			
		||||
LINK_WITH_ENGINE = -l$(DLL_PREFIX)factor$(DLL_SUFFIX)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
PLAF_DLL_OBJS += vm/os-windows-x86.32.o
 | 
			
		||||
PLAF_MASTER_HEADERS += vm/os-windows.32.hpp
 | 
			
		||||
DLL_PATH=http://factorcode.org/dlls
 | 
			
		||||
WINDRES=windres
 | 
			
		||||
WINDRES=windres -F pe-i386
 | 
			
		||||
include vm/Config.windows
 | 
			
		||||
include vm/Config.x86.32
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,6 +43,8 @@
 | 
			
		|||
#elif defined(__INTEL_COMPILER)
 | 
			
		||||
#define FACTOR_COMPILER_VERSION \
 | 
			
		||||
  "Intel C Compiler " FACTOR_STRINGIZE(__INTEL_COMPILER)
 | 
			
		||||
#elif defined(__MINGW32__)
 | 
			
		||||
#define FACTOR_COMPILER_VERSION "MinGW (GCC " __VERSION__ ")"
 | 
			
		||||
#elif defined(__GNUC__)
 | 
			
		||||
#define FACTOR_COMPILER_VERSION "GCC " __VERSION__
 | 
			
		||||
#elif defined(_MSC_FULL_VER)
 | 
			
		||||
| 
						 | 
				
			
			@ -79,7 +81,7 @@
 | 
			
		|||
#error "Unsupported architecture"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(_MSC_VER)
 | 
			
		||||
#if defined(_MSC_VER) || defined (__MINGW32__)
 | 
			
		||||
#define WINDOWS
 | 
			
		||||
#define WINNT
 | 
			
		||||
#elif defined(WIN32)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -185,12 +185,14 @@ uint64_t nano_count() {
 | 
			
		|||
 | 
			
		||||
void sleep_nanos(uint64_t nsec) { Sleep((DWORD)(nsec / 1000000)); }
 | 
			
		||||
 | 
			
		||||
#ifndef EXCEPTION_DISPOSITION
 | 
			
		||||
typedef enum _EXCEPTION_DISPOSITION {
 | 
			
		||||
  ExceptionContinueExecution = 0,
 | 
			
		||||
  ExceptionContinueSearch = 1,
 | 
			
		||||
  ExceptionNestedException = 2,
 | 
			
		||||
  ExceptionCollidedUnwind = 3
 | 
			
		||||
} EXCEPTION_DISPOSITION;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
LONG factor_vm::exception_handler(PEXCEPTION_RECORD e, void* frame, PCONTEXT c,
 | 
			
		||||
                                  void* dispatch) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue