aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGavin Andresen <gavinandresen@gmail.com>2011-10-10 08:20:28 -0700
committerGavin Andresen <gavinandresen@gmail.com>2011-10-10 08:20:28 -0700
commitab877a2dde2ad96d3719acf6ed39ef4eae9b1ef4 (patch)
treede696fbf22f998d5e79b3b938ff1509a06bdc0c2
parentb50ac8f73e3e3aa47be567f3fcd5b7c8933c49db (diff)
parentb4d0588d06e7c2746b624128b3cc4596459ddf87 (diff)
downloadbitcoin-ab877a2dde2ad96d3719acf6ed39ef4eae9b1ef4.tar.xz
Merge pull request #576 from luke-jr/bitcoind_build_improvements
bitcoind build improvements
-rw-r--r--contrib/gitian-descriptors/gitian.yml4
-rw-r--r--doc/build-unix.txt12
-rw-r--r--src/makefile.unix37
3 files changed, 37 insertions, 16 deletions
diff --git a/contrib/gitian-descriptors/gitian.yml b/contrib/gitian-descriptors/gitian.yml
index efa9cb8c10..7e0d174810 100644
--- a/contrib/gitian-descriptors/gitian.yml
+++ b/contrib/gitian-descriptors/gitian.yml
@@ -53,7 +53,7 @@ script: |
cp $OUTDIR/src/COPYING $OUTDIR
cd src
sed 's/$(DEBUGFLAGS)//' -i makefile.unix
- PATH=$INSTDIR/bin:$PATH make -f makefile.unix CXX="g++ -I$INSTDIR/include -L$INSTDIR/lib" $MAKEOPTS bitcoin USE_UPNP=1
- PATH=$INSTDIR/bin:$PATH make -f makefile.unix CXX="g++ -I$INSTDIR/include -L$INSTDIR/lib" $MAKEOPTS bitcoind USE_UPNP=0
+ PATH=$INSTDIR/bin:$PATH make -f makefile.unix STATIC=1 CXX="g++ -I$INSTDIR/include -L$INSTDIR/lib" $MAKEOPTS bitcoin USE_UPNP=1
+ PATH=$INSTDIR/bin:$PATH make -f makefile.unix STATIC=1 CXX="g++ -I$INSTDIR/include -L$INSTDIR/lib" $MAKEOPTS bitcoind USE_UPNP=0
mkdir -p $OUTDIR/bin/$GBUILD_BITS
install -s bitcoin bitcoind $OUTDIR/bin/$GBUILD_BITS
diff --git a/doc/build-unix.txt b/doc/build-unix.txt
index e47dbf710c..f4178caae5 100644
--- a/doc/build-unix.txt
+++ b/doc/build-unix.txt
@@ -65,14 +65,16 @@ If using Boost 1.37, append -mt to the boost libraries in the makefile.
Dependency Build Instructions: Gentoo
-------------------------------------
-emerge -av boost openssl sys-libs/db
+
+Note: If you just want to install bitcoind on Gentoo, you can add the Bitcoin
+ overlay and use your package manager:
+ layman -a bitcoin && emerge bitcoind
+
+emerge -av1 --noreplace boost glib openssl sys-libs/db:4.8
Take the following steps to build (no UPnP support):
cd ${BITCOIN_DIR}/src
- sed -i 's/<db_cxx.h>/<db4.8\/db_cxx.h>/' *.h # path fix
- sed -i 's/-Bstatic/-Bdynamic/' makefile.unix # dynamic linking
- sed -i 's/^USE_UPNP:=0$/USE_UPNP:=/' makefile.unix # disable UPnP
- make -f makefile.unix
+ make -f makefile.unix USE_UPNP= BDB_INCLUDE_PATH='/usr/include/db4.8'
strip bitcoind
diff --git a/src/makefile.unix b/src/makefile.unix
index 1ef7caaad7..0e903ef18e 100644
--- a/src/makefile.unix
+++ b/src/makefile.unix
@@ -6,26 +6,45 @@ CXX=g++
USE_UPNP:=0
-DEFS=-DNOPCH -DUSE_SSL
+DEFS=-DNOPCH
+
+DEFS += $(addprefix -I,$(BOOST_INCLUDE_PATH) $(BDB_INCLUDE_PATH) $(OPENSSL_INCLUDE_PATH))
+LIBS += $(addprefix -l,$(BOOST_LIB_PATH) $(BDB_LIB_PATH) $(OPENSSL_LIB_PATH))
+
+LMODE = dynamic
+LMODE2 = dynamic
+ifdef STATIC
+ LMODE = static
+ ifeq (${STATIC}, all)
+ LMODE2 = static
+ endif
+endif
# for boost 1.37, add -mt to the boost libraries
LIBS= \
- -Wl,-Bstatic \
- -l boost_system \
- -l boost_filesystem \
- -l boost_program_options \
- -l boost_thread \
- -l db_cxx \
+ -Wl,-B$(LMODE) \
+ -l boost_system$(BOOST_LIB_SUFFIX) \
+ -l boost_filesystem$(BOOST_LIB_SUFFIX) \
+ -l boost_program_options$(BOOST_LIB_SUFFIX) \
+ -l boost_thread$(BOOST_LIB_SUFFIX) \
+ -l db_cxx$(BDB_LIB_SUFFIX) \
-l ssl \
-l crypto
-ifdef USE_UPNP
+ifndef USE_UPNP
+ override USE_UPNP = -
+endif
+ifneq (${USE_UPNP}, -)
LIBS += -l miniupnpc
DEFS += -DUSE_UPNP=$(USE_UPNP)
endif
+ifneq (${USE_SSL}, 0)
+ DEFS += -DUSE_SSL
+endif
+
LIBS+= \
- -Wl,-Bdynamic \
+ -Wl,-B$(LMODE2) \
-l gthread-2.0 \
-l z \
-l dl \