contrib: fix typo in install_db4.sh help message
[bitcoinplatinum.git] / contrib / install_db4.sh
blob319c74b43dab835572fc23bba3b3bff373dba1be
1 #!/bin/sh
3 # Install libdb4.8 (Berkeley DB).
5 set -e
7 if [ -z "${1}" ]; then
8 echo "Usage: ./install_db4.sh <base-dir> [<extra-bdb-configure-flag> ...]"
9 echo
10 echo "Must specify a single argument: the directory in which db4 will be built."
11 echo "This is probably \`pwd\` if you're at the root of the bitcoin repository."
12 exit 1
15 expand_path() {
16 echo "$(cd "${1}" && pwd -P)"
19 BDB_PREFIX="$(expand_path ${1})/db4"; shift;
20 BDB_EXTRA_CONFIGURE_FLAGS="${@}"
21 BDB_VERSION='db-4.8.30.NC'
22 BDB_HASH='12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef'
23 BDB_URL="https://download.oracle.com/berkeley-db/${BDB_VERSION}.tar.gz"
25 check_exists() {
26 which "$1" >/dev/null 2>&1
29 sha256_check() {
30 # Args: <sha256_hash> <filename>
32 if check_exists sha256sum; then
33 echo "${1} ${2}" | sha256sum -c
34 elif check_exists sha256; then
35 echo "${1} ${2}" | sha256 -c
36 else
37 echo "${1} ${2}" | shasum -a 256 -c
41 http_get() {
42 # Args: <url> <filename> <sha256_hash>
44 # It's acceptable that we don't require SSL here because we manually verify
45 # content hashes below.
47 if [ -f "${2}" ]; then
48 echo "File ${2} already exists; not downloading again"
49 elif check_exists curl; then
50 curl --insecure "${1}" -o "${2}"
51 else
52 wget --no-check-certificate "${1}" -O "${2}"
55 sha256_check "${3}" "${2}"
58 mkdir -p "${BDB_PREFIX}"
59 http_get "${BDB_URL}" "${BDB_VERSION}.tar.gz" "${BDB_HASH}"
60 tar -xzvf ${BDB_VERSION}.tar.gz -C "$BDB_PREFIX"
61 cd "${BDB_PREFIX}/${BDB_VERSION}/"
63 # Apply a patch when building on OS X to make the build work with Xcode.
65 if [ "$(uname)" = "Darwin" ]; then
66 BDB_OSX_ATOMIC_PATCH_URL='https://raw.githubusercontent.com/narkoleptik/os-x-berkeleydb-patch/0007e2846ae3fc9757849f5277018f4179ad17ef/atomic.patch'
67 BDB_OSX_ATOMIC_PATCH_HASH='ba0e2b4f53e9cb0ec58f60a979b53b8567b4565f0384886196f1fc1ef111d151'
69 http_get "${BDB_OSX_ATOMIC_PATCH_URL}" atomic.patch "${BDB_OSX_ATOMIC_PATCH_HASH}"
70 patch -p1 < atomic.patch
73 cd build_unix/
75 "${BDB_PREFIX}/${BDB_VERSION}/dist/configure" \
76 --enable-cxx --disable-shared --with-pic --prefix="${BDB_PREFIX}" \
77 "${BDB_EXTRA_CONFIGURE_FLAGS}"
79 make install
81 echo
82 echo "db4 build complete."
83 echo
84 echo 'When compiling bitcoind, run `./configure` in the following way:'
85 echo
86 echo " export BDB_PREFIX='${BDB_PREFIX}'"
87 echo ' ./configure LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/" ...'