Changes to enable cross-compilation on linux of both windows and linux binaries

This commit is contained in:
Ubuntu
2014-07-24 14:25:50 +02:00
parent 4c7b8cb447
commit dc2dbbf716
8 changed files with 19814 additions and 151835 deletions

5
.gitignore vendored
View File

@@ -2,6 +2,11 @@ src/*.exe
src/casinocoin src/casinocoin
src/casinocoind src/casinocoind
src/test_casinocoin src/test_casinocoin
src/obj/*
casinocoin-qt_plugin_import.cpp
object_script.casinocoin-qt.Debug
object_script.casinocoin-qt.Release
release/*
.*.swp .*.swp
*.*~* *.*~*
*.bak *.bak

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -19,19 +19,33 @@ CONFIG += thread
# BOOST_INCLUDE_PATH, BOOST_LIB_PATH, BDB_INCLUDE_PATH, # BOOST_INCLUDE_PATH, BOOST_LIB_PATH, BDB_INCLUDE_PATH,
# BDB_LIB_PATH, OPENSSL_INCLUDE_PATH and OPENSSL_LIB_PATH respectively # BDB_LIB_PATH, OPENSSL_INCLUDE_PATH and OPENSSL_LIB_PATH respectively
#BOOST_LIB_SUFFIX=-mgw48-mt-s-1_55 win32 {
#BOOST_INCLUDE_PATH=C:/deps/boost_1_55_0 BOOST_LIB_SUFFIX=-mt
BOOST_INCLUDE_PATH=/usr/include/boost BOOST_THREAD_LIB_SUFFIX=_win32-mt
#BOOST_LIB_PATH=C:/deps/boost_1_55_0/stage/lib #BOOST_INCLUDE_PATH=C:/deps/boost_1_55_0
BOOST_LIB_PATH=/usr/include/boost/stage/lib #BOOST_INCLUDE_PATH=/home/ubuntu/deps/windows/boost_1_55_0
BDB_INCLUDE_PATH=C:/deps/db-4.8.30.NC/build_unix #BOOST_LIB_PATH=C:/deps/boost_1_55_0/stage/lib
BDB_LIB_PATH=C:/deps/db-4.8.30.NC/build_unix #BOOST_LIB_PATH=/home/ubuntu/deps/windows/boost_1_55_0/stage/lib
OPENSSL_INCLUDE_PATH=C:/deps/openssl-1.0.1g/include BDB_INCLUDE_PATH=/home/ubuntu/deps/windows/db-4.8.30.NC/build_unix
OPENSSL_LIB_PATH=C:/deps/openssl-1.0.1g BDB_LIB_PATH=/home/ubuntu/deps/windows/db-4.8.30.NC/build_unix
MINIUPNPC_INCLUDE_PATH=C:/deps/ OPENSSL_INCLUDE_PATH=/home/ubuntu/deps/windows/openssl-1.0.1h/include
MINIUPNPC_LIB_PATH=C:/deps/miniupnpc OPENSSL_LIB_PATH=/home/ubuntu/deps/windows/openssl-1.0.1h
QRENCODE_INCLUDE_PATH=C:/deps/qrencode-3.4.3 MINIUPNPC_INCLUDE_PATH=/home/ubuntu/deps/windows/
QRENCODE_LIB_PATH=C:/deps/qrencode-3.4.3/.libs MINIUPNPC_LIB_PATH=/home/ubuntu/deps/windows/miniupnpc
QRENCODE_INCLUDE_PATH=/home/ubuntu/deps/windows/qrencode-3.4.3
QRENCODE_LIB_PATH=/home/ubuntu/deps/windows/qrencode-3.4.3/.libs
} else {
BOOST_INCLUDE_PATH=/home/ubuntu/deps/linux/boost_1_55_0
BOOST_LIB_PATH=/home/ubuntu/deps/linux/boost_1_55_0/stage/lib
BDB_INCLUDE_PATH=/home/ubuntu/deps/linux/db-4.8.30.NC/build_unix
BDB_LIB_PATH=/home/ubuntu/deps/linux/db-4.8.30.NC/build_unix
OPENSSL_INCLUDE_PATH=/home/ubuntu/deps/linux/openssl-1.0.1h/include
OPENSSL_LIB_PATH=/home/ubuntu/deps/linux/openssl-1.0.1h
MINIUPNPC_INCLUDE_PATH=/home/ubuntu/deps/linux/
MINIUPNPC_LIB_PATH=/home/ubuntu/deps/linux/miniupnpc
QRENCODE_INCLUDE_PATH=/home/ubuntu/deps/linux/qrencode-3.4.3
QRENCODE_LIB_PATH=/home/ubuntu/deps/linux/qrencode-3.4.3/.libs
}
OBJECTS_DIR = build OBJECTS_DIR = build
MOC_DIR = build MOC_DIR = build
@@ -146,7 +160,7 @@ QMAKE_CLEAN += $$PWD/src/leveldb/libleveldb.a; cd $$PWD/src/leveldb ; $(MAKE) cl
DEFINES += HAVE_BUILD_INFO DEFINES += HAVE_BUILD_INFO
} }
QMAKE_CXXFLAGS_WARN_ON = -fdiagnostics-show-option -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -Wstack-protector QMAKE_CXXFLAGS_WARN_ON = -fdiagnostics-show-option -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -Wno-unused-local-typedefs -Wno-strict-aliasing -Wstack-protector
# Input # Input
DEPENDPATH += src src/json src/qt DEPENDPATH += src src/json src/qt
@@ -356,8 +370,9 @@ CODECFORTR = UTF-8
TRANSLATIONS = $$files(src/qt/locale/bitcoin_*.ts) TRANSLATIONS = $$files(src/qt/locale/bitcoin_*.ts)
isEmpty(QMAKE_LRELEASE) { isEmpty(QMAKE_LRELEASE) {
win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe # win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe
else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease # else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
} }
isEmpty(QM_DIR):QM_DIR = $$PWD/src/qt/locale isEmpty(QM_DIR):QM_DIR = $$PWD/src/qt/locale
# automatically build translations, so they can be included in resource file # automatically build translations, so they can be included in resource file

View File

@@ -2,37 +2,47 @@
# Distributed under the MIT/X11 software license, see the accompanying # Distributed under the MIT/X11 software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php. # file COPYING or http://www.opensource.org/licenses/mit-license.php.
DEPSDIR:=/usr/i686-w64-mingw32 DEPSDIR:=/home/ubuntu/deps/windows
BINPATH=/home/ubuntu/mxe/usr/bin
PREFIX=i686-w64-mingw32.static
BASEDIR=/home/ubuntu/mxe/usr/$(PREFIX)
CC := i686-w64-mingw32-gcc CC=$(BINPATH)/$(PREFIX)-gcc
CXX := i686-w64-mingw32-g++ CXX=$(BINPATH)/$(PREFIX)-g++
CPP=$(BINPATH)/$(PREFIX)-cpp
RANLIB=$(BINPATH)/$(PREFIX)-ranlib
USE_UPNP:=0 USE_UPNP:=0
USE_IPV6:=1 USE_IPV6:=1
INCLUDEPATHS= \ INCLUDEPATHS= \
-I"$(CURDIR)" \ -I"$(CURDIR)" \
-I"$(CURDIR)"/obj \ -I"$(CURDIR)/obj" \
-I"$(DEPSDIR)/include" \ -I"$(DEPSDIR)" \
-I"$(DEPSDIR)" -I"$(DEPSDIR)/db-4.8.30.NC/build_unix" \
-I"$(DEPSDIR)/openssl-1.0.1h/include" \
-I"$(BASEDIR)/include"
LIBPATHS= \ LIBPATHS= \
-L"$(DEPSDIR)/lib" -L"$(DEPSDIR)/miniupnpc" \
-L"$(DEPSDIR)/db-4.8.30.NC/build_unix" \
-L"$(DEPSDIR)/openssl-1.0.1h" \
-L"$(BASEDIR)/lib"
LIBS= \ LIBS= \
$(CURDIR)/leveldb/libleveldb.a $(CURDIR)/leveldb/libmemenv.a \ $(CURDIR)/leveldb/libleveldb.a $(CURDIR)/leveldb/libmemenv.a \
-l boost_system-mt-s \ -l boost_system-mt \
-l boost_filesystem-mt-s \ -l boost_filesystem-mt \
-l boost_program_options-mt-s \ -l boost_program_options-mt \
-l boost_thread_win32-mt-s \ -l boost_thread_win32-mt \
-l boost_chrono-mt-s \ -l boost_chrono-mt \
-l db_cxx \ -l db_cxx \
-l ssl \ -l ssl \
-l crypto -l crypto
DEFS=-D_MT -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADSAFE DEFS=-D_MT -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADSAFE
DEBUGFLAGS=-g DEBUGFLAGS=-g
xCXXFLAGS=-O2 -w -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS) $(CXXFLAGS) xCXXFLAGS=-O2 -w -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -Wno-unused-local-typedefs -Wno-strict-aliasing $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS) $(CXXFLAGS)
# enable: ASLR, DEP and large address aware # enable: ASLR, DEP and large address aware
xLDFLAGS=-Wl,--dynamicbase -Wl,--nxcompat -Wl,--large-address-aware -static-libgcc -static-libstdc++ $(LDFLAGS) xLDFLAGS=-Wl,--dynamicbase -Wl,--nxcompat -Wl,--large-address-aware -static-libgcc -static-libstdc++ $(LDFLAGS)
@@ -101,7 +111,7 @@ all: casinocoind.exe
DEFS += -I"$(CURDIR)/leveldb/include" DEFS += -I"$(CURDIR)/leveldb/include"
DEFS += -I"$(CURDIR)/leveldb/helpers" DEFS += -I"$(CURDIR)/leveldb/helpers"
leveldb/libleveldb.a: leveldb/libleveldb.a:
@echo "Building LevelDB ..." && cd leveldb && TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libleveldb.a libmemenv.a && i686-w64-mingw32-ranlib libleveldb.a && i686-w64-mingw32-ranlib libmemenv.a && cd .. @echo "Building LevelDB ..." && cd leveldb && TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libleveldb.a libmemenv.a && $(RANLIB) libleveldb.a && $(RANLIB) libmemenv.a && cd ..
obj/build.h: FORCE obj/build.h: FORCE
/bin/sh ../share/genbuild.sh obj/build.h /bin/sh ../share/genbuild.sh obj/build.h

View File

@@ -5,18 +5,34 @@
# :=0 --> UPnP support turned off by default at runtime # :=0 --> UPnP support turned off by default at runtime
# :=1 --> UPnP support turned on by default at runtime # :=1 --> UPnP support turned on by default at runtime
# :=- --> No UPnP support - miniupnp not required # :=- --> No UPnP support - miniupnp not required
USE_UPNP:=0 USE_UPNP:=-
# :=1 --> Enable IPv6 support # :=1 --> Enable IPv6 support
# :=0 --> Disable IPv6 support # :=0 --> Disable IPv6 support
USE_IPV6:=1 USE_IPV6:=1
# :=1 --> Enable QR Code support
# :=0 --> Disable QR Code support
USE_QRCODE=1
# define libraries
BOOST_LIB_PATH=/home/ubuntu/deps/linux/boost_1_55_0/stage/lib
BDB_LIB_PATH=/home/ubuntu/deps/linux/db-4.8.30.NC/build_unix
OPENSSL_LIB_PATH=/home/ubuntu/deps/linux/openssl-1.0.1h
MINIUPNPC_LIB_PATH=/home/ubuntu/deps/linux/miniupnpc
# define includes
BOOST_INCLUDE_PATH=/home/ubuntu/deps/linux/boost_1_55_0
BDB_INCLUDE_PATH=/home/ubuntu/deps/linux/db-4.8.30.NC/build_unix
OPENSSL_INCLUDE_PATH=/home/ubuntu/deps/linux/openssl-1.0.1h
MINIUPNPC_INCLUDE_PATH=/home/ubuntu/deps/linux
LINK:=$(CXX) LINK:=$(CXX)
DEFS=-DBOOST_SPIRIT_THREADSAFE -D_FILE_OFFSET_BITS=64 DEFS=-DBOOST_SPIRIT_THREADSAFE -D_FILE_OFFSET_BITS=64
DEFS += $(addprefix -I,$(CURDIR) $(CURDIR)/obj $(BOOST_INCLUDE_PATH) $(BDB_INCLUDE_PATH) $(OPENSSL_INCLUDE_PATH)) DEFS += $(addprefix -I,$(CURDIR) $(CURDIR)/obj $(BOOST_INCLUDE_PATH) $(BDB_INCLUDE_PATH) $(OPENSSL_INCLUDE_PATH) $(MINIUPNPC_INCLUDE_PATH))
LIBS = $(addprefix -L,$(BOOST_LIB_PATH) $(BDB_LIB_PATH) $(OPENSSL_LIB_PATH)) LIBS = $(addprefix -L,$(BOOST_LIB_PATH) $(BDB_LIB_PATH) $(OPENSSL_LIB_PATH) $(MINIUPNPC_LIB_PATH))
TESTDEFS = -DTEST_DATA_DIR=$(abspath test/data) TESTDEFS = -DTEST_DATA_DIR=$(abspath test/data)

View File

@@ -1 +0,0 @@
To avoid compile error.

View File

@@ -9,9 +9,9 @@
#include <stdarg.h> #include <stdarg.h>
#ifndef WIN32
#include <sys/types.h> #include <sys/types.h>
#include <sys/time.h> #include <sys/time.h>
#ifndef WIN32
#include <sys/resource.h> #include <sys/resource.h>
#endif #endif
#include <map> #include <map>