gui: Enable console line edit on setClientModel
[novacoin.git] / doc / building novacoind and novacoinqt under Windows with MinGW.txt
index a7ae17a..5ac6ef3 100644 (file)
@@ -25,8 +25,7 @@ msys-libtool-bin
 и распакуйте на C:\
 
 1.4 Добавьте в переменную PATH путь C:\mingw32\bin;
-Подробное описание как это сделать на Windows 8, Windows 7, Windows XP и Windows Vista
-https://www.java.com/ru/download/help/path.xml
+Подробное описание как это сделать в Windows: https://www.java.com/ru/download/help/path.xml
 (только не нужно выполнять последний пункт из этой инструкции "Откройте заново окно командной строки и выполните код java." )
 
 Проверка что вы всё сделали правильно:
@@ -39,23 +38,23 @@ gcc version 4.9.2 (i686-posix-dwarf-rev0, Built by MinGW-W64 project)
 В инструкции все зависимости сохраняются в папку c:\deps
 
 2.1 OpenSSL 
--Скачайте http://www.openssl.org/source/openssl-1.0.1j.tar.gz
+-Скачайте https://openssl.org/source/openssl-1.0.2.tar.gz
 -Перейдите в папку C:\MinGW\msys\1.0 и запустите msys.bat
 Из MinGw shell выполните следующий код:
 
 cd /c/deps/
-tar xvfz openssl-1.0.1j.tar.gz
-cd openssl-1.0.1j
+tar xvfz openssl-1.0.2.tar.gz
+cd openssl-1.0.2
 Configure no-shared no-dso mingw
 make
 
 2.2 Berkeley DB
--Скачайте http://download.oracle.com/berkeley-db/db-6.1.19.tar.gz
+-Скачайте http://download.oracle.com/berkeley-db/db-6.0.20.tar.gz
 -Из MinGw shell выполните следующий код:
 
 cd /c/deps/
-tar xvfz db-6.1.19.tar.gz
-cd db-6.1.19/build_unix
+tar xvfz db-6.0.20.tar.gz
+cd db-6.0.20/build_unix
 ../dist/configure --enable-mingw --enable-cxx --disable-shared --disable-replication
 make
 
@@ -68,15 +67,7 @@ cd C:\deps\boost_1_57_0\
 bootstrap.bat mingw
 b2 --build-type=complete --with-chrono --with-filesystem --with-program_options --with-system --with-thread toolset=gcc variant=release link=static threading=multi runtime-link=static stage
 
