mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 20:12:57 +01:00
098d0fd430
e2bab2aa162ae38b2bf8195b577c982402fbee9d multiprocess: add multiprocess travis configuration (Russell Yanofsky) 603fd6a2e708c04ef6c9880f89d0a4cbaa6fc7c5 depends: add MULTIPROCESS depends option (Russell Yanofsky) 5d1377b52bfcd4edf8553aaf332bfeb92fc554cc build: multiprocess autotools changes (Russell Yanofsky) Pull request description: This PR is part of the [process separation project](https://github.com/bitcoin/bitcoin/projects/10). --- This PR consists of build changes only. It adds an `--enable-multiprocess` autoconf option (off by default and marked experimental), that builds new `bitcoin-node` and `bitcoin-gui` binaries. These currently function the same as existing `bitcoind` and `bitcoin-qt` binaries, but are extended in #10102 with IPC features to execute node, wallet, and gui functions in separate processes. In addition to adding the `--enable-multiprocess` config flag, it also adds a depends package and autoconf rules to build with the [libmultiprocess](https://github.com/chaincodelabs/libmultiprocess) library, and it adds new travis configuration to exercise the build code and run functional tests with the new binaries. The changes in this PR were originally part of #10102 but were moved into #16367 to be able to develop and review the multiprocess build changes independently of the code changes. #16367 was briefly merged and then reverted in #18588. Only change since #16367 has been dropping the `native_boost.mk` depends package which was pointed out to be no longer necessary in https://github.com/bitcoin/bitcoin/pull/16367#issuecomment-596484337 and https://github.com/bitcoin/bitcoin/pull/18588#pullrequestreview-391765649 ACKs for top commit: practicalswift: ACK e2bab2aa162ae38b2bf8195b577c982402fbee9d Sjors: tACK e2bab2aa162ae38b2bf8195b577c982402fbee9d on macOS 10.15.4 hebasto: ACK e2bab2aa162ae38b2bf8195b577c982402fbee9d, tested on Linux Mint 19.3 (x86_64): Tree-SHA512: b5a76eab5abf63d9d8b6d628cbdff4cc1888eef15cafa0a5d56369e2f9d02595fed623f4b74b2cf2830c42c05a774f0943e700f9c768a82d9d348cad199e135c
130 lines
3.2 KiB
Plaintext
130 lines
3.2 KiB
Plaintext
# shellcheck shell=sh disable=SC2034 # Many variables set will be used in
|
|
# ./configure but shellcheck doesn't know
|
|
# that, hence: disable=SC2034
|
|
|
|
true # Dummy command because shellcheck treats all directives before first
|
|
# command as file-wide, and we only want to disable for one line.
|
|
#
|
|
# See: https://github.com/koalaman/shellcheck/wiki/Directive
|
|
|
|
# shellcheck disable=SC2154
|
|
depends_prefix="$(cd "$(dirname "$ac_site_file")/.." && pwd)"
|
|
|
|
cross_compiling=maybe
|
|
host_alias="@HOST@"
|
|
ac_tool_prefix="${host_alias}-"
|
|
|
|
if test -z "$with_boost"; then
|
|
with_boost="$depends_prefix"
|
|
fi
|
|
if test -z "$with_qt_plugindir"; then
|
|
with_qt_plugindir="${depends_prefix}/plugins"
|
|
fi
|
|
if test -z "$with_qt_translationdir"; then
|
|
with_qt_translationdir="${depends_prefix}/translations"
|
|
fi
|
|
if test -z "$with_qt_bindir" && test -z "@no_qt@"; then
|
|
with_qt_bindir="${depends_prefix}/native/bin"
|
|
fi
|
|
if test -z "$with_mpgen" && test -n "@multiprocess@"; then
|
|
with_mpgen="${depends_prefix}/native"
|
|
fi
|
|
|
|
if test -z "$with_qrencode" && test -n "@no_qr@"; then
|
|
with_qrencode=no
|
|
fi
|
|
|
|
if test -z "$enable_wallet" && test -n "@no_wallet@"; then
|
|
enable_wallet=no
|
|
fi
|
|
|
|
if test -z "$with_bdb" && test -n "@no_bdb@"; then
|
|
with_bdb=no
|
|
fi
|
|
|
|
if test -z "$with_sqlite" && test -n "@no_sqlite@"; then
|
|
with_sqlite=no
|
|
fi
|
|
|
|
if test -z "$enable_multiprocess" && test -n "@multiprocess@"; then
|
|
enable_multiprocess=yes
|
|
fi
|
|
|
|
if test -z "$with_miniupnpc" && test -n "@no_upnp@"; then
|
|
with_miniupnpc=no
|
|
fi
|
|
|
|
if test -z "$with_natpmp" && test -n "@no_natpmp@"; then
|
|
with_natpmp=no
|
|
fi
|
|
|
|
if test -z "$with_gui" && test -n "@no_qt@"; then
|
|
with_gui=no
|
|
fi
|
|
|
|
if test -z "$enable_zmq" && test -n "@no_zmq@"; then
|
|
enable_zmq=no
|
|
fi
|
|
|
|
if test -n "@debug@" && test -z "@no_qt@" && test "x$with_gui" != xno; then
|
|
with_gui=qt5_debug
|
|
fi
|
|
|
|
if test "@host_os@" = darwin; then
|
|
BREW=no
|
|
fi
|
|
|
|
PATH="${depends_prefix}/native/bin:${PATH}"
|
|
PKG_CONFIG="$(which pkg-config) --static"
|
|
|
|
# These two need to remain exported because pkg-config does not see them
|
|
# otherwise. That means they must be unexported at the end of configure.ac to
|
|
# avoid ruining the cache. Sigh.
|
|
export PKG_CONFIG_PATH="${depends_prefix}/share/pkgconfig:${depends_prefix}/lib/pkgconfig"
|
|
if test -z "@allow_host_packages@"; then
|
|
export PKG_CONFIG_LIBDIR="${depends_prefix}/lib/pkgconfig"
|
|
fi
|
|
|
|
CPPFLAGS="-I${depends_prefix}/include/ ${CPPFLAGS}"
|
|
LDFLAGS="-L${depends_prefix}/lib ${LDFLAGS}"
|
|
|
|
if test -n "@CC@" -a -z "${CC}"; then
|
|
CC="@CC@"
|
|
fi
|
|
if test -n "@CXX@" -a -z "${CXX}"; then
|
|
CXX="@CXX@"
|
|
fi
|
|
PYTHONPATH="${depends_prefix}/native/lib/python3/dist-packages${PYTHONPATH:+${PATH_SEPARATOR}}${PYTHONPATH}"
|
|
|
|
if test -n "@AR@"; then
|
|
AR="@AR@"
|
|
ac_cv_path_ac_pt_AR="${AR}"
|
|
fi
|
|
|
|
if test -n "@RANLIB@"; then
|
|
RANLIB="@RANLIB@"
|
|
ac_cv_path_ac_pt_RANLIB="${RANLIB}"
|
|
fi
|
|
|
|
if test -n "@NM@"; then
|
|
NM="@NM@"
|
|
ac_cv_path_ac_pt_NM="${NM}"
|
|
fi
|
|
|
|
if test -n "@debug@"; then
|
|
enable_reduce_exports=no
|
|
fi
|
|
|
|
if test -n "@CFLAGS@"; then
|
|
CFLAGS="@CFLAGS@ ${CFLAGS}"
|
|
fi
|
|
if test -n "@CXXFLAGS@"; then
|
|
CXXFLAGS="@CXXFLAGS@ ${CXXFLAGS}"
|
|
fi
|
|
if test -n "@CPPFLAGS@"; then
|
|
CPPFLAGS="@CPPFLAGS@ ${CPPFLAGS}"
|
|
fi
|
|
if test -n "@LDFLAGS@"; then
|
|
LDFLAGS="@LDFLAGS@ ${LDFLAGS}"
|
|
fi
|