Remove UPNP support & do some cleanup.
[novacoin.git] / doc / crosscompiling_building Windows binary under Unix.txt
index aca5db0..54bc8c9 100644 (file)
@@ -6,7 +6,7 @@
 
 2) Установка MXE и зависимостей
  cd /home/<ваше имя>/
- git clone https://github.com/mxw/mxe.git
+ git clone https://github.com/mxe/mxe.git
  
 
 2.1) gcc
@@ -39,18 +39,6 @@ libz.a
  cd /home/<ваше имя>/mxe
  make boost
 
-Откройте файл /home/<ваше имя>/mxe/usr/i686-w64-mingw32.static/include/boost/interprocess/detail/win32_api.hpp
-и измените 
-#include <Wbemidl.h>
-#include <Objbase.h>
-#include <Shlobj.h>
-
-на
-
-#include <wbemidl.h>
-#include <objbase.h>
-#include <shlobj.h>
-
 Проверка что установка Boost прошла успешно:
 В /home/<ваше имя>/mxe/usr/i686-w64-mingw32.static/lib папке должны появиться файлы:
 -libboost_имябиблиотеки_mt.a (libboost_atomic-mt.a и другие подобные файлы)
@@ -61,7 +49,7 @@ libz.a
 2.4) Berkeley DB
 -Скачайте http://download.oracle.com/berkeley-db/db-6.0.20.tar.gz
 -Распакуйте в домашнюю папку
--Откройте файл /home/<ваше имя>/db-6.0.20/src/dbinc/winioctl.h
+-Откройте файл /home/<ваше имя>/db-6.0.20/src/dbinc/win_db.h
 -Измените 
 #include <WinIoCtl.h>
 на
@@ -78,59 +66,7 @@ libz.a
 libdb.a
 libdb_cxx.a
 
-2.5) Miniupnpc
--Скачайте http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.9.20141128.tar.gz
--Распакуйте в домашнюю папку
--Переименуйте папку miniupnpc-1.9.20141128 в miniupnpc
--Перейдите в папку miniupnpc и создайте файл miniupnpcstrings.h
--Напишите в нём:
-
-#ifndef MINIUPNPCSTRINGS_H_INCLUDED
-#define MINIUPNPCSTRINGS_H_INCLUDED
-
-#define OS_STRING "MSWindows/6.1.7601"
-#define MINIUPNPC_VERSION_STRING "1.9"
-
-#if 0
-/* according to "UPnP Device Architecture 1.0" */
-#define UPNP_VERSION_STRING "UPnP/1.0"
-#else
-/* according to "UPnP Device Architecture 1.1" */
-#define UPNP_VERSION_STRING "UPnP/1.1"
-#endif
-
-#endif
-
-и сохраните файл
--Откройте файл Makefile.mingw
--Измените строку 7:
-измените
- CC = gcc
-на
- CC=$(CROSS)gcc
-
--Удалите строки с 68 по 72
-
-wingenminiupnpcstrings:        wingenminiupnpcstrings.o
-
-wingenminiupnpcstrings.o:      wingenminiupnpcstrings.c
-
-miniupnpcstrings.h: miniupnpcstrings.h.in wingenminiupnpcstrings
-       wingenminiupnpcstrings $< $@
-
--Сохраните файл
-
--Откройте терминал
-
- export PATH=/home/<ваше имя>/mxe/usr/bin:$PATH
- make CROSS=i686-w64-mingw32.static- -f Makefile.mingw init upnpc-static
-
-
-Проверка, что установка Miniupnpc прошла успешно:
-В папке miniupnpc должен появиться файл libminiupnpc.a
-
-
-2.6) qrencode
+2.5) qrencode
 -Скачайте http://download.sourceforge.net/libpng/libpng-1.6.15.tar.gz?download
 -Распакуйте в домашнюю папку
 -Откройте терминал
@@ -162,7 +98,7 @@ libpng.a
 в папке /home/<ваше имя>/qrencode-3.4.4/.libs должен быть файл:
 libqrencode.a
 
-2.7 Qt 5 и Qt 4
+2.6 Qt 5 и Qt 4
 
 Qt 4
 -Откройте терминал
@@ -210,7 +146,6 @@ Using Qt version 5.4.0 in /home/<ваше имя>/mxe/usr/i686-w64-mingw32.stati
 -Вставьте 
 CC=$(CROSS)gcc
 CXX=$(CROSS)g++
--Поменяйте USE_UPNP:=0 на USE_UPNP:=1
 -Добавьте  строчку USE_ASM:=1
 -Поменяйте текущие INCLUDEPATHS, LIBPATHS, LIBS на:
 
@@ -225,7 +160,6 @@ INCLUDEPATHS= \
 LIBPATHS= \
  -L"$(CURDIR)/leveldb" \
  -L"/home/<ваше имя>/mxe/usr/i686-w64-mingw32.static/lib" \
- -L"/home/<ваше имя>/miniupnpc" \
  -L"/home/<ваше имя>/db-6.0.20/build_unix" \
 
 LIBS= \
@@ -313,8 +247,6 @@ BDB_INCLUDE_PATH=/home/<ваше имя>/db-6.0.20/build_unix
 BDB_LIB_PATH=//home/<ваше имя>/db-6.0.20/build_unix
 OPENSSL_INCLUDE_PATH=/home/<ваше имя>/mxe/usr/i686-w64-mingw32.static/include
 OPENSSL_LIB_PATH=/home/<ваше имя>/mxe/usr/i686-w64-mingw32.static/lib
-MINIUPNPC_INCLUDE_PATH=/home/<ваше имя>/
-MINIUPNPC_LIB_PATH=/home/<ваше имя>/miniupnpc
 QRENCODE_INCLUDE_PATH=/home/<ваше имя>/qrencode-3.4.4
 QRENCODE_LIB_PATH=/home/<ваше имя>/qrencode-3.4.4/.libs
 
@@ -343,6 +275,12 @@ win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
 LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread$$BOOST_THREAD_LIB_SUFFIX
 на
 LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread_win32$$BOOST_THREAD_LIB_SUFFIX
+
+Измените
+windows:LIBS += -lboost_chrono$$BOOST_LIB_SUFFIX -Wl,-Bstatic -lpthread -Wl,-Bdynamic
+на
+windows:LIBS += -lboost_chrono$$BOOST_LIB_SUFFIX
+
 -Сохраните измененный файл novacoin-qt.pro
 -Откройте терминал и выполните следующие команды
 
@@ -350,28 +288,28 @@ Qt4 + транзакционный индекс LevelDB
 
 export PATH=/home/<ваше имя>/mxe/usr/bin:$PATH
 cd /home/<ваше имя>/novacoin
-i686-w64-mingw32.static-qmake-qt4 "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt.pro
+i686-w64-mingw32.static-qmake-qt4 "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt.pro
 make -j n -f Makefile.Release  (вместо n количество ядер вашего процессора, которые вы хотите выделить под сборку)
 
 Qt4 + транзакционный индекс BDB
 
 export PATH=/home/<ваше имя>/mxe/usr/bin:$PATH
 cd /home/<ваше имя>/novacoin
-i686-w64-mingw32.static-qmake-qt4 "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_ASM=1" novacoin-qt.pro
+i686-w64-mingw32.static-qmake-qt4 "USE_IPV6=1" "USE_ASM=1" novacoin-qt.pro
 make -j n -f Makefile.Release  (вместо n количество ядер вашего процессора, которые вы хотите выделить под сборку)
 
 Qt5 + транзакционный индекс LevelDB
 
 export PATH=/home/<ваше имя>/mxe/usr/bin:$PATH
 cd /home/<ваше имя>/novacoin
-i686-w64-mingw32.static-qmake-qt5 "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt.pro
+i686-w64-mingw32.static-qmake-qt5 "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt.pro
 make -j n -f Makefile.Release  (вместо n количество ядер вашего процессора, которые вы хотите выделить под сборку)
 
 Qt5 + транзакционный индекс BDB
 
 export PATH=/home/<ваше имя>/mxe/usr/bin:$PATH
 cd /home/<ваше имя>/novacoin
-i686-w64-mingw32.static-qmake-qt5 "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_ASM=1" novacoin-qt.pro
+i686-w64-mingw32.static-qmake-qt5 "USE_IPV6=1" "USE_ASM=1" novacoin-qt.pro
 make -j n -f Makefile.Release  (вместо n количество ядер вашего процессора, которые вы хотите выделить под сборку)
 
 
@@ -379,3 +317,14 @@ make -j n -f Makefile.Release  (вместо n количество ядер в
 Во время линковки будут выдаваться подобные сообщения:
 libboost_thread_win32-mt.a(thread.o): duplicate section `.rdata$_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_9gregorian9bad_monthEEEEE[__ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_9gregorian9bad_monthEEEEE]' has different size
 Игнорируйте их. На работоспособность программы это никак не влияет 
+
+Если вы хотите уменьшить размер бинарных файлов, то
+1) Перейдите на сайт http://upx.sourceforge.net/#downloadupx
+2) Скачайте программу в соответсвии с вашей системой
+3) Распакуйте программу в папку с бинарными Novacoin файлами.
+4) Введите в терминале
+./upx -9 novacoind.exe
+затем
+./upx -9 novacoin-qt.exe
+
+И ваши novacoind и novacoin-qt станут меньше ~ в 3 раза.