176 lines
6.7 KiB
Diff
176 lines
6.7 KiB
Diff
diff -Naur primecoin-0.1.2-linux.orig/src/bitcoin-qt.pro primecoin-0.1.2-linux/src/bitcoin-qt.pro
|
|
--- primecoin-0.1.2-linux.orig/src/bitcoin-qt.pro 2013-08-05 08:37:14.000000000 -0400
|
|
+++ primecoin-0.1.2-linux/src/bitcoin-qt.pro 2013-11-30 16:39:48.464770389 -0500
|
|
@@ -4,7 +4,7 @@
|
|
VERSION = 0.8.3
|
|
INCLUDEPATH += src src/json src/qt
|
|
QT += network
|
|
-DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE
|
|
+DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE LEVELDB_WITHOUT_MEMENV
|
|
CONFIG += no_include_pwd
|
|
CONFIG += thread
|
|
|
|
@@ -98,25 +98,29 @@
|
|
QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs qtaccessiblewidgets
|
|
}
|
|
|
|
+contains(USE_SYSTEM_LEVELDB, 1) {
|
|
+ LIBS += -lleveldb
|
|
+} else {
|
|
INCLUDEPATH += src/leveldb/include src/leveldb/helpers
|
|
-LIBS += $$PWD/src/leveldb/libleveldb.a $$PWD/src/leveldb/libmemenv.a
|
|
+LIBS += $$PWD/src/leveldb/libleveldb.a
|
|
!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
|
|
+ genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.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.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 && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.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
|
|
+QMAKE_CLEAN += $$PWD/src/leveldb/libleveldb.a; cd $$PWD/src/leveldb && $(MAKE) clean || true
|
|
|
|
# regenerate src/build.h
|
|
!win32|contains(USE_BUILD_INFO, 1) {
|
|
diff -Naur primecoin-0.1.2-linux.orig/src/src/leveldb.cpp primecoin-0.1.2-linux/src/src/leveldb.cpp
|
|
--- primecoin-0.1.2-linux.orig/src/src/leveldb.cpp 2013-08-05 08:37:20.000000000 -0400
|
|
+++ primecoin-0.1.2-linux/src/src/leveldb.cpp 2013-11-30 16:41:25.632773774 -0500
|
|
@@ -8,7 +8,9 @@
|
|
#include <leveldb/env.h>
|
|
#include <leveldb/cache.h>
|
|
#include <leveldb/filter_policy.h>
|
|
-#include <memenv/memenv.h>
|
|
+#ifndef LEVELDB_WITHOUT_MEMENV
|
|
+#include <memenv.h>
|
|
+#endif
|
|
|
|
#include <boost/filesystem.hpp>
|
|
|
|
@@ -43,8 +45,12 @@
|
|
options = GetOptions(nCacheSize);
|
|
options.create_if_missing = true;
|
|
if (fMemory) {
|
|
+#ifndef LEVELDB_WITHOUT_MEMENV
|
|
penv = leveldb::NewMemEnv(leveldb::Env::Default());
|
|
options.env = penv;
|
|
+#else
|
|
+ throw std::runtime_error("CLevelDB(): compiled without memenv support");
|
|
+#endif
|
|
} else {
|
|
if (fWipe) {
|
|
printf("Wiping LevelDB in %s\n", path.string().c_str());
|
|
diff -Naur primecoin-0.1.2-linux.orig/src/src/makefile.unix primecoin-0.1.2-linux/src/src/makefile.unix
|
|
--- primecoin-0.1.2-linux.orig/src/src/makefile.unix 2013-08-05 08:37:21.000000000 -0400
|
|
+++ primecoin-0.1.2-linux/src/src/makefile.unix 2013-11-30 17:20:06.545854617 -0500
|
|
@@ -111,8 +111,7 @@
|
|
# adds some defaults in front. Unfortunately, LDFLAGS=... $(LDFLAGS) does not work.
|
|
xLDFLAGS=$(LDHARDENING) $(LDFLAGS)
|
|
|
|
-OBJS= \
|
|
- leveldb/libleveldb.a \
|
|
+BASEOBJS := \
|
|
obj/alert.o \
|
|
obj/version.o \
|
|
obj/checkpoints.o \
|
|
@@ -121,7 +120,6 @@
|
|
obj/crypter.o \
|
|
obj/key.o \
|
|
obj/db.o \
|
|
- obj/init.o \
|
|
obj/keystore.o \
|
|
obj/main.o \
|
|
obj/net.o \
|
|
@@ -141,25 +139,44 @@
|
|
obj/hash.o \
|
|
obj/bloom.o \
|
|
obj/noui.o \
|
|
- obj/leveldb.o \
|
|
obj/txdb.o \
|
|
obj/prime.o \
|
|
obj/checkpointsync.o
|
|
|
|
+OBJS := \
|
|
+ obj/leveldb.o \
|
|
+ obj/init.o \
|
|
+ $(BASEOBJS)
|
|
+
|
|
+TESTOBJS := \
|
|
+ obj-test/leveldb.o \
|
|
+ $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp)) \
|
|
+ $(BASEOBJS)
|
|
+
|
|
all: primecoind
|
|
|
|
test check: test_primecoin FORCE
|
|
./test_primecoin
|
|
|
|
+ifdef USE_SYSTEM_LEVELDB
|
|
+ LIBS += -lleveldb
|
|
+ TESTLIBS += -lmemenv
|
|
+else
|
|
#
|
|
# LevelDB support
|
|
#
|
|
MAKEOVERRIDES =
|
|
-LIBS += $(CURDIR)/leveldb/libleveldb.a $(CURDIR)/leveldb/libmemenv.a
|
|
+LIBS += $(CURDIR)/leveldb/libleveldb.a
|
|
+TESTLIBS += $(CURDIR)/leveldb/libmemenv.a
|
|
DEFS += $(addprefix -I,$(CURDIR)/leveldb/include)
|
|
DEFS += $(addprefix -I,$(CURDIR)/leveldb/helpers)
|
|
leveldb/libleveldb.a:
|
|
- @echo "Building LevelDB ..." && cd leveldb && $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libleveldb.a libmemenv.a && cd ..
|
|
+ @echo "Building LevelDB ..." && cd leveldb && $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libleveldb.a && cd ..
|
|
+leveldb/libmemenv.a:
|
|
+ @echo "Building LevelDB memenv ..." && cd leveldb && $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libmemenv.a && cd ..
|
|
+OBJS += leveldb/libleveldb.a
|
|
+TESTOBJS += leveldb/libmemenv.a
|
|
+endif
|
|
|
|
# auto-generated dependencies:
|
|
-include obj/*.P
|
|
@@ -170,24 +187,22 @@
|
|
version.cpp: obj/build.h
|
|
DEFS += -DHAVE_BUILD_INFO
|
|
|
|
-obj/%.o: %.cpp
|
|
- $(CXX) -c $(xCXXFLAGS) -MMD -MF $(@:%.o=%.d) -o $@ $<
|
|
+P_TO_D = \
|
|
@cp $(@:%.o=%.d) $(@:%.o=%.P); \
|
|
- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
|
|
+ sed -e 's/\#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
|
|
-e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
|
|
rm -f $(@:%.o=%.d)
|
|
|
|
-primecoind: $(OBJS:obj/%=obj/%)
|
|
- $(LINK) $(xCXXFLAGS) -o $@ $^ $(xLDFLAGS) $(LIBS)
|
|
+obj/%.o: %.cpp
|
|
+ $(CXX) -c $(xCXXFLAGS) -DLEVELDB_WITHOUT_MEMENV -MMD -MF $(@:%.o=%.d) -o $@ $<
|
|
+ $(P_TO_D)
|
|
|
|
-TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp))
|
|
+primecoind: $(OBJS)
|
|
+ $(LINK) $(xCXXFLAGS) -o $@ $^ $(xLDFLAGS) $(LIBS)
|
|
|
|
obj-test/%.o: test/%.cpp
|
|
- $(CXX) -c $(TESTDEFS) $(xCXXFLAGS) -MMD -MF $(@:%.o=%.d) -o $@ $<
|
|
- @cp $(@:%.o=%.d) $(@:%.o=%.P); \
|
|
- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
|
|
- -e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
|
|
- rm -f $(@:%.o=%.d)
|
|
+ $(CXX) -c $(xCXXFLAGS) -DLEVELDB_WITHOUT_MEMENV -MMD -MF $(@:%.o=%.d) -o $@ $<
|
|
+ $(P_TO_D)
|
|
|
|
test_primecoin: $(TESTOBJS) $(filter-out obj/init.o,$(OBJS:obj/%=obj/%))
|
|
$(LINK) $(xCXXFLAGS) -o $@ $(LIBPATHS) $^ $(TESTLIBS) $(xLDFLAGS) $(LIBS)
|