-2.4 Miniupnpc
--Скачайте http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.9.20141128.tar.gz
--Распакуйте miniupnpc-1.9.20141128.tar.gz с помощью 7z. (Распаковать нужно 2 раза, нажмите на файле miniupnpc-1.9.20141128.tar.gz левой кнопкой мыши и выберите 7-Zip, затем Распаковать здесь. Появится файл miniupnpc-1.9.20141128.tar. С ним аналогично, левая кнопка мыши -> 7-Zip -> Распаковать здесь. Появится папка miniupnpc-1.9.20141128. Переименуйте её в miniupnpc.
--Откройте командную строку Windows, и выполните следующий код:
-
-cd C:\deps\miniupnpc
-mingw32-make -f Makefile.mingw init upnpc-static
-
-2.5 qrencode
+2.4 qrencode
 -Скачайте http://download.sourceforge.net/libpng/libpng-1.6.15.tar.gz?download
 -Распакуйте
 -Откройте MinGw shell (C:\MinGW\msys\1.0\msys.bat) и выполните следующий код:
@@ -99,7 +90,7 @@ configure --enable-static --disable-shared --without-tools
 
 make
 
-2.6 Qt 5 и Qt 4
+2.5 Qt 5 и Qt 4
 Библиотеки Qt будем хранить в папке C:\Qt
 Для ускорения компиляции  вместо 
 mingw32-make 
@@ -114,8 +105,8 @@ http://download.qt-project.org/official_releases/qt/5.4/5.4.0/submodules/qttrans
 -Переименуйте папку qtbase-opensource-src-5.4.0 в 5.4.0
 -Откройте командную строку Windows и выполните следующий код:
 
-set INCLUDE=C:\deps\libpng-1.6.15;C:\deps\openssl-1.0.1j\include
-set LIB=C:\deps\libpng-1.6.15\.libs;C:\deps\openssl-1.0.1j
+set INCLUDE=C:\deps\libpng-1.6.15;C:\deps\openssl-1.0.2\include
+set LIB=C:\deps\libpng-1.6.15\.libs;C:\deps\openssl-1.0.2
 
 cd C:\Qt\5.4.0
 
@@ -135,12 +126,12 @@ mingw32-make
 
 
 Qt4:
--Скачайте http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.zip
+-Скачайте http://download.qt-project.org/official_releases/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.zip
 -Распакуйте в C:\Qt
--Переименуйте папку qt-everywhere-opensource-src-4.8.6 в 4.8.6
+-Переименуйте папку qt-everywhere-opensource-src-4.8.7 в 4.8.7
 -Откройте командную строку Windows и выполните следующий код:
 
-cd C:\Qt\4.8.6
+cd C:\Qt\4.8.7
 
 configure -release -opensource -confirm-license -static -no-sql-sqlite -no-qt3support -no-opengl -qt-zlib -no-gif -qt-libpng -qt-libmng -no-libtiff -qt-libjpeg -no-dsp -no-vcproj -no-openssl -no-dbus -no-phonon -no-phonon-backend -no-multimedia -no-audio-backend -no-webkit -no-script -no-scripttools -no-declarative -no-declarative-debug -qt-style-windows -qt-style-windowsxp -qt-style-windowsvista -no-style-plastique -no-style-cleanlooks -no-style-motif -no-style-cde -nomake demos -nomake examples
 
@@ -158,59 +149,12 @@ mingw32-make
 3.2 Собираем novacoind 
 -Перейдите в папку C:\MyProjects\novacoin-master\src
 -Откройте файл makefile.mingw в текстовом редакторе.(При написании инструкции использовался WordPad)
--Поменяйте USE_UPNP:=0 на USE_UPNP:=1
 -Добавьте  строчку USE_ASM:=1
--Поменяйте текущие INCLUDEPATHS, LIBPATHS, LIBS на:
-
-BOOST_SUFFIX?=-mgw49-mt-s-1_57
-
-INCLUDEPATHS= \
- -I"$(CURDIR)" \
- -I"/c/deps/boost_1_57_0" \
- -I"/c/deps" \
- -I"/c/deps/db-6.1.19/build_unix" \
- -I"/c/deps/openssl-1.0.1j/include"
-LIBPATHS= \
- -L"$(CURDIR)/leveldb" \
- -L"/c/deps/boost_1_57_0/stage/lib" \
- -L"/c/deps/miniupnpc" \
- -L"/c/deps/db-6.1.19/build_unix" \
- -L"/c/deps/openssl-1.0.1j"
-
-LIBS= \
-  -l leveldb \
-  -l memenv \
-  -l boost_system$(BOOST_SUFFIX) \
-  -l boost_filesystem$(BOOST_SUFFIX) \
-  -l boost_program_options$(BOOST_SUFFIX) \
-  -l boost_thread$(BOOST_SUFFIX) \
-  -l boost_chrono$(BOOST_SUFFIX) \
-  -l db_cxx \
-  -l ssl \
-  -l crypto
-
--Поменяйте LDFLAGS=-Wl,--dynamicbase -Wl,--nxcompat на 
-LDFLAGS=-Wl,--dynamicbase -Wl,--nxcompat -Wl,--large-address-aware -static
-
 -Если вы хотите использовать LevelDB как базу блоков то измените:
 USE_LEVELDB:=0 
 на
 USE_LEVELDB:=1
 (выше USE_IPV6:=1)
-Так же измените 
-cd leveldb; make; cd ..
-на 
-cd leveldb; TARGET_OS=NATIVE_WINDOWS make libleveldb.a libmemenv.a; cd ..
-
-Ещё измените
-obj/txdb-leveldb.o: leveldb/libleveldb.lib
-на
-obj/txdb-leveldb.o: leveldb/libleveldb.a
-
-
-
-Если вы хотите использовать BerkeleyDB как базу блоков, то просто удалите строчку USE_LEVELDB:=1
 
 -Сохраните измененный файл makefile.mingw
 
@@ -247,12 +191,10 @@ TARGET_OS=NATIVE_WINDOWS make libleveldb.a libmemenv.a
 BOOST_LIB_SUFFIX=-mgw49-mt-s-1_57
 BOOST_INCLUDE_PATH=C:/deps/boost_1_57_0
 BOOST_LIB_PATH=C:/deps/boost_1_57_0/stage/lib
-BDB_INCLUDE_PATH=C:/deps/db-6.1.19/build_unix
-BDB_LIB_PATH=C:/deps/db-6.1.19/build_unix
-OPENSSL_INCLUDE_PATH=C:/deps/openssl-1.0.1j/include
-OPENSSL_LIB_PATH=C:/deps/openssl-1.0.1j
-MINIUPNPC_INCLUDE_PATH=C:/deps/
-MINIUPNPC_LIB_PATH=C:/deps/miniupnpc
+BDB_INCLUDE_PATH=C:/deps/db-6.0.20/build_unix
+BDB_LIB_PATH=C:/deps/db-6.0.20/build_unix
+OPENSSL_INCLUDE_PATH=C:/deps/openssl-1.0.2/include
+OPENSSL_LIB_PATH=C:/deps/openssl-1.0.2
 QRENCODE_INCLUDE_PATH=C:/deps/qrencode-3.4.4
 QRENCODE_LIB_PATH=C:/deps/qrencode-3.4.4/.libs
 
@@ -272,6 +214,11 @@ win32:QMAKE_LFLAGS........................
 на 
 win32:QMAKE_LFLAGS *= -Wl,--large-address-aware -static 
 
+Измените 
+windows:LIBS += -lboost_chrono$$BOOST_LIB_SUFFIX -Wl,-Bstatic -lpthread -Wl,-Bdynamic
+на
+windows:LIBS += -lboost_chrono$$BOOST_LIB_SUFFIX
+
 -Сохраните измененный файл novacoin-qt.pro
 -Откройте командную строку Windows и выполните следующий код:
 
@@ -279,7 +226,7 @@ Qt5 + транзакционный индекс BDB
 
 set PATH=%PATH%;C:\Qt\5.4.0\bin
 cd C:\MyProjects\novacoin-master
-qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_ASM=1" novacoin-qt.pro
+qmake "USE_IPV6=1" "USE_ASM=1" novacoin-qt.pro
 mingw32-make -f Makefile.Release
 
 
@@ -287,27 +234,38 @@ Qt5 + транзакционный индекс LevelDB
 
 set PATH=%PATH%;C:\Qt\5.4.0\bin
 cd C:\MyProjects\novacoin-master
-qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt.pro
+qmake "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt.pro
 mingw32-make -f Makefile.Release
 
 Qt4 + транзакционный индекс BDB
 
-set PATH=%PATH%;C:\Qt\4.8.6\bin
+set PATH=%PATH%;C:\Qt\4.8.7\bin
 cd C:\MyProjects\novacoin-master
-qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_ASM=1" novacoin-qt.pro
+qmake "USE_IPV6=1" "USE_ASM=1" novacoin-qt.pro
 mingw32-make -f Makefile.Release
 
 Qt4 + транзакционный индекс LevelDB
 
-set PATH=%PATH%;C:\Qt\4.8.6\bin
+set PATH=%PATH%;C:\Qt\4.8.7\bin
 cd C:\MyProjects\novacoin-master
-qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt.pro
+qmake "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt.pro
 mingw32-make -f Makefile.Release
 
 
 
 Если всё сделано правильно, то файл novacoin-qt.exe будет находится в папке C:\MyProjects\novacoin-master\release
 
+Если вы хотите уменьшить размер бинарных файлов, то
+1) Перейдите на сайт http://upx.sourceforge.net/#downloadupx
+2) Скачайте программу в соответсвии с вашей системой
+3) Распакуйте программу в папку с бинарными Novacoin файлами.
+4) Введите в консоли
+upx -9 novacoind.exe
+затем
+upx -9 novacoin-qt.exe
+
+И ваши novacoind и novacoin-qt станут меньше ~ в 3 раза.
+
 
 
 64 bit:
@@ -330,13 +288,13 @@ gcc version 4.9.2 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)
 2. Построение зависимостей.
 В инструкции все зависимости сохраняются в папку c:\deps\x64
 
-2.1  OpenSSL: http://www.openssl.org/source/openssl-1.0.1j.tar.gz
+2.1  OpenSSL: http://www.openssl.org/source/openssl-1.0.2.tar.gz
 -Перейдите в папку C:\MinGW\msys\1.0 и запустите msys.bat
 Из MinGw shell выполните следующий код:
 
 cd /c/deps/x64/
-tar xvfz openssl-1.0.1j.tar.gz
-cd openssl-1.0.1j
+tar xvfz openssl-1.0.2.tar.gz
+cd openssl-1.0.2
 Configure no-shared no-dso mingw64
 make
 
@@ -344,9 +302,7 @@ make
 
 2.3 Так же как 32 bit, только распаковка в C:\deps\x64 и команда cd C:\deps\boost_1_57_0\ меняется на cd C:\deps\x64\boost_1_57_0\ 
 
-2.4 Так же как 32 bit, только распаковка в C:\deps\x64 и заменить cd C:\deps\miniupnpc на cd C:\deps\x64\miniupnpc
-
-2.5 Часть с libpng так же как 32 bit, только распаковка в C:\deps\x64 
+2.4 Часть с libpng так же как 32 bit, только распаковка в C:\deps\x64 
 Затем
 -Скачайте http://fukuchi.org/works/qrencode/qrencode-3.4.4.tar.gz
 -Распакуйте в C:\deps\x64
@@ -362,7 +318,7 @@ configure --enable-static --disable-shared --without-tools
 make
 
 
-2.6 Qt 5 и Qt 4
+2.5 Qt 5 и Qt 4
 Библиотеки Qt будем хранить в папке C:\Qt
 Для ускорения компиляции  вместо 
 mingw32-make 
@@ -378,8 +334,8 @@ http://download.qt-project.org/official_releases/qt/5.4/5.4.0/submodules/qttrans
 -Переименуйте папку qttranslations-opensource-src-5.4.0 в qttranslations-opensource-src-5.4.0-x64
 -Откройте командную строку Windows и выполните следующий код:
 
-set INCLUDE=C:\deps\x64\libpng-1.6.15;C:\deps\x64\openssl-1.0.1j\include
-set LIB=C:\deps\x64\libpng-1.6.15\.libs;C:\deps\x64\openssl-1.0.1j
+set INCLUDE=C:\deps\x64\libpng-1.6.15;C:\deps\x64\openssl-1.0.2\include
+set LIB=C:\deps\x64\libpng-1.6.15\.libs;C:\deps\x64\openssl-1.0.2
 
 cd C:\Qt\5.4.0-x64
 
@@ -398,9 +354,9 @@ qmake qttranslations.pro
 mingw32-make
 
 Qt4:
--Скачайте http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.zip
+-Скачайте http://download.qt-project.org/official_releases/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.zip
 -Распакуйте в C:\Qt
--Переименуйте папку qt-everywhere-opensource-src-4.8.6 в 4.8.6-x64
+-Переименуйте папку qt-everywhere-opensource-src-4.8.7 в 4.8.7-x64
 -Откройте командную строку Windows и выполните следующий код:
 
 configure -release -opensource -confirm-license -static -no-sql-sqlite -no-qt3support -no-opengl -qt-zlib -no-gif -qt-libpng -qt-libmng -no-libtiff -qt-libjpeg -no-dsp -no-vcproj -no-openssl -no-dbus -no-phonon -no-phonon-backend -no-multimedia -no-audio-backend -no-webkit -no-script -no-scripttools -no-declarative -no-declarative-debug -qt-style-windows -qt-style-windowsxp -qt-style-windowsvista -no-style-plastique -no-style-cleanlooks -no-style-motif -no-style-cde -nomake demos -nomake examples
@@ -465,7 +421,7 @@ Qt5 + транзакционный индекс BDB
 
 set PATH=%PATH%;C:\Qt\5.4.0-x64\bin
 cd C:\MyProjects\novacoin-master
-qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_ASM=1" novacoin-qt64.pro
+qmake "USE_IPV6=1" "USE_ASM=1" novacoin-qt64.pro
 mingw32-make -f Makefile.Release
 
 
@@ -473,21 +429,32 @@ Qt5 + транзакционный индекс LevelDB
 
 set PATH=%PATH%;C:\Qt\5.4.0-x64\bin
 cd C:\MyProjects\novacoin-master
-qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt64.pro
+qmake "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt64.pro
 mingw32-make -f Makefile.Release
 
 Qt4 + транзакционный индекс BDB
 
-set PATH=%PATH%;C:\Qt\4.8.6-x64\bin
+set PATH=%PATH%;C:\Qt\4.8.7-x64\bin
 cd C:\MyProjects\novacoin-master
-qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_ASM=1" novacoin-qt64.pro
+qmake "USE_IPV6=1" "USE_ASM=1" novacoin-qt64.pro
 mingw32-make -f Makefile.Release
 
 Qt4 + транзакционный индекс LevelDB
 
-set PATH=%PATH%;C:\Qt\4.8.6-x64\bin
+set PATH=%PATH%;C:\Qt\4.8.7-x64\bin
 cd C:\MyProjects\novacoin-master
-qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt64.pro
+qmake "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt64.pro
 mingw32-make -f Makefile.Release
 
-Если всё сделано правильно, то файл novacoin-qt.exe будет находится в папке C:\MyProjects\novacoin-master\release
\ No newline at end of file
+Если всё сделано правильно, то файл novacoin-qt.exe будет находится в папке C:\MyProjects\novacoin-master\release
+
+Если вы хотите уменьшить размер бинарных файлов, то
+1) Перейдите на сайт http://upx.sourceforge.net/#downloadupx
+2) Скачайте программу в соответсвии с вашей системой
+3) Распакуйте программу в папку с бинарными Novacoin файлами.
+4) Введите в консоли
+upx -9 novacoind.exe
+затем
+upx -9 novacoin-qt.exe
+
+И ваши novacoind и novacoin-qt станут меньше ~ в 3 раза.