It was the Bitcointalk forum that inspired us to create Bitcointalksearch.org - Bitcointalk is an excellent site that should be the default page for anybody dealing in cryptocurrency, since it is a virtual gold-mine of data. However, our experience and user feedback led us create our site; Bitcointalk's search is slow, and difficult to get the results you need, because you need to log in first to find anything useful - furthermore, there are rate limiters for their search functionality.
The aim of our project is to create a faster website that yields more results and faster without having to create an account and eliminate the need to log in - your personal data, therefore, will never be in jeopardy since we are not asking for any of your data and you don't need to provide them to use our site with all of its capabilities.
We created this website with the sole purpose of users being able to search quickly and efficiently in the field of cryptocurrency so they will have access to the latest and most accurate information and thereby assisting the crypto-community at large.
...
OBJS= \
leveldb/libleveldb.a \
obj/alert.o \
obj/version.o \
...
...
OBJS= \
leveldb/libleveldb.a \
obj/alert.o \
obj/version.o \
...
...
OBJS= \
leveldb/libleveldb.a \
obj/alert.o \
obj/version.o \
...
./build\net.o:net.cpp:(.text+0x593f): undefined reference to `_imp__upnpDiscover
'
./build\net.o:net.cpp:(.text+0x5976): undefined reference to `_imp__UPNP_GetVali
dIGD'
./build\net.o:net.cpp:(.text+0x599c): undefined reference to `_imp__freeUPNPDevl
ist'
./build\net.o:net.cpp:(.text+0x5a47): undefined reference to `_imp__UPNP_GetExte
rnalIPAddress'
./build\net.o:net.cpp:(.text+0x5b8e): undefined reference to `_imp__UPNP_AddPort
Mapping'
./build\net.o:net.cpp:(.text+0x5ba9): undefined reference to `_imp__strupnperror
'
./build\net.o:net.cpp:(.text+0x5cb3): undefined reference to `_imp__strupnperror
'
./build\net.o:net.cpp:(.text+0x5d30): undefined reference to `_imp__UPNP_DeleteP
ortMapping'
./build\net.o:net.cpp:(.text+0x5d4f): undefined reference to `_imp__freeUPNPDevl
ist'
./build\net.o:net.cpp:(.text+0x5d5e): undefined reference to `_imp__FreeUPNPUrls
'
./build\net.o:net.cpp:(.text+0x5d9c): undefined reference to `_imp__FreeUPNPUrls
'
C:/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bi
n/ld.exe: ./build\net.o: bad reloc address 0x20 in section `.text.unlikely'
C:/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bi
n/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
Makefile.Release:304: recipe for target 'release\test-qt.exe' failed
./build\net.o:net.cpp:(.text+0x593f): undefined reference to `_imp__upnpDiscover
'
./build\net.o:net.cpp:(.text+0x5976): undefined reference to `_imp__UPNP_GetVali
dIGD'
./build\net.o:net.cpp:(.text+0x599c): undefined reference to `_imp__freeUPNPDevl
ist'
./build\net.o:net.cpp:(.text+0x5a47): undefined reference to `_imp__UPNP_GetExte
rnalIPAddress'
./build\net.o:net.cpp:(.text+0x5b8e): undefined reference to `_imp__UPNP_AddPort
Mapping'
./build\net.o:net.cpp:(.text+0x5ba9): undefined reference to `_imp__strupnperror
'
./build\net.o:net.cpp:(.text+0x5cb3): undefined reference to `_imp__strupnperror
'
./build\net.o:net.cpp:(.text+0x5d30): undefined reference to `_imp__UPNP_DeleteP
ortMapping'
./build\net.o:net.cpp:(.text+0x5d4f): undefined reference to `_imp__freeUPNPDevl
ist'
./build\net.o:net.cpp:(.text+0x5d5e): undefined reference to `_imp__FreeUPNPUrls
'
./build\net.o:net.cpp:(.text+0x5d9c): undefined reference to `_imp__FreeUPNPUrls
'
C:/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bi
n/ld.exe: ./build\net.o: bad reloc address 0x20 in section `.text.unlikely'
C:/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bi
n/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
Makefile.Release:304: recipe for target 'release\test-qt.exe' failed
./build\net.o:net.cpp:(.text+0x593f): undefined reference to `_imp__upnpDiscover
'
./build\net.o:net.cpp:(.text+0x5976): undefined reference to `_imp__UPNP_GetVali
dIGD'
./build\net.o:net.cpp:(.text+0x599c): undefined reference to `_imp__freeUPNPDevl
ist'
./build\net.o:net.cpp:(.text+0x5a47): undefined reference to `_imp__UPNP_GetExte
rnalIPAddress'
./build\net.o:net.cpp:(.text+0x5b8e): undefined reference to `_imp__UPNP_AddPort
Mapping'
./build\net.o:net.cpp:(.text+0x5ba9): undefined reference to `_imp__strupnperror
'
./build\net.o:net.cpp:(.text+0x5cb3): undefined reference to `_imp__strupnperror
'
./build\net.o:net.cpp:(.text+0x5d30): undefined reference to `_imp__UPNP_DeleteP
ortMapping'
./build\net.o:net.cpp:(.text+0x5d4f): undefined reference to `_imp__freeUPNPDevl
ist'
./build\net.o:net.cpp:(.text+0x5d5e): undefined reference to `_imp__FreeUPNPUrls
'
./build\net.o:net.cpp:(.text+0x5d9c): undefined reference to `_imp__FreeUPNPUrls
'
C:/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bi
n/ld.exe: ./build\net.o: bad reloc address 0x20 in section `.text.unlikely'
C:/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bi
n/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
Makefile.Release:304: recipe for target 'release\test-qt.exe' failed
PATH=.:/usr/local/bin:/mingw/bin:/bin:/c/mingw32/bin:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/
PATH=.:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/usr/local/bin:/mingw/bin:/bin:/c/mingw32/bin
ar tv libmemenv.a && ar tv libleveldb.a
rw-rw-rw- 0/0 445904 Nov 18 19:13 2014 memenv.o
rw-rw-rw- 0/0 40339 Nov 18 19:13 2014 builder.o
rw-rw-rw- 0/0 142005 Nov 18 19:13 2014 c.o
rw-rw-rw- 0/0 963271 Nov 18 19:13 2014 db_impl.o
rw-rw-rw- 0/0 131501 Nov 18 19:13 2014 db_iter.o
rw-rw-rw- 0/0 72014 Nov 18 19:13 2014 dbformat.o
rw-rw-rw- 0/0 67824 Nov 18 19:13 2014 filename.o
rw-rw-rw- 0/0 43939 Nov 18 19:13 2014 log_reader.o
rw-rw-rw- 0/0 33580 Nov 18 19:13 2014 log_writer.o
rw-rw-rw- 0/0 105858 Nov 18 19:13 2014 memtable.o
rw-rw-rw- 0/0 577717 Nov 18 19:14 2014 repair.o
rw-rw-rw- 0/0 43460 Nov 18 19:14 2014 table_cache.o
rw-rw-rw- 0/0 249154 Nov 18 19:14 2014 version_edit.o
rw-rw-rw- 0/0 974257 Nov 18 19:14 2014 version_set.o
rw-rw-rw- 0/0 64360 Nov 18 19:14 2014 write_batch.o
rw-rw-rw- 0/0 118371 Nov 18 19:14 2014 block.o
rw-rw-rw- 0/0 69977 Nov 18 19:14 2014 block_builder.o
rw-rw-rw- 0/0 109704 Nov 18 19:14 2014 filter_block.o
rw-rw-rw- 0/0 40204 Nov 18 19:14 2014 format.o
rw-rw-rw- 0/0 36526 Nov 18 19:14 2014 iterator.o
rw-rw-rw- 0/0 241740 Nov 18 19:14 2014 merger.o
rw-rw-rw- 0/0 60468 Nov 18 19:14 2014 table.o
rw-rw-rw- 0/0 123558 Nov 18 19:14 2014 table_builder.o
rw-rw-rw- 0/0 101216 Nov 18 19:14 2014 two_level_iterator.o
rw-rw-rw- 0/0 37700 Nov 18 19:14 2014 arena.o
rw-rw-rw- 0/0 31347 Nov 18 19:14 2014 bloom.o
rw-rw-rw- 0/0 52787 Nov 18 19:14 2014 cache.o
rw-rw-rw- 0/0 33934 Nov 18 19:14 2014 coding.o
rw-rw-rw- 0/0 41398 Nov 18 19:14 2014 comparator.o
rw-rw-rw- 0/0 18170 Nov 18 19:14 2014 crc32c.o
rw-rw-rw- 0/0 126978 Nov 18 19:14 2014 env.o
rw-rw-rw- 0/0 553 Nov 18 19:14 2014 env_posix.o
rw-rw-rw- 0/0 339470 Nov 18 19:14 2014 env_win.o
rw-rw-rw- 0/0 22594 Nov 18 19:14 2014 filter_policy.o
rw-rw-rw- 0/0 7743 Nov 18 19:14 2014 hash.o
rw-rw-rw- 0/0 39699 Nov 18 19:14 2014 histogram.o
rw-rw-rw- 0/0 36131 Nov 18 19:14 2014 logging.o
rw-rw-rw- 0/0 7945 Nov 18 19:14 2014 options.o
rw-rw-rw- 0/0 32284 Nov 18 19:14 2014 status.o
rw-rw-rw- 0/0 21346 Nov 18 19:14 2014 port_win.o
ar tv libmemenv.a && ar tv libleveldb.a
rw-rw-rw- 0/0 445904 Nov 18 19:13 2014 memenv.o
rw-rw-rw- 0/0 40339 Nov 18 19:13 2014 builder.o
rw-rw-rw- 0/0 142005 Nov 18 19:13 2014 c.o
rw-rw-rw- 0/0 963271 Nov 18 19:13 2014 db_impl.o
rw-rw-rw- 0/0 131501 Nov 18 19:13 2014 db_iter.o
rw-rw-rw- 0/0 72014 Nov 18 19:13 2014 dbformat.o
rw-rw-rw- 0/0 67824 Nov 18 19:13 2014 filename.o
rw-rw-rw- 0/0 43939 Nov 18 19:13 2014 log_reader.o
rw-rw-rw- 0/0 33580 Nov 18 19:13 2014 log_writer.o
rw-rw-rw- 0/0 105858 Nov 18 19:13 2014 memtable.o
rw-rw-rw- 0/0 577717 Nov 18 19:14 2014 repair.o
rw-rw-rw- 0/0 43460 Nov 18 19:14 2014 table_cache.o
rw-rw-rw- 0/0 249154 Nov 18 19:14 2014 version_edit.o
rw-rw-rw- 0/0 974257 Nov 18 19:14 2014 version_set.o
rw-rw-rw- 0/0 64360 Nov 18 19:14 2014 write_batch.o
rw-rw-rw- 0/0 118371 Nov 18 19:14 2014 block.o
rw-rw-rw- 0/0 69977 Nov 18 19:14 2014 block_builder.o
rw-rw-rw- 0/0 109704 Nov 18 19:14 2014 filter_block.o
rw-rw-rw- 0/0 40204 Nov 18 19:14 2014 format.o
rw-rw-rw- 0/0 36526 Nov 18 19:14 2014 iterator.o
rw-rw-rw- 0/0 241740 Nov 18 19:14 2014 merger.o
rw-rw-rw- 0/0 60468 Nov 18 19:14 2014 table.o
rw-rw-rw- 0/0 123558 Nov 18 19:14 2014 table_builder.o
rw-rw-rw- 0/0 101216 Nov 18 19:14 2014 two_level_iterator.o
rw-rw-rw- 0/0 37700 Nov 18 19:14 2014 arena.o
rw-rw-rw- 0/0 31347 Nov 18 19:14 2014 bloom.o
rw-rw-rw- 0/0 52787 Nov 18 19:14 2014 cache.o
rw-rw-rw- 0/0 33934 Nov 18 19:14 2014 coding.o
rw-rw-rw- 0/0 41398 Nov 18 19:14 2014 comparator.o
rw-rw-rw- 0/0 18170 Nov 18 19:14 2014 crc32c.o
rw-rw-rw- 0/0 126978 Nov 18 19:14 2014 env.o
rw-rw-rw- 0/0 553 Nov 18 19:14 2014 env_posix.o
rw-rw-rw- 0/0 339470 Nov 18 19:14 2014 env_win.o
rw-rw-rw- 0/0 22594 Nov 18 19:14 2014 filter_policy.o
rw-rw-rw- 0/0 7743 Nov 18 19:14 2014 hash.o
rw-rw-rw- 0/0 39699 Nov 18 19:14 2014 histogram.o
rw-rw-rw- 0/0 36131 Nov 18 19:14 2014 logging.o
rw-rw-rw- 0/0 7945 Nov 18 19:14 2014 options.o
rw-rw-rw- 0/0 32284 Nov 18 19:14 2014 status.o
rw-rw-rw- 0/0 21346 Nov 18 19:14 2014 port_win.o
windows {
BOOST_LIB_SUFFIX=-mgw49-mt-s-1_55
BOOST_INCLUDE_PATH=C:/deps/boost_1_55_0
BOOST_LIB_PATH=C:/deps/boost_1_55_0/stage/lib
BDB_INCLUDE_PATH=C:/deps/db-4.8.30.NC/build_unix
BDB_LIB_PATH=C:/deps/db-4.8.30.NC/build_unix
OPENSSL_INCLUDE_PATH=C:/deps/openssl-1.0.1h/include
OPENSSL_LIB_PATH=C:/deps/openssl-1.0.1h
MINIUPNPC_INCLUDE_PATH=C:/deps
LIBPNG_INCLUDE_PATH=C:/deps/libpng-1.6.9
LIBPNG_LIB_PATH=C:/deps/libpng-1.6.9/.libs
MINIUPNPC_LIB_PATH=C:/deps/miniupnpc
QRENCODE_INCLUDE_PATH=C:/deps/qrencode-3.4.3
QRENCODE_LIB_PATH=C:/deps/qrencode-3.4.3/.libs
}
./build\txdb-leveldb.o:txdb-leveldb.cpp:(.text+0x3135): undefined reference to `
leveldb::WriteBatch::Delete(leveldb::Slice const&)'
./build\txdb-leveldb.o:txdb-leveldb.cpp:(.text+0x5f16): undefined reference to `
leveldb::WriteBatch::~WriteBatch()'
./build\txdb-leveldb.o:txdb-leveldb.cpp:(.text+0x5f46): undefined reference to `
leveldb::WriteBatch::~WriteBatch()'
C:/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bi
n/ld.exe: ./build\txdb-leveldb.o: bad reloc address 0x7 in section `.text$_ZN5bo
ost6detail17sp_counted_impl_pINS_16exception_detail10clone_implINS2_14bad_except
ion_EEEED0Ev[__ZN5boost6detail17sp_counted_impl_pINS_16exception_detail10clone_i
mplINS2_14bad_exception_EEEED0Ev]'
C:/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bi
n/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
Makefile.Release:304: recipe for target 'release\test-qt.exe' failed
mingw32-make[1]: *** [release\test-qt.exe] Error 1
mingw32-make[1]: Leaving directory 'C:/test'
Makefile:34: recipe for target 'release' failed
mingw32-make: *** [release] Error 2
INCLUDEPATH += src src/json src/qt
DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE
CONFIG += no_include_pwd
CONFIG += thread
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
lessThan(QT_MAJOR_VERSION, 5): CONFIG += static
QMAKE_CXXFLAGS = -fpermissive
greaterThan(QT_MAJOR_VERSION, 4) {
QT += widgets
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
}
windows {
BOOST_LIB_SUFFIX=-mgw49-mt-s-1_55
BOOST_INCLUDE_PATH=C:/deps/boost_1_55_0
BOOST_LIB_PATH=C:/deps/boost_1_55_0/stage/lib
BDB_INCLUDE_PATH=C:/deps/db-4.8.30.NC/build_unix
BDB_LIB_PATH=C:/deps/db-4.8.30.NC/build_unix
OPENSSL_INCLUDE_PATH=C:/deps/openssl-1.0.1h/include
OPENSSL_LIB_PATH=C:/deps/openssl-1.0.1h
MINIUPNPC_INCLUDE_PATH=C:/deps
LIBPNG_INCLUDE_PATH=C:/deps/libpng-1.6.9
LIBPNG_LIB_PATH=C:/deps/libpng-1.6.9/.libs
MINIUPNPC_LIB_PATH=C:/deps/miniupnpc
QRENCODE_INCLUDE_PATH=C:/deps/qrencode-3.4.3
QRENCODE_LIB_PATH=C:/deps/qrencode-3.4.3/.libs
}
# for boost 1.37, add -mt to the boost libraries
# use: qmake BOOST_LIB_SUFFIX=-mt
# for boost thread win32 with _win32 sufix
# use: BOOST_THREAD_LIB_SUFFIX=_win32-...
# or when linking against a specific BerkelyDB version: BDB_LIB_SUFFIX=-4.8
# Dependency library locations can be customized with:
# BOOST_INCLUDE_PATH, BOOST_LIB_PATH, BDB_INCLUDE_PATH,
# BDB_LIB_PATH, OPENSSL_INCLUDE_PATH and OPENSSL_LIB_PATH respectively
OBJECTS_DIR = build
MOC_DIR = build
UI_DIR = build
# use: qmake "RELEASE=1"
contains(RELEASE, 1) {
# Mac: compile for maximum compatibility (10.5, 32-bit)
macx:QMAKE_CXXFLAGS += -mmacosx-version-min=10.5 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk
!windows:!macx {
# Linux: static link
LIBS += -Wl,-Bstatic
}
}
!win32 {
# for extra security against potential buffer overflows: enable GCCs Stack Smashing Protection
QMAKE_CXXFLAGS *= -fstack-protector-all --param ssp-buffer-size=1
QMAKE_LFLAGS *= -fstack-protector-all --param ssp-buffer-size=1
# We need to exclude this for Windows cross compile with MinGW 4.2.x, as it will result in a non-working executable!
# This can be enabled for Windows, when we switch to MinGW >= 4.4.x.
}
# for extra security on Windows: enable ASLR and DEP via GCC linker flags
win32:QMAKE_LFLAGS *= -Wl,--large-address-aware -static
win32:QMAKE_LFLAGS += -static-libgcc -static-libstdc++
lessThan(QT_MAJOR_VERSION, 5): win32: QMAKE_LFLAGS *= -static
# use: qmake "USE_QRCODE=1"
# libqrencode (http://fukuchi.org/works/qrencode/index.en.html) must be installed for support
contains(USE_QRCODE, 1) {
message(Building with QRCode support)
DEFINES += USE_QRCODE
LIBS += -lqrencode
}
# use: qmake "USE_UPNP=1" ( enabled by default; default)
# or: qmake "USE_UPNP=0" (disabled by default)
# or: qmake "USE_UPNP=-" (not supported)
# miniupnpc (http://miniupnp.free.fr/files/) must be installed for support
contains(USE_UPNP, -) {
message(Building without UPNP support)
} else {
message(Building with UPNP support)
count(USE_UPNP, 0) {
USE_UPNP=1
}
DEFINES += USE_UPNP=$$USE_UPNP STATICLIB
INCLUDEPATH += $$MINIUPNPC_INCLUDE_PATH
LIBS += $$join(MINIUPNPC_LIB_PATH,,-L,) -lminiupnpc
win32:LIBS += -liphlpapi
}
# use: qmake "USE_DBUS=1"
contains(USE_DBUS, 1) {
message(Building with DBUS (Freedesktop notifications) support)
DEFINES += USE_DBUS
QT += dbus
}
# use: qmake "USE_IPV6=1" ( enabled by default; default)
# or: qmake "USE_IPV6=0" (disabled by default)
# or: qmake "USE_IPV6=-" (not supported)
contains(USE_IPV6, -) {
message(Building without IPv6 support)
} else {
count(USE_IPV6, 0) {
USE_IPV6=1
}
DEFINES += USE_IPV6=$$USE_IPV6
}
contains(BITCOIN_NEED_QT_PLUGINS, 1) {
DEFINES += BITCOIN_NEED_QT_PLUGINS
QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs qtaccessiblewidgets
}
INCLUDEPATH += src/leveldb/include src/leveldb/helpers
LIBS += $$PWD/src/leveldb/libleveldb.a $$PWD/src/leveldb/libmemenv.a
SOURCES += src/txdb-leveldb.cpp \
src/bloom.cpp \
src/hash.cpp \
src/aes_helper.c \
src/blake.c \
src/bmw.c \
src/cubehash.c \
src/echo.c \
src/groestl.c \
src/jh.c \
src/keccak.c \
src/luffa.c \
src/shavite.c \
src/simd.c \
src/skein.c
!win32 {
# we use QMAKE_CXXFLAGS_RELEASE even without RELEASE=1 because we use RELEASE to indicate linking preferences not -O preferences
genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a
} else {
# make an educated guess about what the ranlib command is called
isEmpty(QMAKE_RANLIB) {
QMAKE_RANLIB = $$replace(QMAKE_STRIP, strip, ranlib)
}
LIBS += -lshlwapi
#genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libmemenv.a
}
genleveldb.target = $$PWD/src/leveldb/libleveldb.a
genleveldb.depends = FORCE
PRE_TARGETDEPS += $$PWD/src/leveldb/libleveldb.a
QMAKE_EXTRA_TARGETS += genleveldb
# Gross ugly hack that depends on qmake internals, unfortunately there is no other way to do it.
QMAKE_CLEAN += $$PWD/src/leveldb/libleveldb.a; cd $$PWD/src/leveldb ; $(MAKE) clean
# regenerate src/build.h
!windows|contains(USE_BUILD_INFO, 1) {
genbuild.depends = FORCE
genbuild.commands = cd $$PWD; /bin/sh share/genbuild.sh $$OUT_PWD/build/build.h
genbuild.target = $$OUT_PWD/build/build.h
PRE_TARGETDEPS += $$OUT_PWD/build/build.h
QMAKE_EXTRA_TARGETS += genbuild
DEFINES += HAVE_BUILD_INFO
}
contains(USE_O3, 1) {
message(Building O3 optimization flag)
QMAKE_CXXFLAGS_RELEASE -= -O2
QMAKE_CFLAGS_RELEASE -= -O2
QMAKE_CXXFLAGS += -O3
QMAKE_CFLAGS += -O3
}
*-g++-32 {
message("32 platform, adding -msse2 flag")
QMAKE_CXXFLAGS += -msse2
QMAKE_CFLAGS += -msse2
}
QMAKE_CXXFLAGS_WARN_ON = -fdiagnostics-show-option -Wall -Wextra -Wno-ignored-qualifiers -Wformat -Wformat-security -Wno-unused-parameter -Wstack-protector
# Input
DEPENDPATH += src src/json src/qt
HEADERS += src/qt/bitcoingui.h \
src/qt/transactiontablemodel.h \
src/qt/addresstablemodel.h \
src/qt/optionsdialog.h \
src/qt/coincontroldialog.h \
src/qt/coincontroltreewidget.h \
src/qt/sendcoinsdialog.h \
src/qt/addressbookpage.h \
src/qt/signverifymessagedialog.h \
src/qt/aboutdialog.h \
src/qt/editaddressdialog.h \
src/qt/bitcoinaddressvalidator.h \
src/alert.h \
src/addrman.h \
src/base58.h \
src/bignum.h \
src/checkpoints.h \
src/compat.h \
src/coincontrol.h \
src/sync.h \
src/util.h \
src/uint256.h \
src/kernel.h \
src/scrypt.h \
src/pbkdf2.h \
src/serialize.h \
src/strlcpy.h \
src/main.h \
src/miner.h \
src/net.h \
src/key.h \
src/db.h \
src/txdb.h \
src/walletdb.h \
src/script.h \
src/init.h \
src/irc.h \
src/mruset.h \
src/json/json_spirit_writer_template.h \
src/json/json_spirit_writer.h \
src/json/json_spirit_value.h \
src/json/json_spirit_utils.h \
src/json/json_spirit_stream_reader.h \
src/json/json_spirit_reader_template.h \
src/json/json_spirit_reader.h \
src/json/json_spirit_error_position.h \
src/json/json_spirit.h \
src/qt/clientmodel.h \
src/qt/guiutil.h \
src/qt/transactionrecord.h \
src/qt/guiconstants.h \
src/qt/optionsmodel.h \
src/qt/monitoreddatamapper.h \
src/qt/transactiondesc.h \
src/qt/transactiondescdialog.h \
src/qt/bitcoinamountfield.h \
src/wallet.h \
src/keystore.h \
src/qt/transactionfilterproxy.h \
src/qt/transactionview.h \
src/qt/walletmodel.h \
src/bitcoinrpc.h \
src/qt/overviewpage.h \
src/qt/csvmodelwriter.h \
src/crypter.h \
src/qt/sendcoinsentry.h \
src/qt/qvalidatedlineedit.h \
src/qt/bitcoinunits.h \
src/qt/qvaluecombobox.h \
src/qt/askpassphrasedialog.h \
src/protocol.h \
src/qt/notificator.h \
src/qt/qtipcserver.h \
src/allocators.h \
src/ui_interface.h \
src/qt/rpcconsole.h \
src/version.h \
src/netbase.h \
src/clientversion.h \
src/bloom.h \
src/checkqueue.h \
src/hash.h \
src/hashblock.h \
src/limitedmap.h \
src/sph_blake.h \
src/sph_bmw.h \
src/sph_cubehash.h \
src/sph_echo.h \
src/sph_groestl.h \
src/sph_jh.h \
src/sph_keccak.h \
src/sph_luffa.h \
src/sph_shavite.h \
src/sph_simd.h \
src/sph_skein.h \
src/sph_types.h \
src/threadsafety.h \
src/txdb-leveldb.h
SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \
src/qt/transactiontablemodel.cpp \
src/qt/addresstablemodel.cpp \
src/qt/optionsdialog.cpp \
src/qt/sendcoinsdialog.cpp \
src/qt/coincontroldialog.cpp \
src/qt/coincontroltreewidget.cpp \
src/qt/addressbookpage.cpp \
src/qt/signverifymessagedialog.cpp \
src/qt/aboutdialog.cpp \
src/qt/editaddressdialog.cpp \
src/qt/bitcoinaddressvalidator.cpp \
src/alert.cpp \
src/version.cpp \
src/sync.cpp \
src/util.cpp \
src/netbase.cpp \
src/key.cpp \
src/script.cpp \
src/main.cpp \
src/miner.cpp \
src/init.cpp \
src/net.cpp \
src/irc.cpp \
src/checkpoints.cpp \
src/addrman.cpp \
src/db.cpp \
src/walletdb.cpp \
src/qt/clientmodel.cpp \
src/qt/guiutil.cpp \
src/qt/transactionrecord.cpp \
src/qt/optionsmodel.cpp \
src/qt/monitoreddatamapper.cpp \
src/qt/transactiondesc.cpp \
src/qt/transactiondescdialog.cpp \
src/qt/bitcoinstrings.cpp \
src/qt/bitcoinamountfield.cpp \
src/wallet.cpp \
src/keystore.cpp \
src/qt/transactionfilterproxy.cpp \
src/qt/transactionview.cpp \
src/qt/walletmodel.cpp \
src/bitcoinrpc.cpp \
src/rpcdump.cpp \
src/rpcnet.cpp \
src/rpcmining.cpp \
src/rpcwallet.cpp \
src/rpcblockchain.cpp \
src/rpcrawtransaction.cpp \
src/qt/overviewpage.cpp \
src/qt/csvmodelwriter.cpp \
src/crypter.cpp \
src/qt/sendcoinsentry.cpp \
src/qt/qvalidatedlineedit.cpp \
src/qt/bitcoinunits.cpp \
src/qt/qvaluecombobox.cpp \
src/qt/askpassphrasedialog.cpp \
src/protocol.cpp \
src/qt/notificator.cpp \
src/qt/qtipcserver.cpp \
src/qt/rpcconsole.cpp \
src/noui.cpp \
src/kernel.cpp \
src/scrypt-arm.S \
src/scrypt-x86.S \
src/scrypt-x86_64.S \
src/scrypt.cpp \
src/pbkdf2.cpp
RESOURCES += \
src/qt/bitcoin.qrc
FORMS += \
src/qt/forms/coincontroldialog.ui \
src/qt/forms/sendcoinsdialog.ui \
src/qt/forms/addressbookpage.ui \
src/qt/forms/signverifymessagedialog.ui \
src/qt/forms/aboutdialog.ui \
src/qt/forms/editaddressdialog.ui \
src/qt/forms/transactiondescdialog.ui \
src/qt/forms/overviewpage.ui \
src/qt/forms/sendcoinsentry.ui \
src/qt/forms/askpassphrasedialog.ui \
src/qt/forms/rpcconsole.ui \
src/qt/forms/optionsdialog.ui
contains(USE_QRCODE, 1) {
HEADERS += src/qt/qrcodedialog.h
SOURCES += src/qt/qrcodedialog.cpp
FORMS += src/qt/forms/qrcodedialog.ui
}
CODECFORTR = UTF-8
# for lrelease/lupdate
# also add new translations to src/qt/bitcoin.qrc under translations/
TRANSLATIONS = $$files(src/qt/locale/bitcoin_*.ts)
isEmpty(QMAKE_LRELEASE) {
win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe
else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
}
isEmpty(QM_DIR):QM_DIR = $$PWD/src/qt/locale
# automatically build translations, so they can be included in resource file
TSQM.name = lrelease ${QMAKE_FILE_IN}
TSQM.input = TRANSLATIONS
TSQM.output = $$QM_DIR/${QMAKE_FILE_BASE}.qm
TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT}
TSQM.CONFIG = no_link
QMAKE_EXTRA_COMPILERS += TSQM
# "Other files" to show in Qt Creator
OTHER_FILES += \
doc/*.rst doc/*.txt doc/README README.md res/bitcoin-qt.rc
# platform specific defaults, if not overridden on command line
isEmpty(BOOST_LIB_SUFFIX) {
macx:BOOST_LIB_SUFFIX = -mt
windows:BOOST_LIB_SUFFIX = -mgw48-mt-s-1_550
}
isEmpty(BOOST_THREAD_LIB_SUFFIX) {
BOOST_THREAD_LIB_SUFFIX = $$BOOST_LIB_SUFFIX
}
isEmpty(BDB_LIB_PATH) {
macx:BDB_LIB_PATH = /opt/local/lib/db48
}
isEmpty(BDB_LIB_SUFFIX) {
macx:BDB_LIB_SUFFIX = -4.8
}
isEmpty(BDB_INCLUDE_PATH) {
macx:BDB_INCLUDE_PATH = /opt/local/include/db48
}
isEmpty(BOOST_LIB_PATH) {
macx:BOOST_LIB_PATH = /opt/local/lib
}
isEmpty(BOOST_INCLUDE_PATH) {
macx:BOOST_INCLUDE_PATH = /opt/local/include
}
windows:DEFINES += WIN32
windows:RC_FILE = src/qt/res/bitcoin-qt.rc
windows:!contains(MINGW_THREAD_BUGFIX, 0) {
# At least qmake's win32-g++-cross profile is missing the -lmingwthrd
# thread-safety flag. GCC has -mthreads to enable this, but it doesn't
# work with static linking. -lmingwthrd must come BEFORE -lmingw, so
# it is prepended to QMAKE_LIBS_QT_ENTRY.
# It can be turned off with MINGW_THREAD_BUGFIX=0, just in case it causes
# any problems on some untested qmake profile now or in the future.
DEFINES += _MT BOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN
QMAKE_LIBS_QT_ENTRY = -lmingwthrd $$QMAKE_LIBS_QT_ENTRY
}
!windows:!macx {
DEFINES += LINUX
LIBS += -lrt
}
macx:HEADERS += src/qt/macdockiconhandler.h
macx:OBJECTIVE_SOURCES += src/qt/macdockiconhandler.mm
macx:LIBS += -framework Foundation -framework ApplicationServices -framework AppKit
macx:DEFINES += MAC_OSX MSG_NOSIGNAL=0
macx:ICON = src/qt/res/icons/bitcoin.icns
macx:TARGET = "ohmygod-Qt"
macx:QMAKE_CFLAGS_THREAD += -pthread
macx:QMAKE_LFLAGS_THREAD += -pthread
macx:QMAKE_CXXFLAGS_THREAD += -pthread
# Set libraries and includes at end, to use platform-defined defaults if not overridden
INCLUDEPATH += $$BOOST_INCLUDE_PATH $$BDB_INCLUDE_PATH $$OPENSSL_INCLUDE_PATH $$QRENCODE_INCLUDE_PATH
LIBS += $$join(BOOST_LIB_PATH,,-L,) $$join(BDB_LIB_PATH,,-L,) $$join(OPENSSL_LIB_PATH,,-L,) $$join(QRENCODE_LIB_PATH,,-L,)
LIBS += -lssl -lcrypto -ldb_cxx$$BDB_LIB_SUFFIX
# -lgdi32 has to happen after -lcrypto (see #681)
windows:LIBS += -lws2_32 -lshlwapi -lmswsock -lole32 -loleaut32 -luuid -lgdi32
LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread$$BOOST_THREAD_LIB_SUFFIX
windows:LIBS += -lboost_chrono$$BOOST_LIB_SUFFIX
contains(RELEASE, 1) {
!windows:!macx {
# Linux: turn dynamic linking back on for c/c++ runtime libraries
LIBS += -Wl,-Bdynamic
}
}
system($$QMAKE_LRELEASE -silent $$_PRO_FILE_)