makefile.mingw 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. # ECOin - Copyright (c) - 2014/2022 - GPLv3 - epsylon@riseup.net (https://03c8.net)
  2. USE_UPNP:=0
  3. USE_IPV6:=1
  4. INCLUDEPATHS= \
  5. -I"C:\boost-1.55.0-mgw" \
  6. -I"C:\db-6.0.20.NC-mgw\build_unix" \
  7. -I"C:\openssl-1.0.1g-mgw\include"
  8. LIBPATHS= \
  9. -L"C:\boost-1.55.0-mgw\stage\lib" \
  10. -L"C:\db-6.0.20.NC-mgw\build_unix" \
  11. -L"C:\openssl-1.0.1c-mgw"
  12. LIBS= \
  13. -l boost_system-mgw44-mt-1_55 \
  14. -l boost_filesystem-mgw44-mt-1_55 \
  15. -l boost_program_options-mgw44-mt-1_55 \
  16. -l boost_thread-mgw44-mt-1_55 \
  17. -l boost_chrono-mgw44-mt-1_55 \
  18. -l db_cxx \
  19. -l ssl \
  20. -l crypto
  21. DEFS=-DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADSAFE
  22. DEBUGFLAGS=-g
  23. CFLAGS=-mthreads -O3 -msse2 -w -Wall -Wextra -Wno-ignored-qualifiers -Wformat -Wformat-security -Wno-unused-parameter $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
  24. LDFLAGS=-Wl,--dynamicbase -Wl,--nxcompat
  25. TESTDEFS = -DTEST_DATA_DIR=$(abspath test/data)
  26. ifndef USE_UPNP
  27. override USE_UPNP = -
  28. endif
  29. ifneq (${USE_UPNP}, -)
  30. INCLUDEPATHS += -I"C:\miniupnpc-1.6-mgw"
  31. LIBPATHS += -L"C:\miniupnpc-1.6-mgw"
  32. LIBS += -l miniupnpc -l iphlpapi
  33. DEFS += -DSTATICLIB -DUSE_UPNP=$(USE_UPNP)
  34. endif
  35. ifneq (${USE_IPV6}, -)
  36. DEFS += -DUSE_IPV6=$(USE_IPV6)
  37. endif
  38. 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
  39. # TODO: make the mingw builds smarter about dependencies, like the linux/osx builds are
  40. HEADERS = $(wildcard *.h)
  41. OBJS= \
  42. obj/alert.o \
  43. obj/version.o \
  44. obj/checkpoints.o \
  45. obj/netbase.o \
  46. obj/addrman.o \
  47. obj/crypter.o \
  48. obj/key.o \
  49. obj/db.o \
  50. obj/init.o \
  51. obj/irc.o \
  52. obj/keystore.o \
  53. obj/main.o \
  54. obj/miner.o \
  55. obj/net.o \
  56. obj/protocol.o \
  57. obj/ecoinrpc.o \
  58. obj/rpcdump.o \
  59. obj/rpcnet.o \
  60. obj/rpcmining.o \
  61. obj/rpcwallet.o \
  62. obj/rpcblockchain.o \
  63. obj/rpcrawtransaction.o \
  64. obj/script.o \
  65. obj/sync.o \
  66. obj/util.o \
  67. obj/wallet.o \
  68. obj/walletdb.o \
  69. obj/noui.o \
  70. obj/kernel.o \
  71. obj/pbkdf2.o \
  72. obj/scrypt.o \
  73. obj/scrypt-x86.o \
  74. obj/scrypt-x86_64.o \
  75. obj/zerocoin/Accumulator.o \
  76. obj/zerocoin/AccumulatorProofOfKnowledge.o \
  77. obj/zerocoin/Coin.o \
  78. obj/zerocoin/CoinSpend.o \
  79. obj/zerocoin/Commitment.o \
  80. obj/zerocoin/ParamGeneration.o \
  81. obj/zerocoin/Params.o \
  82. obj/zerocoin/SerialNumberSignatureOfKnowledge.o \
  83. obj/zerocoin/SpendMetaData.o \
  84. obj/zerocoin/ZeroTest.o
  85. all: ecoind.exe
  86. LIBS += $(CURDIR)/leveldb/libleveldb.a $(CURDIR)/leveldb/libmemenv.a
  87. DEFS += $(addprefix -I,$(CURDIR)/leveldb/include)
  88. DEFS += $(addprefix -I,$(CURDIR)/leveldb/helpers)
  89. OBJS += obj/txdb-leveldb.o
  90. leveldb/libleveldb.a:
  91. cd leveldb; make; cd ..
  92. obj/txdb-leveldb.o: leveldb/libleveldb.a
  93. obj/%.o: %.cpp $(HEADERS)
  94. g++ -c $(CFLAGS) -o $@ $<
  95. obj/zerocoin/%.o: zerocoin/%.cpp
  96. g++ -c $(CFLAGS) -o $@ $<
  97. obj/scrypt-x86.o: scrypt-x86.S
  98. $(CXX) -c $(xCXXFLAGS) -MMD -o $@ $<
  99. obj/scrypt-x86_64.o: scrypt-x86_64.S
  100. $(CXX) -c $(xCXXFLAGS) -MMD -o $@ $<
  101. ecoind.exe: $(OBJS:obj/%=obj/%)
  102. g++ $(CFLAGS) $(LDFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
  103. clean:
  104. -del /Q ecoind
  105. -del /Q obj\*
  106. -del /Q obj\zerocoin\*
  107. FORCE: