Thank you for posting that it is possible - I've been pondering away most of the night without a terrible amount of success. Any chance you could link me your Makefile.mingw? I know there are some problems in there (as the included one wasn't even including scrypt-jane.o in the objects and didn't have the algorithms chosen in the compiler flags like the unix makefile has).
The only dependancy differences I'm noting is that you used boost 1.50 and I've used boost 1.53 - I'm still getting the error I mentioned above, but now that it's actually trying to include scrypt-jane, I've got a whole host of other errors for that which don't make a lot of sense...
Sure. This only gets you so far, have to do the qt pro build afterwards. I think I wasted a lot of time trying to build from within MSYS but ultimately ran this from CMD.
mingw32-make -f makefile.mingw
# Copyright (c) 2009-2010 Satoshi Nakamoto
# Distributed under the MIT/X11 software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
USE_UPNP:=0
USE_IPV6:=1
INCLUDEPATHS= \
-I"d:\boost-1.50.0-mgw" \
-I"d:\db-4.8.30.NC-mgw\build_unix" \
-I"d:\openssl-1.0.1e-mgw\include"
LIBPATHS= \
-L"d:\boost-1.50.0-mgw\stage\lib" \
-L"d:\db-4.8.30.NC-mgw\build_unix" \
-L"d:\openssl-1.0.1e-mgw"
LIBS= \
-l boost_system-mgw46-mt-s-1_50 \
-l boost_filesystem-mgw46-mt-s-1_50 \
-l boost_program_options-mgw46-mt-s-1_50 \
-l boost_thread-mgw46-mt-s-1_50 \
-l boost_chrono-mgw46-mt-s-1_50 \
-l db_cxx \
-l ssl \
-l crypto
DEFS=-DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADSAFE
DEBUGFLAGS=-g
CFLAGS=-mthreads -O2 -msse2 -w -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
LDFLAGS=-Wl,--dynamicbase -Wl,--nxcompat
# scrypt-jane specific parameters
DEFS+=-DSCRYPT_KECCAK512 -DSCRYPT_CHACHA -DSCRYPT_CHOOSE_COMPILETIME
xCXXFLAGS_SCRYPT_JANE=-O3 -msse2 -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter \
$(DEBUGFLAGS) $(DEFS) $(HARDENING) $(CXXFLAGS)
TESTDEFS = -DTEST_DATA_DIR=$(abspath test/data)
ifndef USE_UPNP
override USE_UPNP = -
endif
ifneq (${USE_UPNP}, -)
INCLUDEPATHS += -I"d:\miniupnpc-1.8-mgw"
LIBPATHS += -L"d:\miniupnpc-1.8-mgw\miniupnpc"
LIBS += -l miniupnpc -l iphlpapi
DEFS += -DSTATICLIB -DUSE_UPNP=$(USE_UPNP)
endif
ifneq (${USE_IPV6}, -)
DEFS += -DUSE_IPV6=$(USE_IPV6)
endif
LIBS += -l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l winmm -l shell32 -l comctl32 -l ole32 -l oleaut32 -l uuid -l rpcrt4 -l advapi32 -l ws2_32 -l mswsock -l shlwapi
# TODO: make the mingw builds smarter about dependencies, like the linux/osx builds are
HEADERS = $(wildcard *.h)
OBJS= \
obj/alert.o \
obj/version.o \
obj/checkpoints.o \
obj/netbase.o \
obj/addrman.o \
obj/crypter.o \
obj/key.o \
obj/db.o \
obj/init.o \
obj/irc.o \
obj/keystore.o \
obj/main.o \
obj/net.o \
obj/protocol.o \
obj/bitcoinrpc.o \
obj/rpcdump.o \
obj/rpcnet.o \
obj/rpcmining.o \
obj/rpcwallet.o \
obj/rpcblockchain.o \
obj/rpcrawtransaction.o \
obj/script.o \
obj/sync.o \
obj/util.o \
obj/wallet.o \
obj/walletdb.o \
obj/noui.o \
obj/kernel.o \
obj/pbkdf2.o \
obj/scrypt_mine.o \
obj/scrypt-x86.o \
obj/scrypt-x86_64.o \
obj/scrypt-jane.o
all: yacoind.exe
test check: test_yacoin.exe FORCE
test_yacoin.exe
obj/%.o: %.cpp $(HEADERS)
g++ -c $(CFLAGS) -o $@ $<
obj/scrypt-x86.o: scrypt-x86.S
$(CXX) -c $(xCXXFLAGS) -MMD -o $@ $<
obj/scrypt-x86_64.o: scrypt-x86_64.S
$(CXX) -c $(xCXXFLAGS) -MMD -o $@ $<
obj/scrypt-jane.o: scrypt-jane/scrypt-jane.c
gcc -c $(xCXXFLAGS_SCRYPT_JANE) -MMD -o $@ $<
yacoind.exe: $(OBJS:obj/%=obj/%)
g++ $(CFLAGS) $(LDFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp))
obj-test/%.o: test/%.cpp $(HEADERS)
g++ -c $(TESTDEFS) $(CFLAGS) -o $@ $<
test_bitcoin.exe: $(TESTOBJS) $(filter-out obj/init.o,$(OBJS:obj/%=obj/%))
g++ $(CFLAGS) $(LDFLAGS) -o $@ $(LIBPATHS) $^ -lboost_unit_test_framework $(LIBS)
clean:
-del /Q yacoind test_yacoin
-del /Q obj\*
-del /Q obj-test\*
FORCE: