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/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 Check if -latomic is required for <std::atomic>
63 dnl Libtool init checks.
66 dnl Check/return PATH for base programs.
68 AC_PATH_TOOL(RANLIB, ranlib)
69 AC_PATH_TOOL(STRIP, strip)
70 AC_PATH_TOOL(GCOV, gcov)
71 AC_PATH_PROG(LCOV, lcov)
72 dnl Python 3.x is supported from 3.4 on (see https://github.com/bitcoin/bitcoin/issues/7893)
73 AC_PATH_PROGS([PYTHON], [python3.6 python3.5 python3.4 python3 python2.7 python2 python])
74 AC_PATH_PROG(GENHTML, genhtml)
75 AC_PATH_PROG([GIT], [git])
76 AC_PATH_PROG(CCACHE,ccache)
77 AC_PATH_PROG(XGETTEXT,xgettext)
78 AC_PATH_PROG(HEXDUMP,hexdump)
79 AC_PATH_TOOL(READELF, readelf)
80 AC_PATH_TOOL(CPPFILT, c++filt)
81 AC_PATH_TOOL(OBJCOPY, objcopy)
83 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_ENABLE([extended-rpc-tests],
120 AS_HELP_STRING([--enable-extended-rpc-tests],[enable expensive RPC tests when using lcov (default no)]),
121 [use_extended_rpc_tests=$enableval],
122 [use_extended_rpc_tests=no])
124 AC_ARG_WITH([qrencode],
125 [AS_HELP_STRING([--with-qrencode],
126 [enable QR code support (default is yes if qt is enabled and libqrencode is found)])],
130 AC_ARG_ENABLE([hardening],
131 [AS_HELP_STRING([--disable-hardening],
132 [do not attempt to harden the resulting executables (default is to harden)])],
133 [use_hardening=$enableval],
136 AC_ARG_ENABLE([reduce-exports],
137 [AS_HELP_STRING([--enable-reduce-exports],
138 [attempt to reduce exported symbols in the resulting executables (default is no)])],
139 [use_reduce_exports=$enableval],
140 [use_reduce_exports=no])
142 AC_ARG_ENABLE([ccache],
143 [AS_HELP_STRING([--disable-ccache],
144 [do not use ccache for building (default is to use if found)])],
145 [use_ccache=$enableval],
148 AC_ARG_ENABLE([lcov],
149 [AS_HELP_STRING([--enable-lcov],
150 [enable lcov testing (default is no)])],
154 AC_ARG_ENABLE([glibc-back-compat],
155 [AS_HELP_STRING([--enable-glibc-back-compat],
156 [enable backwards compatibility with glibc])],
157 [use_glibc_compat=$enableval],
158 [use_glibc_compat=no])
160 AC_ARG_WITH([system-univalue],
161 [AS_HELP_STRING([--with-system-univalue],
162 [Build with system UniValue (default is no)])],
163 [system_univalue=$withval],
167 [AS_HELP_STRING([--disable-zmq],
168 [disable ZMQ notifications])],
169 [use_zmq=$enableval],
172 AC_ARG_WITH([protoc-bindir],[AS_HELP_STRING([--with-protoc-bindir=BIN_DIR],[specify protoc bin path])], [protoc_bin_path=$withval], [])
175 [AS_HELP_STRING([--disable-man],
176 [do not install man pages (default is to install)])],,
178 AM_CONDITIONAL(ENABLE_MAN, test "$enable_man" != no)
181 AC_ARG_ENABLE([debug],
182 [AS_HELP_STRING([--enable-debug],
183 [use debug compiler flags and macros (default is no)])],
184 [enable_debug=$enableval],
188 AX_CHECK_COMPILE_FLAG([-Werror],[CXXFLAG_WERROR="-Werror"],[CXXFLAG_WERROR=""])
190 if test "x$enable_debug" = xyes; then
191 CPPFLAGS="$CPPFLAGS -DDEBUG -DDEBUG_LOCKORDER"
192 if test "x$GCC" = xyes; then
193 CFLAGS="$CFLAGS -g3 -O0"
196 if test "x$GXX" = xyes; then
197 CXXFLAGS="$CXXFLAGS -g3 -O0"
201 if test "x$CXXFLAGS_overridden" = "xno"; then
202 AX_CHECK_COMPILE_FLAG([-Wall],[CXXFLAGS="$CXXFLAGS -Wall"],,[[$CXXFLAG_WERROR]])
203 AX_CHECK_COMPILE_FLAG([-Wextra],[CXXFLAGS="$CXXFLAGS -Wextra"],,[[$CXXFLAG_WERROR]])
204 AX_CHECK_COMPILE_FLAG([-Wformat],[CXXFLAGS="$CXXFLAGS -Wformat"],,[[$CXXFLAG_WERROR]])
205 AX_CHECK_COMPILE_FLAG([-Wformat-security],[CXXFLAGS="$CXXFLAGS -Wformat-security"],,[[$CXXFLAG_WERROR]])
207 ## Some compilers (gcc) ignore unknown -Wno-* options, but warn about all
208 ## unknown options if any other warning is produced. Test the -Wfoo case, and
209 ## set the -Wno-foo case if it works.
210 AX_CHECK_COMPILE_FLAG([-Wunused-parameter],[CXXFLAGS="$CXXFLAGS -Wno-unused-parameter"],,[[$CXXFLAG_WERROR]])
211 AX_CHECK_COMPILE_FLAG([-Wself-assign],[CXXFLAGS="$CXXFLAGS -Wno-self-assign"],,[[$CXXFLAG_WERROR]])
212 AX_CHECK_COMPILE_FLAG([-Wunused-local-typedef],[CXXFLAGS="$CXXFLAGS -Wno-unused-local-typedef"],,[[$CXXFLAG_WERROR]])
213 AX_CHECK_COMPILE_FLAG([-Wdeprecated-register],[CXXFLAGS="$CXXFLAGS -Wno-deprecated-register"],,[[$CXXFLAG_WERROR]])
215 CPPFLAGS="$CPPFLAGS -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS"
218 [AS_HELP_STRING([--with-utils],
219 [build bitcoin-cli bitcoin-tx (default=yes)])],
220 [build_bitcoin_utils=$withval],
221 [build_bitcoin_utils=yes])
224 [AS_HELP_STRING([--with-libs],
225 [build libraries (default=yes)])],
226 [build_bitcoin_libs=$withval],
227 [build_bitcoin_libs=yes])
229 AC_ARG_WITH([daemon],
230 [AS_HELP_STRING([--with-daemon],
231 [build bitcoind daemon (default=yes)])],
232 [build_bitcoind=$withval],
233 [build_bitcoind=yes])
239 #pkgconfig does more harm than good with MinGW
243 AC_CHECK_LIB([mingwthrd], [main],, AC_MSG_ERROR(lib missing))
244 AC_CHECK_LIB([kernel32], [main],, AC_MSG_ERROR(lib missing))
245 AC_CHECK_LIB([user32], [main],, AC_MSG_ERROR(lib missing))
246 AC_CHECK_LIB([gdi32], [main],, AC_MSG_ERROR(lib missing))
247 AC_CHECK_LIB([comdlg32], [main],, AC_MSG_ERROR(lib missing))
248 AC_CHECK_LIB([winspool], [main],, AC_MSG_ERROR(lib missing))
249 AC_CHECK_LIB([winmm], [main],, AC_MSG_ERROR(lib missing))
250 AC_CHECK_LIB([shell32], [main],, AC_MSG_ERROR(lib missing))
251 AC_CHECK_LIB([comctl32], [main],, AC_MSG_ERROR(lib missing))
252 AC_CHECK_LIB([ole32], [main],, AC_MSG_ERROR(lib missing))
253 AC_CHECK_LIB([oleaut32], [main],, AC_MSG_ERROR(lib missing))
254 AC_CHECK_LIB([uuid], [main],, AC_MSG_ERROR(lib missing))
255 AC_CHECK_LIB([rpcrt4], [main],, AC_MSG_ERROR(lib missing))
256 AC_CHECK_LIB([advapi32], [main],, AC_MSG_ERROR(lib missing))
257 AC_CHECK_LIB([ws2_32], [main],, AC_MSG_ERROR(lib missing))
258 AC_CHECK_LIB([mswsock], [main],, AC_MSG_ERROR(lib missing))
259 AC_CHECK_LIB([shlwapi], [main],, AC_MSG_ERROR(lib missing))
260 AC_CHECK_LIB([iphlpapi], [main],, AC_MSG_ERROR(lib missing))
261 AC_CHECK_LIB([crypt32], [main],, AC_MSG_ERROR(lib missing))
263 # -static is interpreted by libtool, where it has a different meaning.
264 # In libtool-speak, it's -all-static.
265 AX_CHECK_LINK_FLAG([[-static]],[LIBTOOL_APP_LDFLAGS="$LIBTOOL_APP_LDFLAGS -all-static"])
267 AC_PATH_PROG([MAKENSIS], [makensis], none)
268 if test x$MAKENSIS = xnone; then
269 AC_MSG_WARN("makensis not found. Cannot create installer.")
272 AC_PATH_TOOL(WINDRES, windres, none)
273 if test x$WINDRES = xnone; then
274 AC_MSG_ERROR("windres not found")
277 CPPFLAGS="$CPPFLAGS -D_MT -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB"
278 LEVELDB_TARGET_FLAGS="-DOS_WINDOWS"
279 if test "x$CXXFLAGS_overridden" = "xno"; then
280 CXXFLAGS="$CXXFLAGS -w"
283 i?86-*) WINDOWS_BITS=32 ;;
284 x86_64-*) WINDOWS_BITS=64 ;;
285 *) AC_MSG_ERROR("Could not determine win32/win64 for installer") ;;
287 AC_SUBST(WINDOWS_BITS)
289 dnl libtool insists upon adding -nostdlib and a list of objects/libs to link against.
290 dnl That breaks our ability to build dll's with static libgcc/libstdc++/libssp. Override
291 dnl its command here, with the predeps/postdeps removed, and -static inserted. Postdeps are
292 dnl also overridden to prevent their insertion later.
293 dnl This should only affect dll's.
294 archive_cmds_CXX="\$CC -shared \$libobjs \$deplibs \$compiler_flags -static -o \$output_objdir/\$soname \${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker \$lib"
300 LEVELDB_TARGET_FLAGS="-DOS_MACOSX"
301 if test x$cross_compiling != xyes; then
303 AC_CHECK_PROG([PORT],port, port)
304 if test x$PORT = xport; then
305 dnl add default macports paths
306 CPPFLAGS="$CPPFLAGS -isystem /opt/local/include"
307 LIBS="$LIBS -L/opt/local/lib"
308 if test -d /opt/local/include/db48; then
309 CPPFLAGS="$CPPFLAGS -I/opt/local/include/db48"
310 LIBS="$LIBS -L/opt/local/lib/db48"
314 AC_CHECK_PROG([BREW],brew, brew)
315 if test x$BREW = xbrew; then
316 dnl These Homebrew packages may be keg-only, meaning that they won't be found
317 dnl in expected paths because they may conflict with system files. Ask
318 dnl Homebrew where each one is located, then adjust paths accordingly.
319 dnl It's safe to add these paths even if the functionality is disabled by
320 dnl the user (--without-wallet or --without-gui for example).
322 openssl_prefix=`$BREW --prefix openssl 2>/dev/null`
323 bdb_prefix=`$BREW --prefix berkeley-db4 2>/dev/null`
324 qt5_prefix=`$BREW --prefix qt5 2>/dev/null`
325 if test x$openssl_prefix != x; then
326 PKG_CONFIG_PATH="$openssl_prefix/lib/pkgconfig:$PKG_CONFIG_PATH"
327 export PKG_CONFIG_PATH
329 if test x$bdb_prefix != x; then
330 CPPFLAGS="$CPPFLAGS -I$bdb_prefix/include"
331 LIBS="$LIBS -L$bdb_prefix/lib"
333 if test x$qt5_prefix != x; then
334 PKG_CONFIG_PATH="$qt5_prefix/lib/pkgconfig:$PKG_CONFIG_PATH"
335 export PKG_CONFIG_PATH
344 AC_PATH_TOOL([INSTALLNAMETOOL], [install_name_tool], install_name_tool)
345 AC_PATH_TOOL([OTOOL], [otool], otool)
346 AC_PATH_PROGS([GENISOIMAGE], [genisoimage mkisofs],genisoimage)
347 AC_PATH_PROGS([RSVG_CONVERT], [rsvg-convert rsvg],rsvg-convert)
348 AC_PATH_PROGS([IMAGEMAGICK_CONVERT], [convert],convert)
349 AC_PATH_PROGS([TIFFCP], [tiffcp],tiffcp)
351 dnl libtool will try to strip the static lib, which is a problem for
352 dnl cross-builds because strip attempts to call a hard-coded ld,
353 dnl which may not exist in the path. Stripping the .a is not
354 dnl necessary, so just disable it.
360 AX_CHECK_LINK_FLAG([[-Wl,-headerpad_max_install_names]], [LDFLAGS="$LDFLAGS -Wl,-headerpad_max_install_names"])
361 CPPFLAGS="$CPPFLAGS -DMAC_OSX"
362 OBJCXXFLAGS="$CXXFLAGS"
366 LEVELDB_TARGET_FLAGS="-DOS_LINUX"
369 LEVELDB_TARGET_FLAGS="-DOS_FREEBSD"
372 LEVELDB_TARGET_FLAGS="-DOS_OPENBSD"
375 OTHER_OS=`echo ${host_os} | awk '{print toupper($0)}'`
376 AC_MSG_WARN([Guessing LevelDB OS as OS_${OTHER_OS}, please check whether this is correct, if not add an entry to configure.ac.])
377 LEVELDB_TARGET_FLAGS="-DOS_${OTHER_OS}"
381 if test x$use_pkgconfig = xyes; then
382 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.)])
383 m4_ifdef([PKG_PROG_PKG_CONFIG], [
385 if test x"$PKG_CONFIG" = "x"; then
386 AC_MSG_ERROR(pkg-config not found.)
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$PYTHON = x; then
403 AC_MSG_ERROR("lcov testing requested but python not found")
405 if test x$GENHTML = x; then
406 AC_MSG_ERROR("lcov testing requested but genhtml not found")
408 LCOV="$LCOV --gcov-tool=$GCOV"
409 AX_CHECK_COMPILE_FLAG([--coverage],[CXXFLAGS="$CXXFLAGS --coverage"],
410 [AC_MSG_ERROR("lcov testing requested but --coverage flag does not work")])
413 dnl Check for endianness
416 dnl Check for pthread compile/link requirements
419 # The following macro will add the necessary defines to bitcoin-config.h, but
420 # they also need to be passed down to any subprojects. Pull the results out of
421 # the cache and add them to CPPFLAGS.
423 # detect POSIX or GNU variant of strerror_r
426 if test x$ac_cv_sys_file_offset_bits != x &&
427 test x$ac_cv_sys_file_offset_bits != xno &&
428 test x$ac_cv_sys_file_offset_bits != xunknown; then
429 CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
432 if test x$ac_cv_sys_large_files != x &&
433 test x$ac_cv_sys_large_files != xno &&
434 test x$ac_cv_sys_large_files != xunknown; then
435 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES=$ac_cv_sys_large_files"
438 AX_CHECK_LINK_FLAG([[-Wl,--large-address-aware]], [LDFLAGS="$LDFLAGS -Wl,--large-address-aware"])
440 AX_GCC_FUNC_ATTRIBUTE([visibility])
441 AX_GCC_FUNC_ATTRIBUTE([dllexport])
442 AX_GCC_FUNC_ATTRIBUTE([dllimport])
444 if test x$use_glibc_compat != xno; then
446 #glibc absorbed clock_gettime in 2.17. librt (its previous location) is safe to link
447 #in anyway for back-compat.
448 AC_CHECK_LIB([rt],[clock_gettime],, AC_MSG_ERROR(lib missing))
450 #__fdelt_chk's params and return type have changed from long unsigned int to long int.
451 # See which one is present here.
452 AC_MSG_CHECKING(__fdelt_chk type)
453 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef _FORTIFY_SOURCE
454 #undef _FORTIFY_SOURCE
456 #define _FORTIFY_SOURCE 2
457 #include <sys/select.h>
458 extern "C" long unsigned int __fdelt_warn(long unsigned int);]],[[]])],
459 [ fdelt_type="long unsigned int"],
460 [ fdelt_type="long int"])
461 AC_MSG_RESULT($fdelt_type)
462 AC_DEFINE_UNQUOTED(FDELT_TYPE, $fdelt_type,[parameter and return value type for __fdelt_chk])
464 AC_SEARCH_LIBS([clock_gettime],[rt])
467 if test x$TARGET_OS != xwindows; then
468 # All windows code is PIC, forcing it on just adds useless compile warnings
469 AX_CHECK_COMPILE_FLAG([-fPIC],[PIC_FLAGS="-fPIC"])
472 if test x$use_hardening != xno; then
473 AX_CHECK_COMPILE_FLAG([-Wstack-protector],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -Wstack-protector"])
474 AX_CHECK_COMPILE_FLAG([-fstack-protector-all],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -fstack-protector-all"])
476 AX_CHECK_PREPROC_FLAG([-D_FORTIFY_SOURCE=2],[
477 AX_CHECK_PREPROC_FLAG([-U_FORTIFY_SOURCE],[
478 HARDENED_CPPFLAGS="$HARDENED_CPPFLAGS -U_FORTIFY_SOURCE"
480 HARDENED_CPPFLAGS="$HARDENED_CPPFLAGS -D_FORTIFY_SOURCE=2"
483 AX_CHECK_LINK_FLAG([[-Wl,--dynamicbase]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,--dynamicbase"])
484 AX_CHECK_LINK_FLAG([[-Wl,--nxcompat]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,--nxcompat"])
485 AX_CHECK_LINK_FLAG([[-Wl,--high-entropy-va]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,--high-entropy-va"])
486 AX_CHECK_LINK_FLAG([[-Wl,-z,relro]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,-z,relro"])
487 AX_CHECK_LINK_FLAG([[-Wl,-z,now]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,-z,now"])
489 if test x$TARGET_OS != xwindows; then
490 AX_CHECK_COMPILE_FLAG([-fPIE],[PIE_FLAGS="-fPIE"])
491 AX_CHECK_LINK_FLAG([[-pie]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -pie"])
496 AC_CHECK_LIB([ssp], [main],, AC_MSG_ERROR(lib missing))
501 dnl this flag screws up non-darwin gcc even when the check fails. special-case it.
502 if test x$TARGET_OS = xdarwin; then
503 AX_CHECK_LINK_FLAG([[-Wl,-dead_strip]], [LDFLAGS="$LDFLAGS -Wl,-dead_strip"])
506 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])
507 AC_SEARCH_LIBS([getaddrinfo_a], [anl], [AC_DEFINE(HAVE_GETADDRINFO_A, 1, [Define this symbol if you have getaddrinfo_a])])
508 AC_SEARCH_LIBS([inet_pton], [nsl resolv], [AC_DEFINE(HAVE_INET_PTON, 1, [Define this symbol if you have inet_pton])])
510 AC_CHECK_DECLS([strnlen])
512 # Check for daemon(3), unrelated to --with-daemon (although used by it)
513 AC_CHECK_DECLS([daemon])
515 AC_CHECK_DECLS([le16toh, le32toh, le64toh, htole16, htole32, htole64, be16toh, be32toh, be64toh, htobe16, htobe32, htobe64],,,
518 #elif HAVE_SYS_ENDIAN_H
519 #include <sys/endian.h>
522 AC_CHECK_DECLS([bswap_16, bswap_32, bswap_64],,,
524 #include <byteswap.h>
527 dnl Check for MSG_NOSIGNAL
528 AC_MSG_CHECKING(for MSG_NOSIGNAL)
529 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]],
530 [[ int f = MSG_NOSIGNAL; ]])],
531 [ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_MSG_NOSIGNAL, 1,[Define this symbol if you have MSG_NOSIGNAL]) ],
535 AC_MSG_CHECKING([for visibility attribute])
536 AC_LINK_IFELSE([AC_LANG_SOURCE([
537 int foo_def( void ) __attribute__((visibility("default")));
541 AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE,1,[Define if the visibility attribute is supported.])
546 if test x$use_reduce_exports = xyes; then
547 AC_MSG_ERROR([Cannot find a working visibility attribute. Use --disable-reduce-exports.])
552 if test x$use_reduce_exports = xyes; then
553 AX_CHECK_COMPILE_FLAG([-fvisibility=hidden],[RE_CXXFLAGS="-fvisibility=hidden"],
554 [AC_MSG_ERROR([Cannot set default symbol visibility. Use --disable-reduce-exports.])])
560 AM_CONDITIONAL([EMBEDDED_LEVELDB],[true])
561 AC_SUBST(LEVELDB_CPPFLAGS)
565 if test x$enable_wallet != xno; then
566 dnl Check for libdb_cxx only if wallet enabled
570 dnl Check for libminiupnpc (optional)
571 if test x$use_upnp != xno; then
573 [miniupnpc/miniwget.h miniupnpc/miniupnpc.h miniupnpc/upnpcommands.h miniupnpc/upnperrors.h],
574 [AC_CHECK_LIB([miniupnpc], [main],[MINIUPNPC_LIBS=-lminiupnpc], [have_miniupnpc=no])],
581 dnl sets $bitcoin_enable_qt, $bitcoin_enable_qt_test, $bitcoin_enable_qt_dbus
582 BITCOIN_QT_CONFIGURE([$use_pkgconfig], [qt5])
584 if test x$build_bitcoin_utils$build_bitcoind$bitcoin_enable_qt$use_tests$use_bench = xnonononono; then
590 if test x$use_boost = xyes; then
592 dnl Minimum required Boost version
593 define(MINIMUM_REQUIRED_BOOST, 1.47.0)
595 dnl Check for boost libs
596 AX_BOOST_BASE([MINIMUM_REQUIRED_BOOST])
599 AX_BOOST_PROGRAM_OPTIONS
604 if test x$use_reduce_exports = xyes; then
605 AC_MSG_CHECKING([for working boost reduced exports])
606 TEMP_CPPFLAGS="$CPPFLAGS"
607 CPPFLAGS="$BOOST_CPPFLAGS $CPPFLAGS"
608 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
609 @%:@include <boost/version.hpp>
611 #if BOOST_VERSION >= 104900
612 // Everything is okay
614 # error Boost version is too old
619 AC_MSG_ERROR([boost versions < 1.49 are known to be broken with reduced exports. Use --disable-reduce-exports.])
621 CPPFLAGS="$TEMP_CPPFLAGS"
625 if test x$use_reduce_exports = xyes; then
626 CXXFLAGS="$CXXFLAGS $RE_CXXFLAGS"
627 AX_CHECK_LINK_FLAG([[-Wl,--exclude-libs,ALL]], [RELDFLAGS="-Wl,--exclude-libs,ALL"])
630 if test x$use_tests = xyes; then
632 if test x$HEXDUMP = x; then
633 AC_MSG_ERROR(hexdump is required for tests)
637 if test x$use_boost = xyes; then
639 AX_BOOST_UNIT_TEST_FRAMEWORK
641 dnl Determine if -DBOOST_TEST_DYN_LINK is needed
642 AC_MSG_CHECKING([for dynamic linked boost test])
644 LIBS="$LIBS $BOOST_LDFLAGS $BOOST_UNIT_TEST_FRAMEWORK_LIB"
645 TEMP_CPPFLAGS="$CPPFLAGS"
646 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
647 AC_LINK_IFELSE([AC_LANG_SOURCE([
648 #define BOOST_TEST_DYN_LINK
649 #define BOOST_TEST_MAIN
650 #include <boost/test/unit_test.hpp>
654 [TESTDEFS="$TESTDEFS -DBOOST_TEST_DYN_LINK"],
657 CPPFLAGS="$TEMP_CPPFLAGS"
662 if test x$use_boost = xyes; then
664 BOOST_LIBS="$BOOST_LDFLAGS $BOOST_SYSTEM_LIB $BOOST_FILESYSTEM_LIB $BOOST_PROGRAM_OPTIONS_LIB $BOOST_THREAD_LIB $BOOST_CHRONO_LIB"
667 dnl If boost (prior to 1.57) was built without c++11, it emulated scoped enums
668 dnl using c++98 constructs. Unfortunately, this implementation detail leaked into
669 dnl the abi. This was fixed in 1.57.
671 dnl When building against that installed version using c++11, the headers pick up
672 dnl on the native c++11 scoped enum support and enable it, however it will fail to
673 dnl link. This can be worked around by disabling c++11 scoped enums if linking will
675 dnl BOOST_NO_SCOPED_ENUMS was changed to BOOST_NO_CXX11_SCOPED_ENUMS in 1.51.
678 LIBS="$BOOST_LIBS $LIBS"
679 TEMP_CPPFLAGS="$CPPFLAGS"
680 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
681 AC_MSG_CHECKING([for mismatched boost c++11 scoped enums])
682 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
683 #include "boost/config.hpp"
684 #include "boost/version.hpp"
685 #if !defined(BOOST_NO_SCOPED_ENUMS) && !defined(BOOST_NO_CXX11_SCOPED_ENUMS) && BOOST_VERSION < 105700
686 #define BOOST_NO_SCOPED_ENUMS
687 #define BOOST_NO_CXX11_SCOPED_ENUMS
690 #include "boost/filesystem.hpp"
693 boost::filesystem::copy_file("foo", "bar");
698 [AC_MSG_RESULT(mismatched); BOOST_CPPFLAGS="$BOOST_CPPFLAGS -DBOOST_NO_SCOPED_ENUMS -DBOOST_NO_CXX11_SCOPED_ENUMS"], [AC_MSG_RESULT(ok)])
700 CPPFLAGS="$TEMP_CPPFLAGS"
702 dnl Boost >= 1.50 uses sleep_for rather than the now-deprecated sleep, however
703 dnl it was broken from 1.50 to 1.52 when backed by nanosleep. Use sleep_for if
704 dnl a working version is available, else fall back to sleep. sleep was removed
706 dnl If neither is available, abort.
708 LIBS="$BOOST_LIBS $LIBS"
709 TEMP_CPPFLAGS="$CPPFLAGS"
710 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
711 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
712 #include <boost/thread/thread.hpp>
713 #include <boost/version.hpp>
715 #if BOOST_VERSION >= 105000 && (!defined(BOOST_HAS_NANOSLEEP) || BOOST_VERSION >= 105200)
716 boost::this_thread::sleep_for(boost::chrono::milliseconds(0));
722 AC_DEFINE(HAVE_WORKING_BOOST_SLEEP_FOR, 1, [Define this symbol if boost sleep_for works])],
725 CPPFLAGS="$TEMP_CPPFLAGS"
727 if test x$boost_sleep != xyes; then
729 LIBS="$BOOST_LIBS $LIBS"
730 TEMP_CPPFLAGS="$CPPFLAGS"
731 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
732 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
733 #include <boost/version.hpp>
734 #include <boost/thread.hpp>
735 #include <boost/date_time/posix_time/posix_time_types.hpp>
737 #if BOOST_VERSION <= 105600
738 boost::this_thread::sleep(boost::posix_time::milliseconds(0));
743 [boost_sleep=yes; AC_DEFINE(HAVE_WORKING_BOOST_SLEEP, 1, [Define this symbol if boost sleep works])],
746 CPPFLAGS="$TEMP_CPPFLAGS"
749 if test x$boost_sleep != xyes; then
750 AC_MSG_ERROR(No working boost sleep implementation found.)
755 if test x$use_pkgconfig = xyes; then
760 PKG_CHECK_MODULES([SSL], [libssl],, [AC_MSG_ERROR(openssl not found.)])
761 PKG_CHECK_MODULES([CRYPTO], [libcrypto],,[AC_MSG_ERROR(libcrypto not found.)])
762 BITCOIN_QT_CHECK([PKG_CHECK_MODULES([PROTOBUF], [protobuf], [have_protobuf=yes], [BITCOIN_QT_FAIL(libprotobuf not found)])])
763 if test x$use_qr != xno; then
764 BITCOIN_QT_CHECK([PKG_CHECK_MODULES([QR], [libqrencode], [have_qrencode=yes], [have_qrencode=no])])
766 if test x$build_bitcoin_utils$build_bitcoind$bitcoin_enable_qt$use_tests != xnononono; then
767 PKG_CHECK_MODULES([EVENT], [libevent],, [AC_MSG_ERROR(libevent not found.)])
768 if test x$TARGET_OS != xwindows; then
769 PKG_CHECK_MODULES([EVENT_PTHREADS], [libevent_pthreads],, [AC_MSG_ERROR(libevent_pthreads not found.)])
773 if test "x$use_zmq" = "xyes"; then
774 PKG_CHECK_MODULES([ZMQ],[libzmq >= 4],
775 [AC_DEFINE([ENABLE_ZMQ],[1],[Define to 1 to enable ZMQ functions])],
776 [AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
777 AC_MSG_WARN([libzmq version 4.x or greater not found, disabling])
780 AC_DEFINE_UNQUOTED([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
785 AC_CHECK_HEADER([openssl/crypto.h],,AC_MSG_ERROR(libcrypto headers missing))
786 AC_CHECK_LIB([crypto], [main],CRYPTO_LIBS=-lcrypto, AC_MSG_ERROR(libcrypto missing))
788 AC_CHECK_HEADER([openssl/ssl.h],, AC_MSG_ERROR(libssl headers missing),)
789 AC_CHECK_LIB([ssl], [main],SSL_LIBS=-lssl, AC_MSG_ERROR(libssl missing))
791 if test x$build_bitcoin_utils$build_bitcoind$bitcoin_enable_qt$use_tests != xnononono; then
792 AC_CHECK_HEADER([event2/event.h],, AC_MSG_ERROR(libevent headers missing),)
793 AC_CHECK_LIB([event],[main],EVENT_LIBS=-levent,AC_MSG_ERROR(libevent missing))
794 if test x$TARGET_OS != xwindows; then
795 AC_CHECK_LIB([event_pthreads],[main],EVENT_PTHREADS_LIBS=-levent_pthreads,AC_MSG_ERROR(libevent_pthreads missing))
799 if test "x$use_zmq" = "xyes"; then
800 AC_CHECK_HEADER([zmq.h],
801 [AC_DEFINE([ENABLE_ZMQ],[1],[Define to 1 to enable ZMQ functions])],
802 [AC_MSG_WARN([zmq.h not found, disabling zmq support])
804 AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])])
805 AC_CHECK_LIB([zmq],[zmq_ctx_shutdown],ZMQ_LIBS=-lzmq,
806 [AC_MSG_WARN([libzmq >= 4.0 not found, disabling zmq support])
808 AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])])
810 AC_DEFINE_UNQUOTED([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
813 if test "x$use_zmq" = "xyes"; then
814 dnl Assume libzmq was built for static linking
817 ZMQ_CFLAGS="$ZMQ_CFLAGS -DZMQ_STATIC"
822 BITCOIN_QT_CHECK(AC_CHECK_LIB([protobuf] ,[main],[PROTOBUF_LIBS=-lprotobuf], BITCOIN_QT_FAIL(libprotobuf not found)))
823 if test x$use_qr != xno; then
824 BITCOIN_QT_CHECK([AC_CHECK_LIB([qrencode], [main],[QR_LIBS=-lqrencode], [have_qrencode=no])])
825 BITCOIN_QT_CHECK([AC_CHECK_HEADER([qrencode.h],, have_qrencode=no)])
831 need_bundled_univalue=yes
833 if test x$build_bitcoin_utils$build_bitcoind$bitcoin_enable_qt$use_tests$use_bench = xnonononono; then
834 need_bundled_univalue=no
837 if test x$system_univalue != xno ; then
839 if test x$use_pkgconfig = xyes; then
844 PKG_CHECK_MODULES([UNIVALUE],[libunivalue],[found_univalue=yes],[true])
848 AC_CHECK_HEADER([univalue.h],[
849 AC_CHECK_LIB([univalue], [main],[
850 UNIVALUE_LIBS=-lunivalue
856 if test x$found_univalue = xyes ; then
858 need_bundled_univalue=no
859 elif test x$system_univalue = xyes ; then
860 AC_MSG_ERROR([univalue not found])
866 if test x$need_bundled_univalue = xyes ; then
867 UNIVALUE_CFLAGS='-I$(srcdir)/univalue/include'
868 UNIVALUE_LIBS='univalue/libunivalue.la'
873 AM_CONDITIONAL([EMBEDDED_UNIVALUE],[test x$need_bundled_univalue = xyes])
874 AC_SUBST(UNIVALUE_CFLAGS)
875 AC_SUBST(UNIVALUE_LIBS)
877 BITCOIN_QT_PATH_PROGS([PROTOC], [protoc],$protoc_bin_path)
879 AC_MSG_CHECKING([whether to build bitcoind])
880 AM_CONDITIONAL([BUILD_BITCOIND], [test x$build_bitcoind = xyes])
881 AC_MSG_RESULT($build_bitcoind)
883 AC_MSG_CHECKING([whether to build utils (bitcoin-cli bitcoin-tx)])
884 AM_CONDITIONAL([BUILD_BITCOIN_UTILS], [test x$build_bitcoin_utils = xyes])
885 AC_MSG_RESULT($build_bitcoin_utils)
887 AC_MSG_CHECKING([whether to build libraries])
888 AM_CONDITIONAL([BUILD_BITCOIN_LIBS], [test x$build_bitcoin_libs = xyes])
889 if test x$build_bitcoin_libs = xyes; then
890 AC_DEFINE(HAVE_CONSENSUS_LIB, 1, [Define this symbol if the consensus lib has been built])
891 AC_CONFIG_FILES([libbitcoinconsensus.pc:libbitcoinconsensus.pc.in])
893 AC_MSG_RESULT($build_bitcoin_libs)
897 if test "x$use_ccache" != "xno"; then
898 AC_MSG_CHECKING(if ccache should be used)
899 if test x$CCACHE = x; then
900 if test "x$use_ccache" = "xyes"; then
901 AC_MSG_ERROR([ccache not found.]);
907 CC="$ac_cv_path_CCACHE $CC"
908 CXX="$ac_cv_path_CCACHE $CXX"
910 AC_MSG_RESULT($use_ccache)
912 if test "x$use_ccache" = "xyes"; then
913 AX_CHECK_PREPROC_FLAG([-Qunused-arguments],[CPPFLAGS="-Qunused-arguments $CPPFLAGS"])
917 AC_MSG_CHECKING([if wallet should be enabled])
918 if test x$enable_wallet != xno; then
920 AC_DEFINE_UNQUOTED([ENABLE_WALLET],[1],[Define to 1 to enable wallet functions])
926 dnl enable upnp support
927 AC_MSG_CHECKING([whether to build with support for UPnP])
928 if test x$have_miniupnpc = xno; then
929 if test x$use_upnp = xyes; then
930 AC_MSG_ERROR("UPnP requested but cannot be built. use --without-miniupnpc")
934 if test x$use_upnp != xno; then
936 AC_MSG_CHECKING([whether to build with UPnP enabled by default])
939 if test x$use_upnp_default != xno; then
943 AC_MSG_RESULT($use_upnp_default)
944 AC_DEFINE_UNQUOTED([USE_UPNP],[$upnp_setting],[UPnP support not compiled if undefined, otherwise value (0 or 1) determines default state])
945 if test x$TARGET_OS = xwindows; then
946 MINIUPNPC_CPPFLAGS="-DSTATICLIB -DMINIUPNP_STATICLIB"
953 dnl these are only used when qt is enabled
955 if test x$bitcoin_enable_qt != xno; then
956 dnl enable dbus support
957 AC_MSG_CHECKING([whether to build GUI with support for D-Bus])
958 if test x$bitcoin_enable_qt_dbus != xno; then
959 AC_DEFINE([USE_DBUS],[1],[Define if dbus support should be compiled in])
961 AC_MSG_RESULT($bitcoin_enable_qt_dbus)
963 dnl enable qr support
964 AC_MSG_CHECKING([whether to build GUI with support for QR codes])
965 if test x$have_qrencode = xno; then
966 if test x$use_qr = xyes; then
967 AC_MSG_ERROR("QR support requested but cannot be built. use --without-qrencode")
971 if test x$use_qr != xno; then
973 AC_DEFINE([USE_QRCODE],[1],[Define if QR support should be compiled in])
980 if test x$XGETTEXT = x; then
981 AC_MSG_WARN("xgettext is required to update qt translations")
984 AC_MSG_CHECKING([whether to build test_bitcoin-qt])
985 if test x$use_gui_tests$bitcoin_enable_qt_test = xyesyes; then
993 AM_CONDITIONAL([ENABLE_ZMQ], [test "x$use_zmq" = "xyes"])
995 AC_MSG_CHECKING([whether to build test_bitcoin])
996 if test x$use_tests = xyes; then
1004 AC_MSG_CHECKING([whether to reduce exports])
1005 if test x$use_reduce_exports = xyes; then
1006 AC_MSG_RESULT([yes])
1011 if test x$build_bitcoin_utils$build_bitcoin_libs$build_bitcoind$bitcoin_enable_qt$use_bench$use_tests = xnononononono; then
1012 AC_MSG_ERROR([No targets! Please specify at least one of: --with-utils --with-libs --with-daemon --with-gui --enable-bench or --enable-tests])
1015 AM_CONDITIONAL([TARGET_DARWIN], [test x$TARGET_OS = xdarwin])
1016 AM_CONDITIONAL([BUILD_DARWIN], [test x$BUILD_OS = xdarwin])
1017 AM_CONDITIONAL([TARGET_WINDOWS], [test x$TARGET_OS = xwindows])
1018 AM_CONDITIONAL([ENABLE_WALLET],[test x$enable_wallet = xyes])
1019 AM_CONDITIONAL([ENABLE_TESTS],[test x$BUILD_TEST = xyes])
1020 AM_CONDITIONAL([ENABLE_QT],[test x$bitcoin_enable_qt = xyes])
1021 AM_CONDITIONAL([ENABLE_QT_TESTS],[test x$BUILD_TEST_QT = xyes])
1022 AM_CONDITIONAL([ENABLE_BENCH],[test x$use_bench = xyes])
1023 AM_CONDITIONAL([USE_QRCODE], [test x$use_qr = xyes])
1024 AM_CONDITIONAL([USE_LCOV],[test x$use_lcov = xyes])
1025 AM_CONDITIONAL([GLIBC_BACK_COMPAT],[test x$use_glibc_compat = xyes])
1026 AM_CONDITIONAL([HARDEN],[test x$use_hardening = xyes])
1028 AC_DEFINE(CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MAJOR, [Major version])
1029 AC_DEFINE(CLIENT_VERSION_MINOR, _CLIENT_VERSION_MINOR, [Minor version])
1030 AC_DEFINE(CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION, [Build revision])
1031 AC_DEFINE(CLIENT_VERSION_BUILD, _CLIENT_VERSION_BUILD, [Version Build])
1032 AC_DEFINE(CLIENT_VERSION_IS_RELEASE, _CLIENT_VERSION_IS_RELEASE, [Version is release])
1033 AC_DEFINE(COPYRIGHT_YEAR, _COPYRIGHT_YEAR, [Copyright year])
1034 AC_DEFINE(COPYRIGHT_HOLDERS, "_COPYRIGHT_HOLDERS", [Copyright holder(s) before %s replacement])
1035 AC_DEFINE(COPYRIGHT_HOLDERS_SUBSTITUTION, "_COPYRIGHT_HOLDERS_SUBSTITUTION", [Replacement for %s in copyright holders string])
1036 define(_COPYRIGHT_HOLDERS_FINAL, [patsubst(_COPYRIGHT_HOLDERS, [%s], [_COPYRIGHT_HOLDERS_SUBSTITUTION])])
1037 AC_DEFINE(COPYRIGHT_HOLDERS_FINAL, "_COPYRIGHT_HOLDERS_FINAL", [Copyright holder(s)])
1038 AC_SUBST(CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MAJOR)
1039 AC_SUBST(CLIENT_VERSION_MINOR, _CLIENT_VERSION_MINOR)
1040 AC_SUBST(CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION)
1041 AC_SUBST(CLIENT_VERSION_BUILD, _CLIENT_VERSION_BUILD)
1042 AC_SUBST(CLIENT_VERSION_IS_RELEASE, _CLIENT_VERSION_IS_RELEASE)
1043 AC_SUBST(COPYRIGHT_YEAR, _COPYRIGHT_YEAR)
1044 AC_SUBST(COPYRIGHT_HOLDERS, "_COPYRIGHT_HOLDERS")
1045 AC_SUBST(COPYRIGHT_HOLDERS_SUBSTITUTION, "_COPYRIGHT_HOLDERS_SUBSTITUTION")
1046 AC_SUBST(COPYRIGHT_HOLDERS_FINAL, "_COPYRIGHT_HOLDERS_FINAL")
1047 AC_SUBST(BITCOIN_DAEMON_NAME)
1048 AC_SUBST(BITCOIN_GUI_NAME)
1049 AC_SUBST(BITCOIN_CLI_NAME)
1050 AC_SUBST(BITCOIN_TX_NAME)
1053 AC_SUBST(HARDENED_CXXFLAGS)
1054 AC_SUBST(HARDENED_CPPFLAGS)
1055 AC_SUBST(HARDENED_LDFLAGS)
1058 AC_SUBST(LIBTOOL_APP_LDFLAGS)
1060 AC_SUBST(USE_QRCODE)
1061 AC_SUBST(BOOST_LIBS)
1063 AC_SUBST(LEVELDB_TARGET_FLAGS)
1064 AC_SUBST(MINIUPNPC_CPPFLAGS)
1065 AC_SUBST(MINIUPNPC_LIBS)
1066 AC_SUBST(CRYPTO_LIBS)
1068 AC_SUBST(EVENT_LIBS)
1069 AC_SUBST(EVENT_PTHREADS_LIBS)
1071 AC_SUBST(PROTOBUF_LIBS)
1073 AC_CONFIG_FILES([Makefile src/Makefile doc/man/Makefile share/setup.nsi share/qt/Info.plist src/test/buildenv.py])
1074 AC_CONFIG_FILES([qa/pull-tester/run-bitcoind-for-test.sh],[chmod +x qa/pull-tester/run-bitcoind-for-test.sh])
1075 AC_CONFIG_FILES([qa/pull-tester/tests_config.py],[chmod +x qa/pull-tester/tests_config.py])
1076 AC_CONFIG_FILES([contrib/devtools/split-debug.sh],[chmod +x contrib/devtools/split-debug.sh])
1077 AC_CONFIG_LINKS([qa/pull-tester/rpc-tests.py:qa/pull-tester/rpc-tests.py])
1079 dnl boost's m4 checks do something really nasty: they export these vars. As a
1080 dnl result, they leak into secp256k1's configure and crazy things happen.
1081 dnl Until this is fixed upstream and we've synced, we'll just un-export them.
1082 CPPFLAGS_TEMP="$CPPFLAGS"
1084 CPPFLAGS="$CPPFLAGS_TEMP"
1086 LDFLAGS_TEMP="$LDFLAGS"
1088 LDFLAGS="$LDFLAGS_TEMP"
1094 PKGCONFIG_PATH_TEMP="$PKG_CONFIG_PATH"
1095 unset PKG_CONFIG_PATH
1096 PKG_CONFIG_PATH="$PKGCONFIG_PATH_TEMP"
1098 PKGCONFIG_LIBDIR_TEMP="$PKG_CONFIG_LIBDIR"
1099 unset PKG_CONFIG_LIBDIR
1100 PKG_CONFIG_LIBDIR="$PKGCONFIG_LIBDIR_TEMP"
1102 if test x$need_bundled_univalue = xyes; then
1103 AC_CONFIG_SUBDIRS([src/univalue])
1106 ac_configure_args="${ac_configure_args} --disable-shared --with-pic --with-bignum=no --enable-module-recovery"
1107 AC_CONFIG_SUBDIRS([src/secp256k1])
1111 dnl Taken from https://wiki.debian.org/RpathIssue
1114 AC_MSG_RESULT([Fixing libtool for -rpath problems.])
1115 sed < libtool > libtool-2 \
1116 's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" -D__LIBTOOL_IS_A_FOOL__ "/'
1117 mv libtool-2 libtool
1122 dnl Replace the BUILDDIR path with the correct Windows path if compiling on Native Windows
1125 sed 's/BUILDDIR="\/\([[a-z]]\)/BUILDDIR="\1:/' qa/pull-tester/tests_config.py > qa/pull-tester/tests_config-2.py
1126 mv qa/pull-tester/tests_config-2.py qa/pull-tester/tests_config.py