1 dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
3 define(_CLIENT_VERSION_MAJOR, 0)
4 define(_CLIENT_VERSION_MINOR, 12)
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/main.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
48 m4_ifdef([AC_PROG_OBJCXX],[AC_PROG_OBJCXX])
50 dnl By default, libtool for mingw refuses to link static libs into a dll for
51 dnl fear of mixing pic/non-pic objects, and import/export complications. Since
52 dnl we have those under control, re-enable that functionality.
55 lt_cv_deplibs_check_method="pass_all"
58 dnl Require C++11 compiler (no GNU extensions)
59 AX_CXX_COMPILE_STDCXX([11], [noext], [mandatory])
60 dnl Libtool init checks.
63 dnl Check/return PATH for base programs.
65 AC_PATH_TOOL(RANLIB, ranlib)
66 AC_PATH_TOOL(STRIP, strip)
67 AC_PATH_TOOL(GCOV, gcov)
68 AC_PATH_PROG(LCOV, lcov)
69 AC_PATH_PROG(JAVA, java)
70 AC_PATH_PROGS([PYTHON], [python3 python2.7 python2 python])
71 AC_PATH_PROG(GENHTML, genhtml)
72 AC_PATH_PROG([GIT], [git])
73 AC_PATH_PROG(CCACHE,ccache)
74 AC_PATH_PROG(XGETTEXT,xgettext)
75 AC_PATH_PROG(HEXDUMP,hexdump)
76 AC_PATH_TOOL(READELF, readelf)
77 AC_PATH_TOOL(CPPFILT, c++filt)
78 AC_PATH_TOOL(OBJCOPY, objcopy)
80 AC_ARG_VAR(PYTHONPATH, Augments the default search path for python module files)
86 AC_ARG_ENABLE([wallet],
87 [AS_HELP_STRING([--disable-wallet],
88 [disable wallet (enabled by default)])],
89 [enable_wallet=$enableval],
92 AC_ARG_WITH([miniupnpc],
93 [AS_HELP_STRING([--with-miniupnpc],
94 [enable UPNP (default is yes if libminiupnpc is found)])],
98 AC_ARG_ENABLE([upnp-default],
99 [AS_HELP_STRING([--enable-upnp-default],
100 [if UPNP is enabled, turn it on at startup (default is no)])],
101 [use_upnp_default=$enableval],
102 [use_upnp_default=no])
105 AS_HELP_STRING([--disable-tests],[do not compile tests (default is to compile)]),
106 [use_tests=$enableval],
109 AC_ARG_ENABLE(gui-tests,
110 AS_HELP_STRING([--disable-gui-tests],[do not compile GUI tests (default is to compile if GUI and tests enabled)]),
111 [use_gui_tests=$enableval],
112 [use_gui_tests=$use_tests])
115 AS_HELP_STRING([--disable-bench],[do not compile benchmarks (default is to compile)]),
116 [use_bench=$enableval],
119 AC_ARG_WITH([comparison-tool],
120 AS_HELP_STRING([--with-comparison-tool],[path to java comparison tool (requires --enable-tests)]),
121 [use_comparison_tool=$withval],
122 [use_comparison_tool=no])
124 AC_ARG_ENABLE([comparison-tool-reorg-tests],
125 AS_HELP_STRING([--enable-comparison-tool-reorg-tests],[enable expensive reorg tests in the comparison tool (default no)]),
126 [use_comparison_tool_reorg_tests=$enableval],
127 [use_comparison_tool_reorg_tests=no])
129 AC_ARG_ENABLE([extended-rpc-tests],
130 AS_HELP_STRING([--enable-extended-rpc-tests],[enable expensive RPC tests when using lcov (default no)]),
131 [use_extended_rpc_tests=$enableval],
132 [use_extended_rpc_tests=no])
134 AC_ARG_WITH([qrencode],
135 [AS_HELP_STRING([--with-qrencode],
136 [enable QR code support (default is yes if qt is enabled and libqrencode is found)])],
140 AC_ARG_ENABLE([hardening],
141 [AS_HELP_STRING([--disable-hardening],
142 [do not attempt to harden the resulting executables (default is to harden)])],
143 [use_hardening=$enableval],
146 AC_ARG_ENABLE([reduce-exports],
147 [AS_HELP_STRING([--enable-reduce-exports],
148 [attempt to reduce exported symbols in the resulting executables (default is no)])],
149 [use_reduce_exports=$enableval],
150 [use_reduce_exports=no])
152 AC_ARG_ENABLE([ccache],
153 [AS_HELP_STRING([--disable-ccache],
154 [do not use ccache for building (default is to use if found)])],
155 [use_ccache=$enableval],
158 AC_ARG_ENABLE([lcov],
159 [AS_HELP_STRING([--enable-lcov],
160 [enable lcov testing (default is no)])],
164 AC_ARG_ENABLE([glibc-back-compat],
165 [AS_HELP_STRING([--enable-glibc-back-compat],
166 [enable backwards compatibility with glibc])],
167 [use_glibc_compat=$enableval],
168 [use_glibc_compat=no])
170 AC_ARG_WITH([system-univalue],
171 [AS_HELP_STRING([--with-system-univalue],
172 [Build with system UniValue (default is no)])],
173 [system_univalue=$withval],
177 [AS_HELP_STRING([--disable-zmq],
178 [disable ZMQ notifications])],
179 [use_zmq=$enableval],
182 AC_ARG_WITH([protoc-bindir],[AS_HELP_STRING([--with-protoc-bindir=BIN_DIR],[specify protoc bin path])], [protoc_bin_path=$withval], [])
185 AC_ARG_ENABLE([debug],
186 [AS_HELP_STRING([--enable-debug],
187 [use debug compiler flags and macros (default is no)])],
188 [enable_debug=$enableval],
192 AX_CHECK_COMPILE_FLAG([-Werror],[CXXFLAG_WERROR="-Werror"],[CXXFLAG_WERROR=""])
194 if test "x$enable_debug" = xyes; then
195 CPPFLAGS="$CPPFLAGS -DDEBUG -DDEBUG_LOCKORDER"
196 if test "x$GCC" = xyes; then
197 CFLAGS="$CFLAGS -g3 -O0"
200 if test "x$GXX" = xyes; then
201 CXXFLAGS="$CXXFLAGS -g3 -O0"
205 if test "x$CXXFLAGS_overridden" = "xno"; then
206 AX_CHECK_COMPILE_FLAG([-Wall],[CXXFLAGS="$CXXFLAGS -Wall"],,[[$CXXFLAG_WERROR]])
207 AX_CHECK_COMPILE_FLAG([-Wextra],[CXXFLAGS="$CXXFLAGS -Wextra"],,[[$CXXFLAG_WERROR]])
208 AX_CHECK_COMPILE_FLAG([-Wformat],[CXXFLAGS="$CXXFLAGS -Wformat"],,[[$CXXFLAG_WERROR]])
209 AX_CHECK_COMPILE_FLAG([-Wformat-security],[CXXFLAGS="$CXXFLAGS -Wformat-security"],,[[$CXXFLAG_WERROR]])
211 ## Some compilers (gcc) ignore unknown -Wno-* options, but warn about all
212 ## unknown options if any other warning is produced. Test the -Wfoo case, and
213 ## set the -Wno-foo case if it works.
214 AX_CHECK_COMPILE_FLAG([-Wunused-parameter],[CXXFLAGS="$CXXFLAGS -Wno-unused-parameter"],,[[$CXXFLAG_WERROR]])
215 AX_CHECK_COMPILE_FLAG([-Wself-assign],[CXXFLAGS="$CXXFLAGS -Wno-self-assign"],,[[$CXXFLAG_WERROR]])
216 AX_CHECK_COMPILE_FLAG([-Wunused-local-typedef],[CXXFLAGS="$CXXFLAGS -Wno-unused-local-typedef"],,[[$CXXFLAG_WERROR]])
217 AX_CHECK_COMPILE_FLAG([-Wdeprecated-register],[CXXFLAGS="$CXXFLAGS -Wno-deprecated-register"],,[[$CXXFLAG_WERROR]])
219 CPPFLAGS="$CPPFLAGS -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS"
222 [AS_HELP_STRING([--with-utils],
223 [build bitcoin-cli bitcoin-tx (default=yes)])],
224 [build_bitcoin_utils=$withval],
225 [build_bitcoin_utils=yes])
228 [AS_HELP_STRING([--with-libs],
229 [build libraries (default=yes)])],
230 [build_bitcoin_libs=$withval],
231 [build_bitcoin_libs=yes])
233 AC_ARG_WITH([daemon],
234 [AS_HELP_STRING([--with-daemon],
235 [build bitcoind daemon (default=yes)])],
236 [build_bitcoind=$withval],
237 [build_bitcoind=yes])
243 #pkgconfig does more harm than good with MinGW
247 AC_CHECK_LIB([mingwthrd], [main],, AC_MSG_ERROR(lib missing))
248 AC_CHECK_LIB([kernel32], [main],, AC_MSG_ERROR(lib missing))
249 AC_CHECK_LIB([user32], [main],, AC_MSG_ERROR(lib missing))
250 AC_CHECK_LIB([gdi32], [main],, AC_MSG_ERROR(lib missing))
251 AC_CHECK_LIB([comdlg32], [main],, AC_MSG_ERROR(lib missing))
252 AC_CHECK_LIB([winspool], [main],, AC_MSG_ERROR(lib missing))
253 AC_CHECK_LIB([winmm], [main],, AC_MSG_ERROR(lib missing))
254 AC_CHECK_LIB([shell32], [main],, AC_MSG_ERROR(lib missing))
255 AC_CHECK_LIB([comctl32], [main],, AC_MSG_ERROR(lib missing))
256 AC_CHECK_LIB([ole32], [main],, AC_MSG_ERROR(lib missing))
257 AC_CHECK_LIB([oleaut32], [main],, AC_MSG_ERROR(lib missing))
258 AC_CHECK_LIB([uuid], [main],, AC_MSG_ERROR(lib missing))
259 AC_CHECK_LIB([rpcrt4], [main],, AC_MSG_ERROR(lib missing))
260 AC_CHECK_LIB([advapi32], [main],, AC_MSG_ERROR(lib missing))
261 AC_CHECK_LIB([ws2_32], [main],, AC_MSG_ERROR(lib missing))
262 AC_CHECK_LIB([mswsock], [main],, AC_MSG_ERROR(lib missing))
263 AC_CHECK_LIB([shlwapi], [main],, AC_MSG_ERROR(lib missing))
264 AC_CHECK_LIB([iphlpapi], [main],, AC_MSG_ERROR(lib missing))
265 AC_CHECK_LIB([crypt32], [main],, AC_MSG_ERROR(lib missing))
267 # -static is interpreted by libtool, where it has a different meaning.
268 # In libtool-speak, it's -all-static.
269 AX_CHECK_LINK_FLAG([[-static]],[LIBTOOL_APP_LDFLAGS="$LIBTOOL_APP_LDFLAGS -all-static"])
271 AC_PATH_PROG([MAKENSIS], [makensis], none)
272 if test x$MAKENSIS = xnone; then
273 AC_MSG_WARN("makensis not found. Cannot create installer.")
276 AC_PATH_TOOL(WINDRES, windres, none)
277 if test x$WINDRES = xnone; then
278 AC_MSG_ERROR("windres not found")
281 CPPFLAGS="$CPPFLAGS -D_MT -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB"
282 LEVELDB_TARGET_FLAGS="-DOS_WINDOWS"
283 if test "x$CXXFLAGS_overridden" = "xno"; then
284 CXXFLAGS="$CXXFLAGS -w"
287 i?86-*) WINDOWS_BITS=32 ;;
288 x86_64-*) WINDOWS_BITS=64 ;;
289 *) AC_MSG_ERROR("Could not determine win32/win64 for installer") ;;
291 AC_SUBST(WINDOWS_BITS)
293 dnl libtool insists upon adding -nostdlib and a list of objects/libs to link against.
294 dnl That breaks our ability to build dll's with static libgcc/libstdc++/libssp. Override
295 dnl its command here, with the predeps/postdeps removed, and -static inserted. Postdeps are
296 dnl also overridden to prevent their insertion later.
297 dnl This should only affect dll's.
298 archive_cmds_CXX="\$CC -shared \$libobjs \$deplibs \$compiler_flags -static -o \$output_objdir/\$soname \${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker \$lib"
304 LEVELDB_TARGET_FLAGS="-DOS_MACOSX"
305 if test x$cross_compiling != xyes; then
307 AC_CHECK_PROG([PORT],port, port)
308 if test x$PORT = xport; then
309 dnl add default macports paths
310 CPPFLAGS="$CPPFLAGS -isystem /opt/local/include"
311 LIBS="$LIBS -L/opt/local/lib"
312 if test -d /opt/local/include/db48; then
313 CPPFLAGS="$CPPFLAGS -I/opt/local/include/db48"
314 LIBS="$LIBS -L/opt/local/lib/db48"
318 AC_CHECK_PROG([BREW],brew, brew)
319 if test x$BREW = xbrew; then
320 dnl These Homebrew packages may be keg-only, meaning that they won't be found
321 dnl in expected paths because they may conflict with system files. Ask
322 dnl Homebrew where each one is located, then adjust paths accordingly.
323 dnl It's safe to add these paths even if the functionality is disabled by
324 dnl the user (--without-wallet or --without-gui for example).
326 openssl_prefix=`$BREW --prefix openssl 2>/dev/null`
327 bdb_prefix=`$BREW --prefix berkeley-db4 2>/dev/null`
328 qt5_prefix=`$BREW --prefix qt5 2>/dev/null`
329 if test x$openssl_prefix != x; then
330 PKG_CONFIG_PATH="$openssl_prefix/lib/pkgconfig:$PKG_CONFIG_PATH"
331 export PKG_CONFIG_PATH
333 if test x$bdb_prefix != x; then
334 CPPFLAGS="$CPPFLAGS -I$bdb_prefix/include"
335 LIBS="$LIBS -L$bdb_prefix/lib"
337 if test x$qt5_prefix != x; then
338 PKG_CONFIG_PATH="$qt5_prefix/lib/pkgconfig:$PKG_CONFIG_PATH"
339 export PKG_CONFIG_PATH
348 AC_PATH_TOOL([INSTALLNAMETOOL], [install_name_tool], install_name_tool)
349 AC_PATH_TOOL([OTOOL], [otool], otool)
350 AC_PATH_PROGS([GENISOIMAGE], [genisoimage mkisofs],genisoimage)
351 AC_PATH_PROGS([RSVG_CONVERT], [rsvg-convert rsvg],rsvg-convert)
352 AC_PATH_PROGS([IMAGEMAGICK_CONVERT], [convert],convert)
353 AC_PATH_PROGS([TIFFCP], [tiffcp],tiffcp)
355 dnl libtool will try to strip the static lib, which is a problem for
356 dnl cross-builds because strip attempts to call a hard-coded ld,
357 dnl which may not exist in the path. Stripping the .a is not
358 dnl necessary, so just disable it.
364 AX_CHECK_LINK_FLAG([[-Wl,-headerpad_max_install_names]], [LDFLAGS="$LDFLAGS -Wl,-headerpad_max_install_names"])
365 CPPFLAGS="$CPPFLAGS -DMAC_OSX"
366 OBJCXXFLAGS="$CXXFLAGS"
370 LEVELDB_TARGET_FLAGS="-DOS_LINUX"
373 OTHER_OS=`echo ${host_os} | awk '{print toupper($0)}'`
374 LEVELDB_TARGET_FLAGS="-DOS_${OTHER_OS}"
378 if test x$use_comparison_tool != xno; then
379 AC_SUBST(JAVA_COMPARISON_TOOL, $use_comparison_tool)
382 if test x$use_comparison_tool_reorg_tests != xno; then
383 if test x$use_comparison_tool = x; then
384 AC_MSG_ERROR("comparison tool reorg tests but comparison tool was not specified")
386 AC_SUBST(COMPARISON_TOOL_REORG_TESTS, 1)
388 AC_SUBST(COMPARISON_TOOL_REORG_TESTS, 0)
391 if test x$use_extended_rpc_tests != xno; then
392 AC_SUBST(EXTENDED_RPC_TESTS, -extended)
395 if test x$use_lcov = xyes; then
396 if test x$LCOV = x; then
397 AC_MSG_ERROR("lcov testing requested but lcov not found")
399 if test x$GCOV = x; then
400 AC_MSG_ERROR("lcov testing requested but gcov not found")
402 if test x$JAVA = x; then
403 AC_MSG_ERROR("lcov testing requested but java not found")
405 if test x$PYTHON = x; then
406 AC_MSG_ERROR("lcov testing requested but python not found")
408 if test x$GENHTML = x; then
409 AC_MSG_ERROR("lcov testing requested but genhtml not found")
411 if test x$use_comparison_tool = x; then
412 AC_MSG_ERROR("lcov testing requested but comparison tool was not specified")
414 LCOV="$LCOV --gcov-tool=$GCOV"
415 AX_CHECK_COMPILE_FLAG([--coverage],[CXXFLAGS="$CXXFLAGS --coverage"],
416 [AC_MSG_ERROR("lcov testing requested but --coverage flag does not work")])
419 dnl Check for endianness
422 dnl Check for pthread compile/link requirements
425 # The following macro will add the necessary defines to bitcoin-config.h, but
426 # they also need to be passed down to any subprojects. Pull the results out of
427 # the cache and add them to CPPFLAGS.
429 # detect POSIX or GNU variant of strerror_r
432 if test x$ac_cv_sys_file_offset_bits != x &&
433 test x$ac_cv_sys_file_offset_bits != xno &&
434 test x$ac_cv_sys_file_offset_bits != xunknown; then
435 CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
438 if test x$ac_cv_sys_large_files != x &&
439 test x$ac_cv_sys_large_files != xno &&
440 test x$ac_cv_sys_large_files != xunknown; then
441 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES=$ac_cv_sys_large_files"
444 AX_CHECK_LINK_FLAG([[-Wl,--large-address-aware]], [LDFLAGS="$LDFLAGS -Wl,--large-address-aware"])
446 AX_GCC_FUNC_ATTRIBUTE([visibility])
447 AX_GCC_FUNC_ATTRIBUTE([dllexport])
448 AX_GCC_FUNC_ATTRIBUTE([dllimport])
450 if test x$use_glibc_compat != xno; then
452 #glibc absorbed clock_gettime in 2.17. librt (its previous location) is safe to link
453 #in anyway for back-compat.
454 AC_CHECK_LIB([rt],[clock_gettime],, AC_MSG_ERROR(lib missing))
456 #__fdelt_chk's params and return type have changed from long unsigned int to long int.
457 # See which one is present here.
458 AC_MSG_CHECKING(__fdelt_chk type)
459 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef _FORTIFY_SOURCE
460 #undef _FORTIFY_SOURCE
462 #define _FORTIFY_SOURCE 2
463 #include <sys/select.h>
464 extern "C" long unsigned int __fdelt_warn(long unsigned int);]],[[]])],
465 [ fdelt_type="long unsigned int"],
466 [ fdelt_type="long int"])
467 AC_MSG_RESULT($fdelt_type)
468 AC_DEFINE_UNQUOTED(FDELT_TYPE, $fdelt_type,[parameter and return value type for __fdelt_chk])
470 AC_SEARCH_LIBS([clock_gettime],[rt])
473 if test x$TARGET_OS != xwindows; then
474 # All windows code is PIC, forcing it on just adds useless compile warnings
475 AX_CHECK_COMPILE_FLAG([-fPIC],[PIC_FLAGS="-fPIC"])
478 if test x$use_hardening != xno; then
479 AX_CHECK_COMPILE_FLAG([-Wstack-protector],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -Wstack-protector"])
480 AX_CHECK_COMPILE_FLAG([-fstack-protector-all],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -fstack-protector-all"])
482 AX_CHECK_PREPROC_FLAG([-D_FORTIFY_SOURCE=2],[
483 AX_CHECK_PREPROC_FLAG([-U_FORTIFY_SOURCE],[
484 HARDENED_CPPFLAGS="$HARDENED_CPPFLAGS -U_FORTIFY_SOURCE"
486 HARDENED_CPPFLAGS="$HARDENED_CPPFLAGS -D_FORTIFY_SOURCE=2"
489 AX_CHECK_LINK_FLAG([[-Wl,--dynamicbase]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,--dynamicbase"])
490 AX_CHECK_LINK_FLAG([[-Wl,--nxcompat]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,--nxcompat"])
491 AX_CHECK_LINK_FLAG([[-Wl,-z,relro]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,-z,relro"])
492 AX_CHECK_LINK_FLAG([[-Wl,-z,now]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,-z,now"])
494 if test x$TARGET_OS != xwindows; then
495 AX_CHECK_COMPILE_FLAG([-fPIE],[PIE_FLAGS="-fPIE"])
496 AX_CHECK_LINK_FLAG([[-pie]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -pie"])
501 AC_CHECK_LIB([ssp], [main],, AC_MSG_ERROR(lib missing))
506 dnl this flag screws up non-darwin gcc even when the check fails. special-case it.
507 if test x$TARGET_OS = xdarwin; then
508 AX_CHECK_LINK_FLAG([[-Wl,-dead_strip]], [LDFLAGS="$LDFLAGS -Wl,-dead_strip"])
511 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])
512 AC_SEARCH_LIBS([getaddrinfo_a], [anl], [AC_DEFINE(HAVE_GETADDRINFO_A, 1, [Define this symbol if you have getaddrinfo_a])])
513 AC_SEARCH_LIBS([inet_pton], [nsl resolv], [AC_DEFINE(HAVE_INET_PTON, 1, [Define this symbol if you have inet_pton])])
515 AC_CHECK_DECLS([strnlen])
517 AC_CHECK_DECLS([le16toh, le32toh, le64toh, htole16, htole32, htole64, be16toh, be32toh, be64toh, htobe16, htobe32, htobe64],,,
520 #elif HAVE_SYS_ENDIAN_H
521 #include <sys/endian.h>
524 AC_CHECK_DECLS([bswap_16, bswap_32, bswap_64],,,
526 #include <byteswap.h>
529 dnl Check for MSG_NOSIGNAL
530 AC_MSG_CHECKING(for MSG_NOSIGNAL)
531 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]],
532 [[ int f = MSG_NOSIGNAL; ]])],
533 [ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_MSG_NOSIGNAL, 1,[Define this symbol if you have MSG_NOSIGNAL]) ],
537 AC_MSG_CHECKING([for visibility attribute])
538 AC_LINK_IFELSE([AC_LANG_SOURCE([
539 int foo_def( void ) __attribute__((visibility("default")));
543 AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE,1,[Define if the visibility attribute is supported.])
548 if test x$use_reduce_exports = xyes; then
549 AC_MSG_ERROR([Cannot find a working visibility attribute. Use --disable-reduce-exports.])
554 if test x$use_reduce_exports = xyes; then
555 AX_CHECK_COMPILE_FLAG([-fvisibility=hidden],[RE_CXXFLAGS="-fvisibility=hidden"],
556 [AC_MSG_ERROR([Cannot set default symbol visibility. Use --disable-reduce-exports.])])
562 AM_CONDITIONAL([EMBEDDED_LEVELDB],[true])
563 AC_SUBST(LEVELDB_CPPFLAGS)
567 if test x$enable_wallet != xno; then
568 dnl Check for libdb_cxx only if wallet enabled
572 dnl Check for libminiupnpc (optional)
573 if test x$use_upnp != xno; then
575 [miniupnpc/miniwget.h miniupnpc/miniupnpc.h miniupnpc/upnpcommands.h miniupnpc/upnperrors.h],
576 [AC_CHECK_LIB([miniupnpc], [main],[MINIUPNPC_LIBS=-lminiupnpc], [have_miniupnpc=no])],
583 dnl sets $bitcoin_enable_qt, $bitcoin_enable_qt_test, $bitcoin_enable_qt_dbus
584 BITCOIN_QT_CONFIGURE([$use_pkgconfig], [qt5])
586 if test x$build_bitcoin_utils$build_bitcoind$bitcoin_enable_qt$use_tests = xnononono; then
592 if test x$use_boost = xyes; then
594 dnl Check for boost libs
598 AX_BOOST_PROGRAM_OPTIONS
603 if test x$use_reduce_exports = xyes; then
604 AC_MSG_CHECKING([for working boost reduced exports])
605 TEMP_CPPFLAGS="$CPPFLAGS"
606 CPPFLAGS="$BOOST_CPPFLAGS $CPPFLAGS"
607 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
608 @%:@include <boost/version.hpp>
610 #if BOOST_VERSION >= 104900
611 // Everything is okay
613 # error Boost version is too old
618 AC_MSG_ERROR([boost versions < 1.49 are known to be broken with reduced exports. Use --disable-reduce-exports.])
620 CPPFLAGS="$TEMP_CPPFLAGS"
624 if test x$use_reduce_exports = xyes; then
625 CXXFLAGS="$CXXFLAGS $RE_CXXFLAGS"
626 AX_CHECK_LINK_FLAG([[-Wl,--exclude-libs,ALL]], [RELDFLAGS="-Wl,--exclude-libs,ALL"])
629 if test x$use_tests = xyes; then
631 if test x$HEXDUMP = x; then
632 AC_MSG_ERROR(hexdump is required for tests)
636 if test x$use_boost = xyes; then
638 AX_BOOST_UNIT_TEST_FRAMEWORK
640 dnl Determine if -DBOOST_TEST_DYN_LINK is needed
641 AC_MSG_CHECKING([for dynamic linked boost test])
643 LIBS="$LIBS $BOOST_LDFLAGS $BOOST_UNIT_TEST_FRAMEWORK_LIB"
644 TEMP_CPPFLAGS="$CPPFLAGS"
645 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
646 AC_LINK_IFELSE([AC_LANG_SOURCE([
647 #define BOOST_TEST_DYN_LINK
648 #define BOOST_TEST_MAIN
649 #include <boost/test/unit_test.hpp>
653 [TESTDEFS="$TESTDEFS -DBOOST_TEST_DYN_LINK"],
656 CPPFLAGS="$TEMP_CPPFLAGS"
661 if test x$use_boost = xyes; then
663 BOOST_LIBS="$BOOST_LDFLAGS $BOOST_SYSTEM_LIB $BOOST_FILESYSTEM_LIB $BOOST_PROGRAM_OPTIONS_LIB $BOOST_THREAD_LIB $BOOST_CHRONO_LIB"
666 dnl If boost (prior to 1.57) was built without c++11, it emulated scoped enums
667 dnl using c++98 constructs. Unfortunately, this implementation detail leaked into
668 dnl the abi. This was fixed in 1.57.
670 dnl When building against that installed version using c++11, the headers pick up
671 dnl on the native c++11 scoped enum support and enable it, however it will fail to
672 dnl link. This can be worked around by disabling c++11 scoped enums if linking will
674 dnl BOOST_NO_SCOPED_ENUMS was changed to BOOST_NO_CXX11_SCOPED_ENUMS in 1.51.
677 LIBS="$BOOST_LIBS $LIBS"
678 TEMP_CPPFLAGS="$CPPFLAGS"
679 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
680 AC_MSG_CHECKING([for mismatched boost c++11 scoped enums])
681 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
682 #include "boost/config.hpp"
683 #include "boost/version.hpp"
684 #if !defined(BOOST_NO_SCOPED_ENUMS) && !defined(BOOST_NO_CXX11_SCOPED_ENUMS) && BOOST_VERSION < 105700
685 #define BOOST_NO_SCOPED_ENUMS
686 #define BOOST_NO_CXX11_SCOPED_ENUMS
689 #include "boost/filesystem.hpp"
692 boost::filesystem::copy_file("foo", "bar");
697 [AC_MSG_RESULT(mismatched); BOOST_CPPFLAGS="$BOOST_CPPFLAGS -DBOOST_NO_SCOPED_ENUMS -DBOOST_NO_CXX11_SCOPED_ENUMS"], [AC_MSG_RESULT(ok)])
699 CPPFLAGS="$TEMP_CPPFLAGS"
701 dnl Boost >= 1.50 uses sleep_for rather than the now-deprecated sleep, however
702 dnl it was broken from 1.50 to 1.52 when backed by nanosleep. Use sleep_for if
703 dnl a working version is available, else fall back to sleep. sleep was removed
705 dnl If neither is available, abort.
707 LIBS="$BOOST_LIBS $LIBS"
708 TEMP_CPPFLAGS="$CPPFLAGS"
709 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
710 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
711 #include <boost/thread/thread.hpp>
712 #include <boost/version.hpp>
714 #if BOOST_VERSION >= 105000 && (!defined(BOOST_HAS_NANOSLEEP) || BOOST_VERSION >= 105200)
715 boost::this_thread::sleep_for(boost::chrono::milliseconds(0));
721 AC_DEFINE(HAVE_WORKING_BOOST_SLEEP_FOR, 1, [Define this symbol if boost sleep_for works])],
724 CPPFLAGS="$TEMP_CPPFLAGS"
726 if test x$boost_sleep != xyes; then
728 LIBS="$BOOST_LIBS $LIBS"
729 TEMP_CPPFLAGS="$CPPFLAGS"
730 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
731 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
732 #include <boost/version.hpp>
733 #include <boost/thread.hpp>
734 #include <boost/date_time/posix_time/posix_time_types.hpp>
736 #if BOOST_VERSION <= 105600
737 boost::this_thread::sleep(boost::posix_time::milliseconds(0));
742 [boost_sleep=yes; AC_DEFINE(HAVE_WORKING_BOOST_SLEEP, 1, [Define this symbol if boost sleep works])],
745 CPPFLAGS="$TEMP_CPPFLAGS"
748 if test x$boost_sleep != xyes; then
749 AC_MSG_ERROR(No working boost sleep implementation found.)
754 if test x$use_pkgconfig = xyes; then
756 if test x"$PKG_CONFIG" = "x"; then
757 AC_MSG_ERROR(pkg-config not found.)
764 PKG_CHECK_MODULES([SSL], [libssl],, [AC_MSG_ERROR(openssl not found.)])
765 PKG_CHECK_MODULES([CRYPTO], [libcrypto],,[AC_MSG_ERROR(libcrypto not found.)])
766 BITCOIN_QT_CHECK([PKG_CHECK_MODULES([PROTOBUF], [protobuf], [have_protobuf=yes], [BITCOIN_QT_FAIL(libprotobuf not found)])])
767 if test x$use_qr != xno; then
768 BITCOIN_QT_CHECK([PKG_CHECK_MODULES([QR], [libqrencode], [have_qrencode=yes], [have_qrencode=no])])
770 if test x$build_bitcoin_utils$build_bitcoind$bitcoin_enable_qt$use_tests != xnononono; then
771 PKG_CHECK_MODULES([EVENT], [libevent],, [AC_MSG_ERROR(libevent not found.)])
772 if test x$TARGET_OS != xwindows; then
773 PKG_CHECK_MODULES([EVENT_PTHREADS], [libevent_pthreads],, [AC_MSG_ERROR(libevent_pthreads not found.)])
777 if test "x$use_zmq" = "xyes"; then
778 PKG_CHECK_MODULES([ZMQ],[libzmq >= 4],
779 [AC_DEFINE([ENABLE_ZMQ],[1],[Define to 1 to enable ZMQ functions])],
780 [AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
781 AC_MSG_WARN([libzmq version 4.x or greater not found, disabling])
784 AC_DEFINE_UNQUOTED([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
789 AC_CHECK_HEADER([openssl/crypto.h],,AC_MSG_ERROR(libcrypto headers missing))
790 AC_CHECK_LIB([crypto], [main],CRYPTO_LIBS=-lcrypto, AC_MSG_ERROR(libcrypto missing))
792 AC_CHECK_HEADER([openssl/ssl.h],, AC_MSG_ERROR(libssl headers missing),)
793 AC_CHECK_LIB([ssl], [main],SSL_LIBS=-lssl, AC_MSG_ERROR(libssl missing))
795 if test x$build_bitcoin_utils$build_bitcoind$bitcoin_enable_qt$use_tests != xnononono; then
796 AC_CHECK_HEADER([event2/event.h],, AC_MSG_ERROR(libevent headers missing),)
797 AC_CHECK_LIB([event],[main],EVENT_LIBS=-levent,AC_MSG_ERROR(libevent missing))
798 if test x$TARGET_OS != xwindows; then
799 AC_CHECK_LIB([event_pthreads],[main],EVENT_PTHREADS_LIBS=-levent_pthreads,AC_MSG_ERROR(libevent_pthreads missing))
803 if test "x$use_zmq" = "xyes"; then
804 AC_CHECK_HEADER([zmq.h],
805 [AC_DEFINE([ENABLE_ZMQ],[1],[Define to 1 to enable ZMQ functions])],
806 [AC_MSG_WARN([zmq.h not found, disabling zmq support])
808 AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])])
809 AC_CHECK_LIB([zmq],[zmq_ctx_shutdown],ZMQ_LIBS=-lzmq,
810 [AC_MSG_WARN([libzmq >= 4.0 not found, disabling zmq support])
812 AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])])
814 AC_DEFINE_UNQUOTED([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
817 BITCOIN_QT_CHECK(AC_CHECK_LIB([protobuf] ,[main],[PROTOBUF_LIBS=-lprotobuf], BITCOIN_QT_FAIL(libprotobuf not found)))
818 if test x$use_qr != xno; then
819 BITCOIN_QT_CHECK([AC_CHECK_LIB([qrencode], [main],[QR_LIBS=-lqrencode], [have_qrencode=no])])
820 BITCOIN_QT_CHECK([AC_CHECK_HEADER([qrencode.h],, have_qrencode=no)])
826 if test x$system_univalue != xno ; then
828 if test x$use_pkgconfig = xyes; then
833 PKG_CHECK_MODULES([UNIVALUE],[libunivalue],[found_univalue=yes],[true])
837 AC_CHECK_HEADER([univalue.h],[
838 AC_CHECK_LIB([univalue], [main],[
839 UNIVALUE_LIBS=-lunivalue
845 if test x$found_univalue = xyes ; then
847 elif test x$system_univalue = xyes ; then
848 AC_MSG_ERROR([univalue not found])
854 if test x$system_univalue = xno ; then
855 UNIVALUE_CFLAGS='-I$(srcdir)/univalue/include'
856 UNIVALUE_LIBS='univalue/libunivalue.la'
858 AM_CONDITIONAL([EMBEDDED_UNIVALUE],[test x$system_univalue = xno])
859 AC_SUBST(UNIVALUE_CFLAGS)
860 AC_SUBST(UNIVALUE_LIBS)
862 CXXFLAGS_TEMP="$CXXFLAGS"
864 CXXFLAGS="$CXXFLAGS $SSL_CFLAGS $CRYPTO_CFLAGS"
865 LIBS="$LIBS $SSL_LIBS $CRYPTO_LIBS"
866 AC_CHECK_HEADER([openssl/ec.h],, AC_MSG_ERROR(OpenSSL ec header missing),)
867 CXXFLAGS="$CXXFLAGS_TEMP"
870 BITCOIN_QT_PATH_PROGS([PROTOC], [protoc],$protoc_bin_path)
872 AC_MSG_CHECKING([whether to build bitcoind])
873 AM_CONDITIONAL([BUILD_BITCOIND], [test x$build_bitcoind = xyes])
874 AC_MSG_RESULT($build_bitcoind)
876 AC_MSG_CHECKING([whether to build utils (bitcoin-cli bitcoin-tx)])
877 AM_CONDITIONAL([BUILD_BITCOIN_UTILS], [test x$build_bitcoin_utils = xyes])
878 AC_MSG_RESULT($build_bitcoin_utils)
880 AC_MSG_CHECKING([whether to build libraries])
881 AM_CONDITIONAL([BUILD_BITCOIN_LIBS], [test x$build_bitcoin_libs = xyes])
882 if test x$build_bitcoin_libs = xyes; then
883 AC_DEFINE(HAVE_CONSENSUS_LIB, 1, [Define this symbol if the consensus lib has been built])
884 AC_CONFIG_FILES([libbitcoinconsensus.pc:libbitcoinconsensus.pc.in])
886 AC_MSG_RESULT($build_bitcoin_libs)
890 if test "x$use_ccache" != "xno"; then
891 AC_MSG_CHECKING(if ccache should be used)
892 if test x$CCACHE = x; then
893 if test "x$use_ccache" = "xyes"; then
894 AC_MSG_ERROR([ccache not found.]);
900 CC="$ac_cv_path_CCACHE $CC"
901 CXX="$ac_cv_path_CCACHE $CXX"
903 AC_MSG_RESULT($use_ccache)
905 if test "x$use_ccache" = "xyes"; then
906 AX_CHECK_PREPROC_FLAG([-Qunused-arguments],[CPPFLAGS="-Qunused-arguments $CPPFLAGS"])
910 AC_MSG_CHECKING([if wallet should be enabled])
911 if test x$enable_wallet != xno; then
913 AC_DEFINE_UNQUOTED([ENABLE_WALLET],[1],[Define to 1 to enable wallet functions])
919 dnl enable upnp support
920 AC_MSG_CHECKING([whether to build with support for UPnP])
921 if test x$have_miniupnpc = xno; then
922 if test x$use_upnp = xyes; then
923 AC_MSG_ERROR("UPnP requested but cannot be built. use --without-miniupnpc")
927 if test x$use_upnp != xno; then
929 AC_MSG_CHECKING([whether to build with UPnP enabled by default])
932 if test x$use_upnp_default != xno; then
936 AC_MSG_RESULT($use_upnp_default)
937 AC_DEFINE_UNQUOTED([USE_UPNP],[$upnp_setting],[UPnP support not compiled if undefined, otherwise value (0 or 1) determines default state])
938 if test x$TARGET_OS = xwindows; then
939 MINIUPNPC_CPPFLAGS="-DSTATICLIB -DMINIUPNP_STATICLIB"
946 dnl these are only used when qt is enabled
948 if test x$bitcoin_enable_qt != xno; then
949 dnl enable dbus support
950 AC_MSG_CHECKING([whether to build GUI with support for D-Bus])
951 if test x$bitcoin_enable_qt_dbus != xno; then
952 AC_DEFINE([USE_DBUS],[1],[Define if dbus support should be compiled in])
954 AC_MSG_RESULT($bitcoin_enable_qt_dbus)
956 dnl enable qr support
957 AC_MSG_CHECKING([whether to build GUI with support for QR codes])
958 if test x$have_qrencode = xno; then
959 if test x$use_qr = xyes; then
960 AC_MSG_ERROR("QR support requested but cannot be built. use --without-qrencode")
964 if test x$use_qr != xno; then
966 AC_DEFINE([USE_QRCODE],[1],[Define if QR support should be compiled in])
973 if test x$XGETTEXT = x; then
974 AC_MSG_WARN("xgettext is required to update qt translations")
977 AC_MSG_CHECKING([whether to build test_bitcoin-qt])
978 if test x$use_gui_tests$bitcoin_enable_qt_test = xyesyes; then
986 AM_CONDITIONAL([ENABLE_ZMQ], [test "x$use_zmq" = "xyes"])
988 AC_MSG_CHECKING([whether to build test_bitcoin])
989 if test x$use_tests = xyes; then
997 AC_MSG_CHECKING([whether to reduce exports])
998 if test x$use_reduce_exports = xyes; then
1004 if test x$build_bitcoin_utils$build_bitcoin_libs$build_bitcoind$bitcoin_enable_qt$use_tests = xnonononono; then
1005 AC_MSG_ERROR([No targets! Please specify at least one of: --with-utils --with-libs --with-daemon --with-gui or --enable-tests])
1008 AM_CONDITIONAL([TARGET_DARWIN], [test x$TARGET_OS = xdarwin])
1009 AM_CONDITIONAL([BUILD_DARWIN], [test x$BUILD_OS = xdarwin])
1010 AM_CONDITIONAL([TARGET_WINDOWS], [test x$TARGET_OS = xwindows])
1011 AM_CONDITIONAL([ENABLE_WALLET],[test x$enable_wallet = xyes])
1012 AM_CONDITIONAL([ENABLE_TESTS],[test x$BUILD_TEST = xyes])
1013 AM_CONDITIONAL([ENABLE_QT],[test x$bitcoin_enable_qt = xyes])
1014 AM_CONDITIONAL([ENABLE_QT_TESTS],[test x$BUILD_TEST_QT = xyes])
1015 AM_CONDITIONAL([ENABLE_BENCH],[test x$use_bench = xyes])
1016 AM_CONDITIONAL([USE_QRCODE], [test x$use_qr = xyes])
1017 AM_CONDITIONAL([USE_LCOV],[test x$use_lcov = xyes])
1018 AM_CONDITIONAL([USE_COMPARISON_TOOL],[test x$use_comparison_tool != xno])
1019 AM_CONDITIONAL([USE_COMPARISON_TOOL_REORG_TESTS],[test x$use_comparison_tool_reorg_test != xno])
1020 AM_CONDITIONAL([GLIBC_BACK_COMPAT],[test x$use_glibc_compat = xyes])
1021 AM_CONDITIONAL([HARDEN],[test x$use_hardening = xyes])
1023 AC_DEFINE(CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MAJOR, [Major version])
1024 AC_DEFINE(CLIENT_VERSION_MINOR, _CLIENT_VERSION_MINOR, [Minor version])
1025 AC_DEFINE(CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION, [Build revision])
1026 AC_DEFINE(CLIENT_VERSION_BUILD, _CLIENT_VERSION_BUILD, [Version Build])
1027 AC_DEFINE(CLIENT_VERSION_IS_RELEASE, _CLIENT_VERSION_IS_RELEASE, [Version is release])
1028 AC_DEFINE(COPYRIGHT_YEAR, _COPYRIGHT_YEAR, [Copyright year])
1029 AC_DEFINE(COPYRIGHT_HOLDERS, "_COPYRIGHT_HOLDERS", [Copyright holder(s) before %s replacement])
1030 AC_DEFINE(COPYRIGHT_HOLDERS_SUBSTITUTION, "_COPYRIGHT_HOLDERS_SUBSTITUTION", [Replacement for %s in copyright holders string])
1031 define(_COPYRIGHT_HOLDERS_FINAL, [patsubst(_COPYRIGHT_HOLDERS, [%s], [_COPYRIGHT_HOLDERS_SUBSTITUTION])])
1032 AC_DEFINE(COPYRIGHT_HOLDERS_FINAL, "_COPYRIGHT_HOLDERS_FINAL", [Copyright holder(s)])
1033 AC_SUBST(CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MAJOR)
1034 AC_SUBST(CLIENT_VERSION_MINOR, _CLIENT_VERSION_MINOR)
1035 AC_SUBST(CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION)
1036 AC_SUBST(CLIENT_VERSION_BUILD, _CLIENT_VERSION_BUILD)
1037 AC_SUBST(CLIENT_VERSION_IS_RELEASE, _CLIENT_VERSION_IS_RELEASE)
1038 AC_SUBST(COPYRIGHT_YEAR, _COPYRIGHT_YEAR)
1039 AC_SUBST(COPYRIGHT_HOLDERS, "_COPYRIGHT_HOLDERS")
1040 AC_SUBST(COPYRIGHT_HOLDERS_SUBSTITUTION, "_COPYRIGHT_HOLDERS_SUBSTITUTION")
1041 AC_SUBST(COPYRIGHT_HOLDERS_FINAL, "_COPYRIGHT_HOLDERS_FINAL")
1042 AC_SUBST(BITCOIN_DAEMON_NAME)
1043 AC_SUBST(BITCOIN_GUI_NAME)
1044 AC_SUBST(BITCOIN_CLI_NAME)
1045 AC_SUBST(BITCOIN_TX_NAME)
1048 AC_SUBST(HARDENED_CXXFLAGS)
1049 AC_SUBST(HARDENED_CPPFLAGS)
1050 AC_SUBST(HARDENED_LDFLAGS)
1053 AC_SUBST(LIBTOOL_APP_LDFLAGS)
1055 AC_SUBST(USE_QRCODE)
1056 AC_SUBST(BOOST_LIBS)
1058 AC_SUBST(LEVELDB_TARGET_FLAGS)
1059 AC_SUBST(MINIUPNPC_CPPFLAGS)
1060 AC_SUBST(MINIUPNPC_LIBS)
1061 AC_CONFIG_FILES([Makefile src/Makefile share/setup.nsi share/qt/Info.plist src/test/buildenv.py])
1062 AC_CONFIG_FILES([qa/pull-tester/run-bitcoind-for-test.sh],[chmod +x qa/pull-tester/run-bitcoind-for-test.sh])
1063 AC_CONFIG_FILES([qa/pull-tester/tests_config.py],[chmod +x qa/pull-tester/tests_config.py])
1064 AC_CONFIG_FILES([contrib/devtools/split-debug.sh],[chmod +x contrib/devtools/split-debug.sh])
1065 AC_CONFIG_LINKS([qa/pull-tester/rpc-tests.py:qa/pull-tester/rpc-tests.py])
1067 dnl boost's m4 checks do something really nasty: they export these vars. As a
1068 dnl result, they leak into secp256k1's configure and crazy things happen.
1069 dnl Until this is fixed upstream and we've synced, we'll just un-export them.
1070 CPPFLAGS_TEMP="$CPPFLAGS"
1072 CPPFLAGS="$CPPFLAGS_TEMP"
1074 LDFLAGS_TEMP="$LDFLAGS"
1076 LDFLAGS="$LDFLAGS_TEMP"
1082 PKGCONFIG_PATH_TEMP="$PKG_CONFIG_PATH"
1083 unset PKG_CONFIG_PATH
1084 PKG_CONFIG_PATH="$PKGCONFIG_PATH_TEMP"
1086 PKGCONFIG_LIBDIR_TEMP="$PKG_CONFIG_LIBDIR"
1087 unset PKG_CONFIG_LIBDIR
1088 PKG_CONFIG_LIBDIR="$PKGCONFIG_LIBDIR_TEMP"
1090 if test x$system_univalue = xno; then
1091 AC_CONFIG_SUBDIRS([src/univalue])
1094 ac_configure_args="${ac_configure_args} --disable-shared --with-pic --with-bignum=no --enable-module-recovery"
1095 AC_CONFIG_SUBDIRS([src/secp256k1])
1099 dnl Taken from https://wiki.debian.org/RpathIssue
1102 AC_MSG_RESULT([Fixing libtool for -rpath problems.])
1103 sed < libtool > libtool-2 \
1104 's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" -D__LIBTOOL_IS_A_FOOL__ "/'
1105 mv libtool-2 libtool
1110 dnl Replace the BUILDDIR path with the correct Windows path if compiling on Native Windows
1113 sed 's/BUILDDIR="\/\([[a-z]]\)/BUILDDIR="\1:/' qa/pull-tester/tests_config.py > qa/pull-tester/tests_config-2.py
1114 mv qa/pull-tester/tests_config-2.py qa/pull-tester/tests_config.py