|
|
|
@ -29,19 +29,19 @@ contains(RELEASE, 1) {
|
|
|
|
|
|
|
|
|
|
!win32:!macx {
|
|
|
|
|
# Linux: static link
|
|
|
|
|
LIBS += -Wl,-Bstatic
|
|
|
|
|
LIBS += -Wl,-Bstatic -Wl,-z,relro -Wl,-z,now
|
|
|
|
|
# for extra security (see: https://wiki.debian.org/Hardening)
|
|
|
|
|
QMAKE_CXXFLAGS *= -D_FORTIFY_SOURCE=2
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
!win32 {
|
|
|
|
|
# for extra security against potential buffer overflows: enable GCCs Stack Smashing Protection
|
|
|
|
|
QMAKE_CXXFLAGS *= -fstack-protector-all
|
|
|
|
|
QMAKE_LFLAGS *= -fstack-protector-all
|
|
|
|
|
# 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 against potential buffer overflows: enable GCCs Stack Smashing Protection
|
|
|
|
|
QMAKE_CXXFLAGS *= -fstack-protector-all
|
|
|
|
|
QMAKE_LFLAGS *= -fstack-protector-all
|
|
|
|
|
# Exclude on 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 (see: https://wiki.debian.org/Hardening)
|
|
|
|
|
QMAKE_CXXFLAGS *= -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-z,now
|
|
|
|
|
# for extra security on Windows: enable ASLR and DEP via GCC linker flags
|
|
|
|
|
win32:QMAKE_LFLAGS *= -Wl,--dynamicbase -Wl,--nxcompat
|
|
|
|
|
# on Windows: enable GCC large address aware linker flag
|
|
|
|
@ -99,14 +99,14 @@ contains(BITCOIN_NEED_QT_PLUGINS, 1) {
|
|
|
|
|
INCLUDEPATH += src/leveldb/include src/leveldb/helpers
|
|
|
|
|
LIBS += $$PWD/src/leveldb/libleveldb.a $$PWD/src/leveldb/libmemenv.a
|
|
|
|
|
!win32 {
|
|
|
|
|
genleveldb.commands = cd $$PWD/src/leveldb && $(MAKE) libleveldb.a libmemenv.a
|
|
|
|
|
genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS\" 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) libleveldb.a libmemenv.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libmemenv.a
|
|
|
|
|
genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS\" 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
|
|
|
|
|