From b4d0588d06e7c2746b624128b3cc4596459ddf87 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Sun, 9 Oct 2011 14:23:20 -0400 Subject: [PATCH] Add support to makefile.unix for the same parameters used by bitcoin-qt.pro, dynamic linking unless STATIC=1 is passed --- contrib/gitian-descriptors/gitian.yml | 4 +-- doc/build-unix.txt | 12 +++++---- src/makefile.unix | 37 ++++++++++++++++++++------- 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///' *.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 \