1 dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
3 define(_CLIENT_VERSION_MAJOR, 0)
4 define(_CLIENT_VERSION_MINOR, 13)
5 define(_CLIENT_VERSION_REVISION, 99)
6 define(_CLIENT_VERSION_BUILD, 0)
7 define(_CLIENT_VERSION_IS_RELEASE, false)
8 define(_COPYRIGHT_YEAR, 2016)
9 define(_COPYRIGHT_HOLDERS,[The %s developers])
10 define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core]])
11 AC_INIT([Bitcoin Core],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[https://github.com/bitcoin/bitcoin/issues],[bitcoin],[https://bitcoincore.org/])
12 AC_CONFIG_SRCDIR([src/validation.cpp])
13 AC_CONFIG_HEADERS([src/config/bitcoin-config.h])
14 AC_CONFIG_AUX_DIR([build-aux])
15 AC_CONFIG_MACRO_DIR([build-aux/m4])
17 BITCOIN_DAEMON_NAME=bitcoind
18 BITCOIN_GUI_NAME=bitcoin-qt
19 BITCOIN_CLI_NAME=bitcoin-cli
20 BITCOIN_TX_NAME=bitcoin-tx
24 AH_TOP([#ifndef BITCOIN_CONFIG_H])
25 AH_TOP([#define BITCOIN_CONFIG_H])
26 AH_BOTTOM([#endif //BITCOIN_CONFIG_H])
28 dnl faketime breaks configure and is only needed for make. Disable it here.
31 dnl Automake init set-up and checks
32 AM_INIT_AUTOMAKE([no-define subdir-objects foreign])
34 dnl faketime messes with timestamps and causes configure to be re-run.
35 dnl --disable-maintainer-mode can be used to bypass this.
36 AM_MAINTAINER_MODE([enable])
38 dnl make the compilation flags quiet unless V=1 is used
39 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
41 dnl Compiler checks (here before libtool).
42 if test "x${CXXFLAGS+set}" = "xset"; then
43 CXXFLAGS_overridden=yes
45 CXXFLAGS_overridden=no
49 dnl By default, libtool for mingw refuses to link static libs into a dll for
50 dnl fear of mixing pic/non-pic objects, and import/export complications. Since
51 dnl we have those under control, re-enable that functionality.
54 lt_cv_deplibs_check_method="pass_all"
57 dnl Require C++11 compiler (no GNU extensions)
58 AX_CXX_COMPILE_STDCXX([11], [noext], [mandatory])
59 dnl Check if -latomic is required for <std::atomic>
62 dnl Unless the user specified OBJCXX, force it to be the same as CXX. This ensures
63 dnl that we get the same -std flags for both.
64 m4_ifdef([AC_PROG_OBJCXX],[
65 if test "x${OBJCXX+set}" = "x"; then
71 dnl Libtool init checks.
74 dnl Check/return PATH for base programs.
76 AC_PATH_TOOL(RANLIB, ranlib)
77 AC_PATH_TOOL(STRIP, strip)
78 AC_PATH_TOOL(GCOV, gcov)
79 AC_PATH_PROG(LCOV, lcov)
80 dnl Python 3.x is supported from 3.4 on (see https://github.com/bitcoin/bitcoin/issues/7893)
81 AC_PATH_PROGS([PYTHON], [python3.6 python3.5 python3.4 python3 python2.7 python2 python])
82 AC_PATH_PROG(GENHTML, genhtml)
83 AC_PATH_PROG([GIT], [git])
84 AC_PATH_PROG(CCACHE,ccache)
85 AC_PATH_PROG(XGETTEXT,xgettext)
86 AC_PATH_PROG(HEXDUMP,hexdump)
87 AC_PATH_TOOL(READELF, readelf)
88 AC_PATH_TOOL(CPPFILT, c++filt)
89 AC_PATH_TOOL(OBJCOPY, objcopy)
91 AC_ARG_VAR(PYTHONPATH, Augments the default search path for python module files)
94 AC_ARG_ENABLE([wallet],
95 [AS_HELP_STRING([--disable-wallet],
96 [disable wallet (enabled by default)])],
97 [enable_wallet=$enableval],
100 AC_ARG_WITH([miniupnpc],
101 [AS_HELP_STRING([--with-miniupnpc],
102 [enable UPNP (default is yes if libminiupnpc is found)])],
106 AC_ARG_ENABLE([upnp-default],
107 [AS_HELP_STRING([--enable-upnp-default],
108 [if UPNP is enabled, turn it on at startup (default is no)])],
109 [use_upnp_default=$enableval],
110 [use_upnp_default=no])
113 AS_HELP_STRING([--disable-tests],[do not compile tests (default is to compile)]),
114 [use_tests=$enableval],
117 AC_ARG_ENABLE(gui-tests,
118 AS_HELP_STRING([--disable-gui-tests],[do not compile GUI tests (default is to compile if GUI and tests enabled)]),
119 [use_gui_tests=$enableval],
120 [use_gui_tests=$use_tests])
123 AS_HELP_STRING([--disable-bench],[do not compile benchmarks (default is to compile)]),
124 [use_bench=$enableval],
127 AC_ARG_ENABLE([extended-rpc-tests],
128 AS_HELP_STRING([--enable-extended-rpc-tests],[enable expensive RPC tests when using lcov (default no)]),
129 [use_extended_rpc_tests=$enableval],
130 [use_extended_rpc_tests=no])
132 AC_ARG_WITH([qrencode],
133 [AS_HELP_STRING([--with-qrencode],
134 [enable QR code support (default is yes if qt is enabled and libqrencode is found)])],
138 AC_ARG_ENABLE([hardening],
139 [AS_HELP_STRING([--disable-hardening],
140 [do not attempt to harden the resulting executables (default is to harden)])],
141 [use_hardening=$enableval],
144 AC_ARG_ENABLE([reduce-exports],
145 [AS_HELP_STRING([--enable-reduce-exports],
146 [attempt to reduce exported symbols in the resulting executables (default is no)])],
147 [use_reduce_exports=$enableval],
148 [use_reduce_exports=no])
150 AC_ARG_ENABLE([ccache],
151 [AS_HELP_STRING([--disable-ccache],
152 [do not use ccache for building (default is to use if found)])],
153 [use_ccache=$enableval],
156 AC_ARG_ENABLE([lcov],
157 [AS_HELP_STRING([--enable-lcov],
158 [enable lcov testing (default is no)])],
162 AC_ARG_ENABLE([glibc-back-compat],
163 [AS_HELP_STRING([--enable-glibc-back-compat],
164 [enable backwards compatibility with glibc])],
165 [use_glibc_compat=$enableval],
166 [use_glibc_compat=no])
168 AC_ARG_WITH([system-univalue],
169 [AS_HELP_STRING([--with-system-univalue],
170 [Build with system UniValue (default is no)])],
171 [system_univalue=$withval],
175 [AS_HELP_STRING([--disable-zmq],
176 [disable ZMQ notifications])],
177 [use_zmq=$enableval],
180 AC_ARG_WITH([protoc-bindir],[AS_HELP_STRING([--with-protoc-bindir=BIN_DIR],[specify protoc bin path])], [protoc_bin_path=$withval], [])
183 [AS_HELP_STRING([--disable-man],
184 [do not install man pages (default is to install)])],,
186 AM_CONDITIONAL(ENABLE_MAN, test "$enable_man" != no)
189 AC_ARG_ENABLE([debug],
190 [AS_HELP_STRING([--enable-debug],
191 [use debug compiler flags and macros (default is no)])],
192 [enable_debug=$enableval],
196 AX_CHECK_COMPILE_FLAG([-Werror],[CXXFLAG_WERROR="-Werror"],[CXXFLAG_WERROR=""])
198 if test "x$enable_debug" = xyes; then
199 CPPFLAGS="$CPPFLAGS -DDEBUG -DDEBUG_LOCKORDER"
200 if test "x$GCC" = xyes; then
201 CFLAGS="$CFLAGS -g3 -O0"
204 if test "x$GXX" = xyes; then
205 CXXFLAGS="$CXXFLAGS -g3 -O0"
209 if test "x$CXXFLAGS_overridden" = "xno"; then
210 AX_CHECK_COMPILE_FLAG([-Wall],[CXXFLAGS="$CXXFLAGS -Wall"],,[[$CXXFLAG_WERROR]])
211 AX_CHECK_COMPILE_FLAG([-Wextra],[CXXFLAGS="$CXXFLAGS -Wextra"],,[[$CXXFLAG_WERROR]])
212 AX_CHECK_COMPILE_FLAG([-Wformat],[CXXFLAGS="$CXXFLAGS -Wformat"],,[[$CXXFLAG_WERROR]])
213 AX_CHECK_COMPILE_FLAG([-Wformat-security],[CXXFLAGS="$CXXFLAGS -Wformat-security"],,[[$CXXFLAG_WERROR]])
215 ## Some compilers (gcc) ignore unknown -Wno-* options, but warn about all
216 ## unknown options if any other warning is produced. Test the -Wfoo case, and
217 ## set the -Wno-foo case if it works.
218 AX_CHECK_COMPILE_FLAG([-Wunused-parameter],[CXXFLAGS="$CXXFLAGS -Wno-unused-parameter"],,[[$CXXFLAG_WERROR]])
219 AX_CHECK_COMPILE_FLAG([-Wself-assign],[CXXFLAGS="$CXXFLAGS -Wno-self-assign"],,[[$CXXFLAG_WERROR]])
220 AX_CHECK_COMPILE_FLAG([-Wunused-local-typedef],[CXXFLAGS="$CXXFLAGS -Wno-unused-local-typedef"],,[[$CXXFLAG_WERROR]])
221 AX_CHECK_COMPILE_FLAG([-Wdeprecated-register],[CXXFLAGS="$CXXFLAGS -Wno-deprecated-register"],,[[$CXXFLAG_WERROR]])
223 CPPFLAGS="$CPPFLAGS -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS"
226 [AS_HELP_STRING([--with-utils],
227 [build bitcoin-cli bitcoin-tx (default=yes)])],
228 [build_bitcoin_utils=$withval],
229 [build_bitcoin_utils=yes])
232 [AS_HELP_STRING([--with-libs],
233 [build libraries (default=yes)])],
234 [build_bitcoin_libs=$withval],
235 [build_bitcoin_libs=yes])
237 AC_ARG_WITH([daemon],
238 [AS_HELP_STRING([--with-daemon],
239 [build bitcoind daemon (default=yes)])],
240 [build_bitcoind=$withval],
241 [build_bitcoind=yes])
247 #pkgconfig does more harm than good with MinGW
251 AC_CHECK_LIB([mingwthrd], [main],, AC_MSG_ERROR(lib missing))
252 AC_CHECK_LIB([kernel32], [main],, AC_MSG_ERROR(lib missing))
253 AC_CHECK_LIB([user32], [main],, AC_MSG_ERROR(lib missing))
254 AC_CHECK_LIB([gdi32], [main],, AC_MSG_ERROR(lib missing))
255 AC_CHECK_LIB([comdlg32], [main],, AC_MSG_ERROR(lib missing))
256 AC_CHECK_LIB([winspool], [main],, AC_MSG_ERROR(lib missing))
257 AC_CHECK_LIB([winmm], [main],, AC_MSG_ERROR(lib missing))
258 AC_CHECK_LIB([shell32], [main],, AC_MSG_ERROR(lib missing))
259 AC_CHECK_LIB([comctl32], [main],, AC_MSG_ERROR(lib missing))
260 AC_CHECK_LIB([ole32], [main],, AC_MSG_ERROR(lib missing))
261 AC_CHECK_LIB([oleaut32], [main],, AC_MSG_ERROR(lib missing))
262 AC_CHECK_LIB([uuid], [main],, AC_MSG_ERROR(lib missing))
263 AC_CHECK_LIB([rpcrt4], [main],, AC_MSG_ERROR(lib missing))
264 AC_CHECK_LIB([advapi32], [main],, AC_MSG_ERROR(lib missing))
265 AC_CHECK_LIB([ws2_32], [main],, AC_MSG_ERROR(lib missing))
266 AC_CHECK_LIB([mswsock], [main],, AC_MSG_ERROR(lib missing))
267 AC_CHECK_LIB([shlwapi], [main],, AC_MSG_ERROR(lib missing))
268 AC_CHECK_LIB([iphlpapi], [main],, AC_MSG_ERROR(lib missing))
269 AC_CHECK_LIB([crypt32], [main],, AC_MSG_ERROR(lib missing))
271 # -static is interpreted by libtool, where it has a different meaning.
272 # In libtool-speak, it's -all-static.
273 AX_CHECK_LINK_FLAG([[-static]],[LIBTOOL_APP_LDFLAGS="$LIBTOOL_APP_LDFLAGS -all-static"])
275 AC_PATH_PROG([MAKENSIS], [makensis], none)
276 if test x$MAKENSIS = xnone; then
277 AC_MSG_WARN("makensis not found. Cannot create installer.")
280 AC_PATH_TOOL(WINDRES, windres, none)
281 if test x$WINDRES = xnone; then
282 AC_MSG_ERROR("windres not found")
285 CPPFLAGS="$CPPFLAGS -D_MT -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB"
286 LEVELDB_TARGET_FLAGS="-DOS_WINDOWS"
287 if test "x$CXXFLAGS_overridden" = "xno"; then
288 CXXFLAGS="$CXXFLAGS -w"
291 i?86-*) WINDOWS_BITS=32 ;;
292 x86_64-*) WINDOWS_BITS=64 ;;
293 *) AC_MSG_ERROR("Could not determine win32/win64 for installer") ;;
295 AC_SUBST(WINDOWS_BITS)
297 dnl libtool insists upon adding -nostdlib and a list of objects/libs to link against.
298 dnl That breaks our ability to build dll's with static libgcc/libstdc++/libssp. Override
299 dnl its command here, with the predeps/postdeps removed, and -static inserted. Postdeps are
300 dnl also overridden to prevent their insertion later.
301 dnl This should only affect dll's.
302 archive_cmds_CXX="\$CC -shared \$libobjs \$deplibs \$compiler_flags -static -o \$output_objdir/\$soname \${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker \$lib"
308 LEVELDB_TARGET_FLAGS="-DOS_MACOSX"
309 if test x$cross_compiling != xyes; then
311 AC_CHECK_PROG([PORT],port, port)
312 if test x$PORT = xport; then
313 dnl add default macports paths
314 CPPFLAGS="$CPPFLAGS -isystem /opt/local/include"
315 LIBS="$LIBS -L/opt/local/lib"
316 if test -d /opt/local/include/db48; then
317 CPPFLAGS="$CPPFLAGS -I/opt/local/include/db48"
318 LIBS="$LIBS -L/opt/local/lib/db48"
322 AC_CHECK_PROG([BREW],brew, brew)
323 if test x$BREW = xbrew; then
324 dnl These Homebrew packages may be keg-only, meaning that they won't be found
325 dnl in expected paths because they may conflict with system files. Ask
326 dnl Homebrew where each one is located, then adjust paths accordingly.
327 dnl It's safe to add these paths even if the functionality is disabled by
328 dnl the user (--without-wallet or --without-gui for example).
330 openssl_prefix=`$BREW --prefix openssl 2>/dev/null`
331 bdb_prefix=`$BREW --prefix berkeley-db4 2>/dev/null`
332 qt5_prefix=`$BREW --prefix qt5 2>/dev/null`
333 if test x$openssl_prefix != x; then
334 PKG_CONFIG_PATH="$openssl_prefix/lib/pkgconfig:$PKG_CONFIG_PATH"
335 export PKG_CONFIG_PATH
337 if test x$bdb_prefix != x; then
338 CPPFLAGS="$CPPFLAGS -I$bdb_prefix/include"
339 LIBS="$LIBS -L$bdb_prefix/lib"
341 if test x$qt5_prefix != x; then
342 PKG_CONFIG_PATH="$qt5_prefix/lib/pkgconfig:$PKG_CONFIG_PATH"
343 export PKG_CONFIG_PATH
352 AC_PATH_TOOL([INSTALLNAMETOOL], [install_name_tool], install_name_tool)
353 AC_PATH_TOOL([OTOOL], [otool], otool)
354 AC_PATH_PROGS([GENISOIMAGE], [genisoimage mkisofs],genisoimage)
355 AC_PATH_PROGS([RSVG_CONVERT], [rsvg-convert rsvg],rsvg-convert)
356 AC_PATH_PROGS([IMAGEMAGICK_CONVERT], [convert],convert)
357 AC_PATH_PROGS([TIFFCP], [tiffcp],tiffcp)
359 dnl libtool will try to strip the static lib, which is a problem for
360 dnl cross-builds because strip attempts to call a hard-coded ld,
361 dnl which may not exist in the path. Stripping the .a is not
362 dnl necessary, so just disable it.
368 AX_CHECK_LINK_FLAG([[-Wl,-headerpad_max_install_names]], [LDFLAGS="$LDFLAGS -Wl,-headerpad_max_install_names"])
369 CPPFLAGS="$CPPFLAGS -DMAC_OSX"
370 OBJCXXFLAGS="$CXXFLAGS"
374 LEVELDB_TARGET_FLAGS="-DOS_LINUX"
377 LEVELDB_TARGET_FLAGS="-DOS_FREEBSD"
380 LEVELDB_TARGET_FLAGS="-DOS_OPENBSD"
383 OTHER_OS=`echo ${host_os} | awk '{print toupper($0)}'`
384 AC_MSG_WARN([Guessing LevelDB OS as OS_${OTHER_OS}, please check whether this is correct, if not add an entry to configure.ac.])
385 LEVELDB_TARGET_FLAGS="-DOS_${OTHER_OS}"
389 if test x$use_pkgconfig = xyes; then
390 m4_ifndef([PKG_PROG_PKG_CONFIG], [AC_MSG_ERROR(PKG_PROG_PKG_CONFIG macro not found. Please install pkg-config and re-run autogen.sh.)])
391 m4_ifdef([PKG_PROG_PKG_CONFIG], [
393 if test x"$PKG_CONFIG" = "x"; then
394 AC_MSG_ERROR(pkg-config not found.)
399 if test x$use_extended_rpc_tests != xno; then
400 AC_SUBST(EXTENDED_RPC_TESTS, -extended)
403 if test x$use_lcov = xyes; then
404 if test x$LCOV = x; then
405 AC_MSG_ERROR("lcov testing requested but lcov not found")
407 if test x$GCOV = x; then
408 AC_MSG_ERROR("lcov testing requested but gcov not found")
410 if test x$PYTHON = x; then
411 AC_MSG_ERROR("lcov testing requested but python not found")
413 if test x$GENHTML = x; then
414 AC_MSG_ERROR("lcov testing requested but genhtml not found")
416 LCOV="$LCOV --gcov-tool=$GCOV"
417 AX_CHECK_COMPILE_FLAG([--coverage],[CXXFLAGS="$CXXFLAGS --coverage"],
418 [AC_MSG_ERROR("lcov testing requested but --coverage flag does not work")])
421 dnl Check for endianness
424 dnl Check for pthread compile/link requirements
427 # The following macro will add the necessary defines to bitcoin-config.h, but
428 # they also need to be passed down to any subprojects. Pull the results out of
429 # the cache and add them to CPPFLAGS.
431 # detect POSIX or GNU variant of strerror_r
434 if test x$ac_cv_sys_file_offset_bits != x &&
435 test x$ac_cv_sys_file_offset_bits != xno &&
436 test x$ac_cv_sys_file_offset_bits != xunknown; then
437 CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
440 if test x$ac_cv_sys_large_files != x &&
441 test x$ac_cv_sys_large_files != xno &&
442 test x$ac_cv_sys_large_files != xunknown; then
443 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES=$ac_cv_sys_large_files"
446 AX_CHECK_LINK_FLAG([[-Wl,--large-address-aware]], [LDFLAGS="$LDFLAGS -Wl,--large-address-aware"])
448 AX_GCC_FUNC_ATTRIBUTE([visibility])
449 AX_GCC_FUNC_ATTRIBUTE([dllexport])
450 AX_GCC_FUNC_ATTRIBUTE([dllimport])
452 if test x$use_glibc_compat != xno; then
454 #glibc absorbed clock_gettime in 2.17. librt (its previous location) is safe to link
455 #in anyway for back-compat.
456 AC_CHECK_LIB([rt],[clock_gettime],, AC_MSG_ERROR(lib missing))
458 #__fdelt_chk's params and return type have changed from long unsigned int to long int.
459 # See which one is present here.
460 AC_MSG_CHECKING(__fdelt_chk type)
461 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef _FORTIFY_SOURCE
462 #undef _FORTIFY_SOURCE
464 #define _FORTIFY_SOURCE 2
465 #include <sys/select.h>
466 extern "C" long unsigned int __fdelt_warn(long unsigned int);]],[[]])],
467 [ fdelt_type="long unsigned int"],
468 [ fdelt_type="long int"])
469 AC_MSG_RESULT($fdelt_type)
470 AC_DEFINE_UNQUOTED(FDELT_TYPE, $fdelt_type,[parameter and return value type for __fdelt_chk])
472 AC_SEARCH_LIBS([clock_gettime],[rt])
475 if test x$TARGET_OS != xwindows; then
476 # All windows code is PIC, forcing it on just adds useless compile warnings
477 AX_CHECK_COMPILE_FLAG([-fPIC],[PIC_FLAGS="-fPIC"])
480 if test x$use_hardening != xno; then
481 AX_CHECK_COMPILE_FLAG([-Wstack-protector],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -Wstack-protector"])
482 AX_CHECK_COMPILE_FLAG([-fstack-protector-all],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -fstack-protector-all"])
484 AX_CHECK_PREPROC_FLAG([-D_FORTIFY_SOURCE=2],[
485 AX_CHECK_PREPROC_FLAG([-U_FORTIFY_SOURCE],[
486 HARDENED_CPPFLAGS="$HARDENED_CPPFLAGS -U_FORTIFY_SOURCE"
488 HARDENED_CPPFLAGS="$HARDENED_CPPFLAGS -D_FORTIFY_SOURCE=2"
491 AX_CHECK_LINK_FLAG([[-Wl,--dynamicbase]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,--dynamicbase"])
492 AX_CHECK_LINK_FLAG([[-Wl,--nxcompat]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,--nxcompat"])
493 AX_CHECK_LINK_FLAG([[-Wl,--high-entropy-va]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,--high-entropy-va"])
494 AX_CHECK_LINK_FLAG([[-Wl,-z,relro]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,-z,relro"])
495 AX_CHECK_LINK_FLAG([[-Wl,-z,now]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,-z,now"])
497 if test x$TARGET_OS != xwindows; then
498 AX_CHECK_COMPILE_FLAG([-fPIE],[PIE_FLAGS="-fPIE"])
499 AX_CHECK_LINK_FLAG([[-pie]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -pie"])
504 AC_CHECK_LIB([ssp], [main],, AC_MSG_ERROR(lib missing))
509 dnl this flag screws up non-darwin gcc even when the check fails. special-case it.
510 if test x$TARGET_OS = xdarwin; then
511 AX_CHECK_LINK_FLAG([[-Wl,-dead_strip]], [LDFLAGS="$LDFLAGS -Wl,-dead_strip"])
514 AC_CHECK_HEADERS([endian.h sys/endian.h byteswap.h stdio.h stdlib.h unistd.h strings.h sys/types.h sys/stat.h sys/select.h sys/prctl.h])
516 AC_CHECK_DECLS([strnlen])
518 # Check for daemon(3), unrelated to --with-daemon (although used by it)
519 AC_CHECK_DECLS([daemon])
521 AC_CHECK_DECLS([le16toh, le32toh, le64toh, htole16, htole32, htole64, be16toh, be32toh, be64toh, htobe16, htobe32, htobe64],,,
524 #elif HAVE_SYS_ENDIAN_H
525 #include <sys/endian.h>
528 AC_CHECK_DECLS([bswap_16, bswap_32, bswap_64],,,
530 #include <byteswap.h>
533 dnl Check for MSG_NOSIGNAL
534 AC_MSG_CHECKING(for MSG_NOSIGNAL)
535 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]],
536 [[ int f = MSG_NOSIGNAL; ]])],
537 [ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_MSG_NOSIGNAL, 1,[Define this symbol if you have MSG_NOSIGNAL]) ],
541 AC_MSG_CHECKING([for visibility attribute])
542 AC_LINK_IFELSE([AC_LANG_SOURCE([
543 int foo_def( void ) __attribute__((visibility("default")));
547 AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE,1,[Define if the visibility attribute is supported.])
552 if test x$use_reduce_exports = xyes; then
553 AC_MSG_ERROR([Cannot find a working visibility attribute. Use --disable-reduce-exports.])
558 if test x$use_reduce_exports = xyes; then
559 AX_CHECK_COMPILE_FLAG([-fvisibility=hidden],[RE_CXXFLAGS="-fvisibility=hidden"],
560 [AC_MSG_ERROR([Cannot set default symbol visibility. Use --disable-reduce-exports.])])
566 AM_CONDITIONAL([EMBEDDED_LEVELDB],[true])
567 AC_SUBST(LEVELDB_CPPFLAGS)
571 if test x$enable_wallet != xno; then
572 dnl Check for libdb_cxx only if wallet enabled
576 dnl Check for libminiupnpc (optional)
577 if test x$use_upnp != xno; then
579 [miniupnpc/miniwget.h miniupnpc/miniupnpc.h miniupnpc/upnpcommands.h miniupnpc/upnperrors.h],
580 [AC_CHECK_LIB([miniupnpc], [main],[MINIUPNPC_LIBS=-lminiupnpc], [have_miniupnpc=no])],
587 dnl sets $bitcoin_enable_qt, $bitcoin_enable_qt_test, $bitcoin_enable_qt_dbus
588 BITCOIN_QT_CONFIGURE([$use_pkgconfig], [qt5])
590 if test x$build_bitcoin_utils$build_bitcoind$bitcoin_enable_qt$use_tests$use_bench = xnonononono; then
596 if test x$use_boost = xyes; then
598 dnl Minimum required Boost version
599 define(MINIMUM_REQUIRED_BOOST, 1.47.0)
601 dnl Check for boost libs
602 AX_BOOST_BASE([MINIMUM_REQUIRED_BOOST])
605 AX_BOOST_PROGRAM_OPTIONS
610 if test x$use_reduce_exports = xyes; then
611 AC_MSG_CHECKING([for working boost reduced exports])
612 TEMP_CPPFLAGS="$CPPFLAGS"
613 CPPFLAGS="$BOOST_CPPFLAGS $CPPFLAGS"
614 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
615 @%:@include <boost/version.hpp>
617 #if BOOST_VERSION >= 104900
618 // Everything is okay
620 # error Boost version is too old
625 AC_MSG_ERROR([boost versions < 1.49 are known to be broken with reduced exports. Use --disable-reduce-exports.])
627 CPPFLAGS="$TEMP_CPPFLAGS"
631 if test x$use_reduce_exports = xyes; then
632 CXXFLAGS="$CXXFLAGS $RE_CXXFLAGS"
633 AX_CHECK_LINK_FLAG([[-Wl,--exclude-libs,ALL]], [RELDFLAGS="-Wl,--exclude-libs,ALL"])
636 if test x$use_tests = xyes; then
638 if test x$HEXDUMP = x; then
639 AC_MSG_ERROR(hexdump is required for tests)
643 if test x$use_boost = xyes; then
645 AX_BOOST_UNIT_TEST_FRAMEWORK
647 dnl Determine if -DBOOST_TEST_DYN_LINK is needed
648 AC_MSG_CHECKING([for dynamic linked boost test])
650 LIBS="$LIBS $BOOST_LDFLAGS $BOOST_UNIT_TEST_FRAMEWORK_LIB"
651 TEMP_CPPFLAGS="$CPPFLAGS"
652 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
653 AC_LINK_IFELSE([AC_LANG_SOURCE([
654 #define BOOST_TEST_DYN_LINK
655 #define BOOST_TEST_MAIN
656 #include <boost/test/unit_test.hpp>
660 [TESTDEFS="$TESTDEFS -DBOOST_TEST_DYN_LINK"],
663 CPPFLAGS="$TEMP_CPPFLAGS"
668 if test x$use_boost = xyes; then
670 BOOST_LIBS="$BOOST_LDFLAGS $BOOST_SYSTEM_LIB $BOOST_FILESYSTEM_LIB $BOOST_PROGRAM_OPTIONS_LIB $BOOST_THREAD_LIB $BOOST_CHRONO_LIB"
673 dnl If boost (prior to 1.57) was built without c++11, it emulated scoped enums
674 dnl using c++98 constructs. Unfortunately, this implementation detail leaked into
675 dnl the abi. This was fixed in 1.57.
677 dnl When building against that installed version using c++11, the headers pick up
678 dnl on the native c++11 scoped enum support and enable it, however it will fail to
679 dnl link. This can be worked around by disabling c++11 scoped enums if linking will
681 dnl BOOST_NO_SCOPED_ENUMS was changed to BOOST_NO_CXX11_SCOPED_ENUMS in 1.51.
684 LIBS="$BOOST_LIBS $LIBS"
685 TEMP_CPPFLAGS="$CPPFLAGS"
686 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
687 AC_MSG_CHECKING([for mismatched boost c++11 scoped enums])
688 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
689 #include "boost/config.hpp"
690 #include "boost/version.hpp"
691 #if !defined(BOOST_NO_SCOPED_ENUMS) && !defined(BOOST_NO_CXX11_SCOPED_ENUMS) && BOOST_VERSION < 105700
692 #define BOOST_NO_SCOPED_ENUMS
693 #define BOOST_NO_CXX11_SCOPED_ENUMS
696 #include "boost/filesystem.hpp"
699 boost::filesystem::copy_file("foo", "bar");
704 [AC_MSG_RESULT(mismatched); BOOST_CPPFLAGS="$BOOST_CPPFLAGS -DBOOST_NO_SCOPED_ENUMS -DBOOST_NO_CXX11_SCOPED_ENUMS"], [AC_MSG_RESULT(ok)])
706 CPPFLAGS="$TEMP_CPPFLAGS"
708 dnl Boost >= 1.50 uses sleep_for rather than the now-deprecated sleep, however
709 dnl it was broken from 1.50 to 1.52 when backed by nanosleep. Use sleep_for if
710 dnl a working version is available, else fall back to sleep. sleep was removed
712 dnl If neither is available, abort.
714 LIBS="$BOOST_LIBS $LIBS"
715 TEMP_CPPFLAGS="$CPPFLAGS"
716 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
717 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
718 #include <boost/thread/thread.hpp>
719 #include <boost/version.hpp>
721 #if BOOST_VERSION >= 105000 && (!defined(BOOST_HAS_NANOSLEEP) || BOOST_VERSION >= 105200)
722 boost::this_thread::sleep_for(boost::chrono::milliseconds(0));
728 AC_DEFINE(HAVE_WORKING_BOOST_SLEEP_FOR, 1, [Define this symbol if boost sleep_for works])],
731 CPPFLAGS="$TEMP_CPPFLAGS"
733 if test x$boost_sleep != xyes; then
735 LIBS="$BOOST_LIBS $LIBS"
736 TEMP_CPPFLAGS="$CPPFLAGS"
737 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
738 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
739 #include <boost/version.hpp>
740 #include <boost/thread.hpp>
741 #include <boost/date_time/posix_time/posix_time_types.hpp>
743 #if BOOST_VERSION <= 105600
744 boost::this_thread::sleep(boost::posix_time::milliseconds(0));
749 [boost_sleep=yes; AC_DEFINE(HAVE_WORKING_BOOST_SLEEP, 1, [Define this symbol if boost sleep works])],
752 CPPFLAGS="$TEMP_CPPFLAGS"
755 if test x$boost_sleep != xyes; then
756 AC_MSG_ERROR(No working boost sleep implementation found.)
761 if test x$use_pkgconfig = xyes; then
766 PKG_CHECK_MODULES([SSL], [libssl],, [AC_MSG_ERROR(openssl not found.)])
767 PKG_CHECK_MODULES([CRYPTO], [libcrypto],,[AC_MSG_ERROR(libcrypto not found.)])
768 BITCOIN_QT_CHECK([PKG_CHECK_MODULES([PROTOBUF], [protobuf], [have_protobuf=yes], [BITCOIN_QT_FAIL(libprotobuf not found)])])
769 if test x$use_qr != xno; then
770 BITCOIN_QT_CHECK([PKG_CHECK_MODULES([QR], [libqrencode], [have_qrencode=yes], [have_qrencode=no])])
772 if test x$build_bitcoin_utils$build_bitcoind$bitcoin_enable_qt$use_tests != xnononono; then
773 PKG_CHECK_MODULES([EVENT], [libevent],, [AC_MSG_ERROR(libevent not found.)])
774 if test x$TARGET_OS != xwindows; then
775 PKG_CHECK_MODULES([EVENT_PTHREADS], [libevent_pthreads],, [AC_MSG_ERROR(libevent_pthreads not found.)])
779 if test "x$use_zmq" = "xyes"; then
780 PKG_CHECK_MODULES([ZMQ],[libzmq >= 4],
781 [AC_DEFINE([ENABLE_ZMQ],[1],[Define to 1 to enable ZMQ functions])],
782 [AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
783 AC_MSG_WARN([libzmq version 4.x or greater not found, disabling])
786 AC_DEFINE_UNQUOTED([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
791 AC_CHECK_HEADER([openssl/crypto.h],,AC_MSG_ERROR(libcrypto headers missing))
792 AC_CHECK_LIB([crypto], [main],CRYPTO_LIBS=-lcrypto, AC_MSG_ERROR(libcrypto missing))
794 AC_CHECK_HEADER([openssl/ssl.h],, AC_MSG_ERROR(libssl headers missing),)
795 AC_CHECK_LIB([ssl], [main],SSL_LIBS=-lssl, AC_MSG_ERROR(libssl missing))
797 if test x$build_bitcoin_utils$build_bitcoind$bitcoin_enable_qt$use_tests != xnononono; then
798 AC_CHECK_HEADER([event2/event.h],, AC_MSG_ERROR(libevent headers missing),)
799 AC_CHECK_LIB([event],[main],EVENT_LIBS=-levent,AC_MSG_ERROR(libevent missing))
800 if test x$TARGET_OS != xwindows; then
801 AC_CHECK_LIB([event_pthreads],[main],EVENT_PTHREADS_LIBS=-levent_pthreads,AC_MSG_ERROR(libevent_pthreads missing))
805 if test "x$use_zmq" = "xyes"; then
806 AC_CHECK_HEADER([zmq.h],
807 [AC_DEFINE([ENABLE_ZMQ],[1],[Define to 1 to enable ZMQ functions])],
808 [AC_MSG_WARN([zmq.h not found, disabling zmq support])
810 AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])])
811 AC_CHECK_LIB([zmq],[zmq_ctx_shutdown],ZMQ_LIBS=-lzmq,
812 [AC_MSG_WARN([libzmq >= 4.0 not found, disabling zmq support])
814 AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])])
816 AC_DEFINE_UNQUOTED([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
819 if test "x$use_zmq" = "xyes"; then
820 dnl Assume libzmq was built for static linking
823 ZMQ_CFLAGS="$ZMQ_CFLAGS -DZMQ_STATIC"
828 BITCOIN_QT_CHECK(AC_CHECK_LIB([protobuf] ,[main],[PROTOBUF_LIBS=-lprotobuf], BITCOIN_QT_FAIL(libprotobuf not found)))
829 if test x$use_qr != xno; then
830 BITCOIN_QT_CHECK([AC_CHECK_LIB([qrencode], [main],[QR_LIBS=-lqrencode], [have_qrencode=no])])
831 BITCOIN_QT_CHECK([AC_CHECK_HEADER([qrencode.h],, have_qrencode=no)])
837 need_bundled_univalue=yes
839 if test x$build_bitcoin_utils$build_bitcoind$bitcoin_enable_qt$use_tests$use_bench = xnonononono; then
840 need_bundled_univalue=no
843 if test x$system_univalue != xno ; then
845 if test x$use_pkgconfig = xyes; then
850 PKG_CHECK_MODULES([UNIVALUE],[libunivalue],[found_univalue=yes],[true])
854 AC_CHECK_HEADER([univalue.h],[
855 AC_CHECK_LIB([univalue], [main],[
856 UNIVALUE_LIBS=-lunivalue
862 if test x$found_univalue = xyes ; then
864 need_bundled_univalue=no
865 elif test x$system_univalue = xyes ; then
866 AC_MSG_ERROR([univalue not found])
872 if test x$need_bundled_univalue = xyes ; then
873 UNIVALUE_CFLAGS='-I$(srcdir)/univalue/include'
874 UNIVALUE_LIBS='univalue/libunivalue.la'
879 AM_CONDITIONAL([EMBEDDED_UNIVALUE],[test x$need_bundled_univalue = xyes])
880 AC_SUBST(UNIVALUE_CFLAGS)
881 AC_SUBST(UNIVALUE_LIBS)
883 BITCOIN_QT_PATH_PROGS([PROTOC], [protoc],$protoc_bin_path)
885 AC_MSG_CHECKING([whether to build bitcoind])
886 AM_CONDITIONAL([BUILD_BITCOIND], [test x$build_bitcoind = xyes])
887 AC_MSG_RESULT($build_bitcoind)
889 AC_MSG_CHECKING([whether to build utils (bitcoin-cli bitcoin-tx)])
890 AM_CONDITIONAL([BUILD_BITCOIN_UTILS], [test x$build_bitcoin_utils = xyes])
891 AC_MSG_RESULT($build_bitcoin_utils)
893 AC_MSG_CHECKING([whether to build libraries])
894 AM_CONDITIONAL([BUILD_BITCOIN_LIBS], [test x$build_bitcoin_libs = xyes])
895 if test x$build_bitcoin_libs = xyes; then
896 AC_DEFINE(HAVE_CONSENSUS_LIB, 1, [Define this symbol if the consensus lib has been built])
897 AC_CONFIG_FILES([libbitcoinconsensus.pc:libbitcoinconsensus.pc.in])
899 AC_MSG_RESULT($build_bitcoin_libs)
903 if test "x$use_ccache" != "xno"; then
904 AC_MSG_CHECKING(if ccache should be used)
905 if test x$CCACHE = x; then
906 if test "x$use_ccache" = "xyes"; then
907 AC_MSG_ERROR([ccache not found.]);
913 CC="$ac_cv_path_CCACHE $CC"
914 CXX="$ac_cv_path_CCACHE $CXX"
916 AC_MSG_RESULT($use_ccache)
918 if test "x$use_ccache" = "xyes"; then
919 AX_CHECK_PREPROC_FLAG([-Qunused-arguments],[CPPFLAGS="-Qunused-arguments $CPPFLAGS"])
923 AC_MSG_CHECKING([if wallet should be enabled])
924 if test x$enable_wallet != xno; then
926 AC_DEFINE_UNQUOTED([ENABLE_WALLET],[1],[Define to 1 to enable wallet functions])
932 dnl enable upnp support
933 AC_MSG_CHECKING([whether to build with support for UPnP])
934 if test x$have_miniupnpc = xno; then
935 if test x$use_upnp = xyes; then
936 AC_MSG_ERROR("UPnP requested but cannot be built. use --without-miniupnpc")
940 if test x$use_upnp != xno; then
942 AC_MSG_CHECKING([whether to build with UPnP enabled by default])
945 if test x$use_upnp_default != xno; then
949 AC_MSG_RESULT($use_upnp_default)
950 AC_DEFINE_UNQUOTED([USE_UPNP],[$upnp_setting],[UPnP support not compiled if undefined, otherwise value (0 or 1) determines default state])
951 if test x$TARGET_OS = xwindows; then
952 MINIUPNPC_CPPFLAGS="-DSTATICLIB -DMINIUPNP_STATICLIB"
959 dnl these are only used when qt is enabled
961 if test x$bitcoin_enable_qt != xno; then
962 dnl enable dbus support
963 AC_MSG_CHECKING([whether to build GUI with support for D-Bus])
964 if test x$bitcoin_enable_qt_dbus != xno; then
965 AC_DEFINE([USE_DBUS],[1],[Define if dbus support should be compiled in])
967 AC_MSG_RESULT($bitcoin_enable_qt_dbus)
969 dnl enable qr support
970 AC_MSG_CHECKING([whether to build GUI with support for QR codes])
971 if test x$have_qrencode = xno; then
972 if test x$use_qr = xyes; then
973 AC_MSG_ERROR("QR support requested but cannot be built. use --without-qrencode")
977 if test x$use_qr != xno; then
979 AC_DEFINE([USE_QRCODE],[1],[Define if QR support should be compiled in])
986 if test x$XGETTEXT = x; then
987 AC_MSG_WARN("xgettext is required to update qt translations")
990 AC_MSG_CHECKING([whether to build test_bitcoin-qt])
991 if test x$use_gui_tests$bitcoin_enable_qt_test = xyesyes; then
999 AM_CONDITIONAL([ENABLE_ZMQ], [test "x$use_zmq" = "xyes"])
1001 AC_MSG_CHECKING([whether to build test_bitcoin])
1002 if test x$use_tests = xyes; then
1003 AC_MSG_RESULT([yes])
1010 AC_MSG_CHECKING([whether to reduce exports])
1011 if test x$use_reduce_exports = xyes; then
1012 AC_MSG_RESULT([yes])
1017 if test x$build_bitcoin_utils$build_bitcoin_libs$build_bitcoind$bitcoin_enable_qt$use_bench$use_tests = xnononononono; then
1018 AC_MSG_ERROR([No targets! Please specify at least one of: --with-utils --with-libs --with-daemon --with-gui --enable-bench or --enable-tests])
1021 AM_CONDITIONAL([TARGET_DARWIN], [test x$TARGET_OS = xdarwin])
1022 AM_CONDITIONAL([BUILD_DARWIN], [test x$BUILD_OS = xdarwin])
1023 AM_CONDITIONAL([TARGET_WINDOWS], [test x$TARGET_OS = xwindows])
1024 AM_CONDITIONAL([ENABLE_WALLET],[test x$enable_wallet = xyes])
1025 AM_CONDITIONAL([ENABLE_TESTS],[test x$BUILD_TEST = xyes])
1026 AM_CONDITIONAL([ENABLE_QT],[test x$bitcoin_enable_qt = xyes])
1027 AM_CONDITIONAL([ENABLE_QT_TESTS],[test x$BUILD_TEST_QT = xyes])
1028 AM_CONDITIONAL([ENABLE_BENCH],[test x$use_bench = xyes])
1029 AM_CONDITIONAL([USE_QRCODE], [test x$use_qr = xyes])
1030 AM_CONDITIONAL([USE_LCOV],[test x$use_lcov = xyes])
1031 AM_CONDITIONAL([GLIBC_BACK_COMPAT],[test x$use_glibc_compat = xyes])
1032 AM_CONDITIONAL([HARDEN],[test x$use_hardening = xyes])
1034 AC_DEFINE(CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MAJOR, [Major version])
1035 AC_DEFINE(CLIENT_VERSION_MINOR, _CLIENT_VERSION_MINOR, [Minor version])
1036 AC_DEFINE(CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION, [Build revision])
1037 AC_DEFINE(CLIENT_VERSION_BUILD, _CLIENT_VERSION_BUILD, [Version Build])
1038 AC_DEFINE(CLIENT_VERSION_IS_RELEASE, _CLIENT_VERSION_IS_RELEASE, [Version is release])
1039 AC_DEFINE(COPYRIGHT_YEAR, _COPYRIGHT_YEAR, [Copyright year])
1040 AC_DEFINE(COPYRIGHT_HOLDERS, "_COPYRIGHT_HOLDERS", [Copyright holder(s) before %s replacement])
1041 AC_DEFINE(COPYRIGHT_HOLDERS_SUBSTITUTION, "_COPYRIGHT_HOLDERS_SUBSTITUTION", [Replacement for %s in copyright holders string])
1042 define(_COPYRIGHT_HOLDERS_FINAL, [patsubst(_COPYRIGHT_HOLDERS, [%s], [_COPYRIGHT_HOLDERS_SUBSTITUTION])])
1043 AC_DEFINE(COPYRIGHT_HOLDERS_FINAL, "_COPYRIGHT_HOLDERS_FINAL", [Copyright holder(s)])
1044 AC_SUBST(CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MAJOR)
1045 AC_SUBST(CLIENT_VERSION_MINOR, _CLIENT_VERSION_MINOR)
1046 AC_SUBST(CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION)
1047 AC_SUBST(CLIENT_VERSION_BUILD, _CLIENT_VERSION_BUILD)
1048 AC_SUBST(CLIENT_VERSION_IS_RELEASE, _CLIENT_VERSION_IS_RELEASE)
1049 AC_SUBST(COPYRIGHT_YEAR, _COPYRIGHT_YEAR)
1050 AC_SUBST(COPYRIGHT_HOLDERS, "_COPYRIGHT_HOLDERS")
1051 AC_SUBST(COPYRIGHT_HOLDERS_SUBSTITUTION, "_COPYRIGHT_HOLDERS_SUBSTITUTION")
1052 AC_SUBST(COPYRIGHT_HOLDERS_FINAL, "_COPYRIGHT_HOLDERS_FINAL")
1053 AC_SUBST(BITCOIN_DAEMON_NAME)
1054 AC_SUBST(BITCOIN_GUI_NAME)
1055 AC_SUBST(BITCOIN_CLI_NAME)
1056 AC_SUBST(BITCOIN_TX_NAME)
1059 AC_SUBST(HARDENED_CXXFLAGS)
1060 AC_SUBST(HARDENED_CPPFLAGS)
1061 AC_SUBST(HARDENED_LDFLAGS)
1064 AC_SUBST(LIBTOOL_APP_LDFLAGS)
1066 AC_SUBST(USE_QRCODE)
1067 AC_SUBST(BOOST_LIBS)
1069 AC_SUBST(LEVELDB_TARGET_FLAGS)
1070 AC_SUBST(MINIUPNPC_CPPFLAGS)
1071 AC_SUBST(MINIUPNPC_LIBS)
1072 AC_SUBST(CRYPTO_LIBS)
1074 AC_SUBST(EVENT_LIBS)
1075 AC_SUBST(EVENT_PTHREADS_LIBS)
1077 AC_SUBST(PROTOBUF_LIBS)
1079 AC_CONFIG_FILES([Makefile src/Makefile doc/man/Makefile share/setup.nsi share/qt/Info.plist src/test/buildenv.py])
1080 AC_CONFIG_FILES([qa/pull-tester/run-bitcoind-for-test.sh],[chmod +x qa/pull-tester/run-bitcoind-for-test.sh])
1081 AC_CONFIG_FILES([qa/pull-tester/tests_config.py],[chmod +x qa/pull-tester/tests_config.py])
1082 AC_CONFIG_FILES([contrib/devtools/split-debug.sh],[chmod +x contrib/devtools/split-debug.sh])
1083 AC_CONFIG_LINKS([qa/pull-tester/rpc-tests.py:qa/pull-tester/rpc-tests.py])
1085 dnl boost's m4 checks do something really nasty: they export these vars. As a
1086 dnl result, they leak into secp256k1's configure and crazy things happen.
1087 dnl Until this is fixed upstream and we've synced, we'll just un-export them.
1088 CPPFLAGS_TEMP="$CPPFLAGS"
1090 CPPFLAGS="$CPPFLAGS_TEMP"
1092 LDFLAGS_TEMP="$LDFLAGS"
1094 LDFLAGS="$LDFLAGS_TEMP"
1100 PKGCONFIG_PATH_TEMP="$PKG_CONFIG_PATH"
1101 unset PKG_CONFIG_PATH
1102 PKG_CONFIG_PATH="$PKGCONFIG_PATH_TEMP"
1104 PKGCONFIG_LIBDIR_TEMP="$PKG_CONFIG_LIBDIR"
1105 unset PKG_CONFIG_LIBDIR
1106 PKG_CONFIG_LIBDIR="$PKGCONFIG_LIBDIR_TEMP"
1108 if test x$need_bundled_univalue = xyes; then
1109 AC_CONFIG_SUBDIRS([src/univalue])
1112 ac_configure_args="${ac_configure_args} --disable-shared --with-pic --with-bignum=no --enable-module-recovery"
1113 AC_CONFIG_SUBDIRS([src/secp256k1])
1117 dnl Taken from https://wiki.debian.org/RpathIssue
1120 AC_MSG_RESULT([Fixing libtool for -rpath problems.])
1121 sed < libtool > libtool-2 \
1122 's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" -D__LIBTOOL_IS_A_FOOL__ "/'
1123 mv libtool-2 libtool
1128 dnl Replace the BUILDDIR path with the correct Windows path if compiling on Native Windows
1131 sed 's/BUILDDIR="\/\([[a-z]]\)/BUILDDIR="\1:/' qa/pull-tester/tests_config.py > qa/pull-tester/tests_config-2.py
1132 mv qa/pull-tester/tests_config-2.py qa/pull-tester/tests_config.py
1137 echo "Options used to compile and link:"
1138 echo " with wallet = $enable_wallet"
1139 echo " with gui / qt = $bitcoin_enable_qt"
1140 if test x$bitcoin_enable_qt != xno; then
1141 echo " qt version = $bitcoin_qt_got_major_vers"
1142 echo " with qr = $use_qr"
1144 echo " with zmq = $use_zmq"
1145 echo " with test = $use_tests"
1146 echo " with bench = $use_bench"
1147 echo " with upnp = $use_upnp"
1148 echo " debug enabled = $enable_debug"
1150 echo " target os = $TARGET_OS"
1151 echo " build os = $BUILD_OS"
1154 echo " CFLAGS = $CFLAGS"
1155 echo " CPPFLAGS = $CPPFLAGS"
1157 echo " CXXFLAGS = $CXXFLAGS"
1158 echo " LDFLAGS = $LDFLAGS"