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)
79 AC_ARG_VAR(PYTHONPATH, Augments the default search path for python module files)
85 AC_ARG_ENABLE([wallet],
86 [AS_HELP_STRING([--disable-wallet],
87 [disable wallet (enabled by default)])],
88 [enable_wallet=$enableval],
91 AC_ARG_WITH([miniupnpc],
92 [AS_HELP_STRING([--with-miniupnpc],
93 [enable UPNP (default is yes if libminiupnpc is found)])],
97 AC_ARG_ENABLE([upnp-default],
98 [AS_HELP_STRING([--enable-upnp-default],
99 [if UPNP is enabled, turn it on at startup (default is no)])],
100 [use_upnp_default=$enableval],
101 [use_upnp_default=no])
104 AS_HELP_STRING([--disable-tests],[do not compile tests (default is to compile)]),
105 [use_tests=$enableval],
108 AC_ARG_ENABLE(gui-tests,
109 AS_HELP_STRING([--disable-gui-tests],[do not compile GUI tests (default is to compile if GUI and tests enabled)]),
110 [use_gui_tests=$enableval],
111 [use_gui_tests=$use_tests])
114 AS_HELP_STRING([--disable-bench],[do not compile benchmarks (default is to compile)]),
115 [use_bench=$enableval],
118 AC_ARG_WITH([comparison-tool],
119 AS_HELP_STRING([--with-comparison-tool],[path to java comparison tool (requires --enable-tests)]),
120 [use_comparison_tool=$withval],
121 [use_comparison_tool=no])
123 AC_ARG_ENABLE([comparison-tool-reorg-tests],
124 AS_HELP_STRING([--enable-comparison-tool-reorg-tests],[enable expensive reorg tests in the comparison tool (default no)]),
125 [use_comparison_tool_reorg_tests=$enableval],
126 [use_comparison_tool_reorg_tests=no])
128 AC_ARG_ENABLE([extended-rpc-tests],
129 AS_HELP_STRING([--enable-extended-rpc-tests],[enable expensive RPC tests when using lcov (default no)]),
130 [use_extended_rpc_tests=$enableval],
131 [use_extended_rpc_tests=no])
133 AC_ARG_WITH([qrencode],
134 [AS_HELP_STRING([--with-qrencode],
135 [enable QR code support (default is yes if qt is enabled and libqrencode is found)])],
139 AC_ARG_ENABLE([hardening],
140 [AS_HELP_STRING([--disable-hardening],
141 [do not attempt to harden the resulting executables (default is to harden)])],
142 [use_hardening=$enableval],
145 AC_ARG_ENABLE([reduce-exports],
146 [AS_HELP_STRING([--enable-reduce-exports],
147 [attempt to reduce exported symbols in the resulting executables (default is no)])],
148 [use_reduce_exports=$enableval],
149 [use_reduce_exports=no])
151 AC_ARG_ENABLE([ccache],
152 [AS_HELP_STRING([--disable-ccache],
153 [do not use ccache for building (default is to use if found)])],
154 [use_ccache=$enableval],
157 AC_ARG_ENABLE([lcov],
158 [AS_HELP_STRING([--enable-lcov],
159 [enable lcov testing (default is no)])],
163 AC_ARG_ENABLE([glibc-back-compat],
164 [AS_HELP_STRING([--enable-glibc-back-compat],
165 [enable backwards compatibility with glibc])],
166 [use_glibc_compat=$enableval],
167 [use_glibc_compat=no])
169 AC_ARG_WITH([system-univalue],
170 [AS_HELP_STRING([--with-system-univalue],
171 [Build with system UniValue (default is no)])],
172 [system_univalue=$withval],
176 [AS_HELP_STRING([--disable-zmq],
177 [disable ZMQ notifications])],
178 [use_zmq=$enableval],
181 AC_ARG_WITH([protoc-bindir],[AS_HELP_STRING([--with-protoc-bindir=BIN_DIR],[specify protoc bin path])], [protoc_bin_path=$withval], [])
184 AC_ARG_ENABLE([debug],
185 [AS_HELP_STRING([--enable-debug],
186 [use debug compiler flags and macros (default is no)])],
187 [enable_debug=$enableval],
191 AX_CHECK_COMPILE_FLAG([-Werror],[CXXFLAG_WERROR="-Werror"],[CXXFLAG_WERROR=""])
193 if test "x$enable_debug" = xyes; then
194 CPPFLAGS="$CPPFLAGS -DDEBUG -DDEBUG_LOCKORDER"
195 if test "x$GCC" = xyes; then
196 CFLAGS="$CFLAGS -g3 -O0"
199 if test "x$GXX" = xyes; then
200 CXXFLAGS="$CXXFLAGS -g3 -O0"
204 if test "x$CXXFLAGS_overridden" = "xno"; then
205 AX_CHECK_COMPILE_FLAG([-Wall],[CXXFLAGS="$CXXFLAGS -Wall"],,[[$CXXFLAG_WERROR]])
206 AX_CHECK_COMPILE_FLAG([-Wextra],[CXXFLAGS="$CXXFLAGS -Wextra"],,[[$CXXFLAG_WERROR]])
207 AX_CHECK_COMPILE_FLAG([-Wformat],[CXXFLAGS="$CXXFLAGS -Wformat"],,[[$CXXFLAG_WERROR]])
208 AX_CHECK_COMPILE_FLAG([-Wformat-security],[CXXFLAGS="$CXXFLAGS -Wformat-security"],,[[$CXXFLAG_WERROR]])
210 ## Some compilers (gcc) ignore unknown -Wno-* options, but warn about all
211 ## unknown options if any other warning is produced. Test the -Wfoo case, and
212 ## set the -Wno-foo case if it works.
213 AX_CHECK_COMPILE_FLAG([-Wunused-parameter],[CXXFLAGS="$CXXFLAGS -Wno-unused-parameter"],,[[$CXXFLAG_WERROR]])
214 AX_CHECK_COMPILE_FLAG([-Wself-assign],[CXXFLAGS="$CXXFLAGS -Wno-self-assign"],,[[$CXXFLAG_WERROR]])
215 AX_CHECK_COMPILE_FLAG([-Wunused-local-typedef],[CXXFLAGS="$CXXFLAGS -Wno-unused-local-typedef"],,[[$CXXFLAG_WERROR]])
216 AX_CHECK_COMPILE_FLAG([-Wdeprecated-register],[CXXFLAGS="$CXXFLAGS -Wno-deprecated-register"],,[[$CXXFLAG_WERROR]])
218 CPPFLAGS="$CPPFLAGS -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS"
221 [AS_HELP_STRING([--with-utils],
222 [build bitcoin-cli bitcoin-tx (default=yes)])],
223 [build_bitcoin_utils=$withval],
224 [build_bitcoin_utils=yes])
227 [AS_HELP_STRING([--with-libs],
228 [build libraries (default=yes)])],
229 [build_bitcoin_libs=$withval],
230 [build_bitcoin_libs=yes])
232 AC_ARG_WITH([daemon],
233 [AS_HELP_STRING([--with-daemon],
234 [build bitcoind daemon (default=yes)])],
235 [build_bitcoind=$withval],
236 [build_bitcoind=yes])
242 #pkgconfig does more harm than good with MinGW
246 AC_CHECK_LIB([mingwthrd], [main],, AC_MSG_ERROR(lib missing))
247 AC_CHECK_LIB([kernel32], [main],, AC_MSG_ERROR(lib missing))
248 AC_CHECK_LIB([user32], [main],, AC_MSG_ERROR(lib missing))
249 AC_CHECK_LIB([gdi32], [main],, AC_MSG_ERROR(lib missing))
250 AC_CHECK_LIB([comdlg32], [main],, AC_MSG_ERROR(lib missing))
251 AC_CHECK_LIB([winspool], [main],, AC_MSG_ERROR(lib missing))
252 AC_CHECK_LIB([winmm], [main],, AC_MSG_ERROR(lib missing))
253 AC_CHECK_LIB([shell32], [main],, AC_MSG_ERROR(lib missing))
254 AC_CHECK_LIB([comctl32], [main],, AC_MSG_ERROR(lib missing))
255 AC_CHECK_LIB([ole32], [main],, AC_MSG_ERROR(lib missing))
256 AC_CHECK_LIB([oleaut32], [main],, AC_MSG_ERROR(lib missing))
257 AC_CHECK_LIB([uuid], [main],, AC_MSG_ERROR(lib missing))
258 AC_CHECK_LIB([rpcrt4], [main],, AC_MSG_ERROR(lib missing))
259 AC_CHECK_LIB([advapi32], [main],, AC_MSG_ERROR(lib missing))
260 AC_CHECK_LIB([ws2_32], [main],, AC_MSG_ERROR(lib missing))
261 AC_CHECK_LIB([mswsock], [main],, AC_MSG_ERROR(lib missing))
262 AC_CHECK_LIB([shlwapi], [main],, AC_MSG_ERROR(lib missing))
263 AC_CHECK_LIB([iphlpapi], [main],, AC_MSG_ERROR(lib missing))
264 AC_CHECK_LIB([crypt32], [main],, AC_MSG_ERROR(lib missing))
266 # -static is interpreted by libtool, where it has a different meaning.
267 # In libtool-speak, it's -all-static.
268 AX_CHECK_LINK_FLAG([[-static]],[LIBTOOL_APP_LDFLAGS="$LIBTOOL_APP_LDFLAGS -all-static"])
270 AC_PATH_PROG([MAKENSIS], [makensis], none)
271 if test x$MAKENSIS = xnone; then
272 AC_MSG_WARN("makensis not found. Cannot create installer.")
275 AC_PATH_TOOL(WINDRES, windres, none)
276 if test x$WINDRES = xnone; then
277 AC_MSG_ERROR("windres not found")
280 CPPFLAGS="$CPPFLAGS -D_MT -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB"
281 LEVELDB_TARGET_FLAGS="-DOS_WINDOWS"
282 if test "x$CXXFLAGS_overridden" = "xno"; then
283 CXXFLAGS="$CXXFLAGS -w"
286 i?86-*) WINDOWS_BITS=32 ;;
287 x86_64-*) WINDOWS_BITS=64 ;;
288 *) AC_MSG_ERROR("Could not determine win32/win64 for installer") ;;
290 AC_SUBST(WINDOWS_BITS)
292 dnl libtool insists upon adding -nostdlib and a list of objects/libs to link against.
293 dnl That breaks our ability to build dll's with static libgcc/libstdc++/libssp. Override
294 dnl its command here, with the predeps/postdeps removed, and -static inserted. Postdeps are
295 dnl also overridden to prevent their insertion later.
296 dnl This should only affect dll's.
297 archive_cmds_CXX="\$CC -shared \$libobjs \$deplibs \$compiler_flags -static -o \$output_objdir/\$soname \${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker \$lib"
303 LEVELDB_TARGET_FLAGS="-DOS_MACOSX"
304 if test x$cross_compiling != xyes; then
306 AC_CHECK_PROG([PORT],port, port)
307 if test x$PORT = xport; then
308 dnl add default macports paths
309 CPPFLAGS="$CPPFLAGS -isystem /opt/local/include"
310 LIBS="$LIBS -L/opt/local/lib"
311 if test -d /opt/local/include/db48; then
312 CPPFLAGS="$CPPFLAGS -I/opt/local/include/db48"
313 LIBS="$LIBS -L/opt/local/lib/db48"
317 AC_CHECK_PROG([BREW],brew, brew)
318 if test x$BREW = xbrew; then
319 dnl These Homebrew packages may be keg-only, meaning that they won't be found
320 dnl in expected paths because they may conflict with system files. Ask
321 dnl Homebrew where each one is located, then adjust paths accordingly.
322 dnl It's safe to add these paths even if the functionality is disabled by
323 dnl the user (--without-wallet or --without-gui for example).
325 openssl_prefix=`$BREW --prefix openssl 2>/dev/null`
326 bdb_prefix=`$BREW --prefix berkeley-db4 2>/dev/null`
327 qt5_prefix=`$BREW --prefix qt5 2>/dev/null`
328 if test x$openssl_prefix != x; then
329 PKG_CONFIG_PATH="$openssl_prefix/lib/pkgconfig:$PKG_CONFIG_PATH"
330 export PKG_CONFIG_PATH
332 if test x$bdb_prefix != x; then
333 CPPFLAGS="$CPPFLAGS -I$bdb_prefix/include"
334 LIBS="$LIBS -L$bdb_prefix/lib"
336 if test x$qt5_prefix != x; then
337 PKG_CONFIG_PATH="$qt5_prefix/lib/pkgconfig:$PKG_CONFIG_PATH"
338 export PKG_CONFIG_PATH
347 AC_PATH_TOOL([INSTALLNAMETOOL], [install_name_tool], install_name_tool)
348 AC_PATH_TOOL([OTOOL], [otool], otool)
349 AC_PATH_PROGS([GENISOIMAGE], [genisoimage mkisofs],genisoimage)
350 AC_PATH_PROGS([RSVG_CONVERT], [rsvg-convert rsvg],rsvg-convert)
351 AC_PATH_PROGS([IMAGEMAGICK_CONVERT], [convert],convert)
352 AC_PATH_PROGS([TIFFCP], [tiffcp],tiffcp)
354 dnl libtool will try to strip the static lib, which is a problem for
355 dnl cross-builds because strip attempts to call a hard-coded ld,
356 dnl which may not exist in the path. Stripping the .a is not
357 dnl necessary, so just disable it.
363 AX_CHECK_LINK_FLAG([[-Wl,-headerpad_max_install_names]], [LDFLAGS="$LDFLAGS -Wl,-headerpad_max_install_names"])
364 CPPFLAGS="$CPPFLAGS -DMAC_OSX"
365 OBJCXXFLAGS="$CXXFLAGS"
369 LEVELDB_TARGET_FLAGS="-DOS_LINUX"
372 OTHER_OS=`echo ${host_os} | awk '{print toupper($0)}'`
373 LEVELDB_TARGET_FLAGS="-DOS_${OTHER_OS}"
377 if test x$use_comparison_tool != xno; then
378 AC_SUBST(JAVA_COMPARISON_TOOL, $use_comparison_tool)
381 if test x$use_comparison_tool_reorg_tests != xno; then
382 if test x$use_comparison_tool = x; then
383 AC_MSG_ERROR("comparison tool reorg tests but comparison tool was not specified")
385 AC_SUBST(COMPARISON_TOOL_REORG_TESTS, 1)
387 AC_SUBST(COMPARISON_TOOL_REORG_TESTS, 0)
390 if test x$use_extended_rpc_tests != xno; then
391 AC_SUBST(EXTENDED_RPC_TESTS, -extended)
394 if test x$use_lcov = xyes; then
395 if test x$LCOV = x; then
396 AC_MSG_ERROR("lcov testing requested but lcov not found")
398 if test x$GCOV = x; then
399 AC_MSG_ERROR("lcov testing requested but gcov not found")
401 if test x$JAVA = x; then
402 AC_MSG_ERROR("lcov testing requested but java not found")
404 if test x$PYTHON = x; then
405 AC_MSG_ERROR("lcov testing requested but python not found")
407 if test x$GENHTML = x; then
408 AC_MSG_ERROR("lcov testing requested but genhtml not found")
410 if test x$use_comparison_tool = x; then
411 AC_MSG_ERROR("lcov testing requested but comparison tool was not specified")
413 LCOV="$LCOV --gcov-tool=$GCOV"
414 AX_CHECK_COMPILE_FLAG([--coverage],[CXXFLAGS="$CXXFLAGS --coverage"],
415 [AC_MSG_ERROR("lcov testing requested but --coverage flag does not work")])
418 dnl Check for endianness
421 dnl Check for pthread compile/link requirements
424 # The following macro will add the necessary defines to bitcoin-config.h, but
425 # they also need to be passed down to any subprojects. Pull the results out of
426 # the cache and add them to CPPFLAGS.
428 # detect POSIX or GNU variant of strerror_r
431 if test x$ac_cv_sys_file_offset_bits != x &&
432 test x$ac_cv_sys_file_offset_bits != xno &&
433 test x$ac_cv_sys_file_offset_bits != xunknown; then
434 CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
437 if test x$ac_cv_sys_large_files != x &&
438 test x$ac_cv_sys_large_files != xno &&
439 test x$ac_cv_sys_large_files != xunknown; then
440 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES=$ac_cv_sys_large_files"
443 AX_CHECK_LINK_FLAG([[-Wl,--large-address-aware]], [LDFLAGS="$LDFLAGS -Wl,--large-address-aware"])
445 AX_GCC_FUNC_ATTRIBUTE([visibility])
446 AX_GCC_FUNC_ATTRIBUTE([dllexport])
447 AX_GCC_FUNC_ATTRIBUTE([dllimport])
449 if test x$use_glibc_compat != xno; then
451 #glibc absorbed clock_gettime in 2.17. librt (its previous location) is safe to link
452 #in anyway for back-compat.
453 AC_CHECK_LIB([rt],[clock_gettime],, AC_MSG_ERROR(lib missing))
455 #__fdelt_chk's params and return type have changed from long unsigned int to long int.
456 # See which one is present here.
457 AC_MSG_CHECKING(__fdelt_chk type)
458 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef _FORTIFY_SOURCE
459 #undef _FORTIFY_SOURCE
461 #define _FORTIFY_SOURCE 2
462 #include <sys/select.h>
463 extern "C" long unsigned int __fdelt_warn(long unsigned int);]],[[]])],
464 [ fdelt_type="long unsigned int"],
465 [ fdelt_type="long int"])
466 AC_MSG_RESULT($fdelt_type)
467 AC_DEFINE_UNQUOTED(FDELT_TYPE, $fdelt_type,[parameter and return value type for __fdelt_chk])
469 AC_SEARCH_LIBS([clock_gettime],[rt])
472 if test x$TARGET_OS != xwindows; then
473 # All windows code is PIC, forcing it on just adds useless compile warnings
474 AX_CHECK_COMPILE_FLAG([-fPIC],[PIC_FLAGS="-fPIC"])
477 if test x$use_hardening != xno; then
478 AX_CHECK_COMPILE_FLAG([-Wstack-protector],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -Wstack-protector"])
479 AX_CHECK_COMPILE_FLAG([-fstack-protector-all],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -fstack-protector-all"])
481 AX_CHECK_PREPROC_FLAG([-D_FORTIFY_SOURCE=2],[
482 AX_CHECK_PREPROC_FLAG([-U_FORTIFY_SOURCE],[
483 HARDENED_CPPFLAGS="$HARDENED_CPPFLAGS -U_FORTIFY_SOURCE"
485 HARDENED_CPPFLAGS="$HARDENED_CPPFLAGS -D_FORTIFY_SOURCE=2"
488 AX_CHECK_LINK_FLAG([[-Wl,--dynamicbase]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,--dynamicbase"])
489 AX_CHECK_LINK_FLAG([[-Wl,--nxcompat]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,--nxcompat"])
490 AX_CHECK_LINK_FLAG([[-Wl,-z,relro]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,-z,relro"])
491 AX_CHECK_LINK_FLAG([[-Wl,-z,now]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,-z,now"])
493 if test x$TARGET_OS != xwindows; then
494 AX_CHECK_COMPILE_FLAG([-fPIE],[PIE_FLAGS="-fPIE"])
495 AX_CHECK_LINK_FLAG([[-pie]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -pie"])
500 AC_CHECK_LIB([ssp], [main],, AC_MSG_ERROR(lib missing))
505 dnl this flag screws up non-darwin gcc even when the check fails. special-case it.
506 if test x$TARGET_OS = xdarwin; then
507 AX_CHECK_LINK_FLAG([[-Wl,-dead_strip]], [LDFLAGS="$LDFLAGS -Wl,-dead_strip"])
510 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])
511 AC_SEARCH_LIBS([getaddrinfo_a], [anl], [AC_DEFINE(HAVE_GETADDRINFO_A, 1, [Define this symbol if you have getaddrinfo_a])])
512 AC_SEARCH_LIBS([inet_pton], [nsl resolv], [AC_DEFINE(HAVE_INET_PTON, 1, [Define this symbol if you have inet_pton])])
514 AC_CHECK_DECLS([strnlen])
516 AC_CHECK_DECLS([le16toh, le32toh, le64toh, htole16, htole32, htole64, be16toh, be32toh, be64toh, htobe16, htobe32, htobe64],,,
519 #elif HAVE_SYS_ENDIAN_H
520 #include <sys/endian.h>
523 AC_CHECK_DECLS([bswap_16, bswap_32, bswap_64],,,
525 #include <byteswap.h>
528 dnl Check for MSG_NOSIGNAL
529 AC_MSG_CHECKING(for MSG_NOSIGNAL)
530 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]],
531 [[ int f = MSG_NOSIGNAL; ]])],
532 [ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_MSG_NOSIGNAL, 1,[Define this symbol if you have MSG_NOSIGNAL]) ],
536 AC_MSG_CHECKING([for visibility attribute])
537 AC_LINK_IFELSE([AC_LANG_SOURCE([
538 int foo_def( void ) __attribute__((visibility("default")));
542 AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE,1,[Define if the visibility attribute is supported.])
547 if test x$use_reduce_exports = xyes; then
548 AC_MSG_ERROR([Cannot find a working visibility attribute. Use --disable-reduce-exports.])
553 if test x$use_reduce_exports = xyes; then
554 AX_CHECK_COMPILE_FLAG([-fvisibility=hidden],[RE_CXXFLAGS="-fvisibility=hidden"],
555 [AC_MSG_ERROR([Cannot set default symbol visibility. Use --disable-reduce-exports.])])
561 AM_CONDITIONAL([EMBEDDED_LEVELDB],[true])
562 AC_SUBST(LEVELDB_CPPFLAGS)
566 if test x$enable_wallet != xno; then
567 dnl Check for libdb_cxx only if wallet enabled
571 dnl Check for libminiupnpc (optional)
572 if test x$use_upnp != xno; then
574 [miniupnpc/miniwget.h miniupnpc/miniupnpc.h miniupnpc/upnpcommands.h miniupnpc/upnperrors.h],
575 [AC_CHECK_LIB([miniupnpc], [main],[MINIUPNPC_LIBS=-lminiupnpc], [have_miniupnpc=no])],
582 dnl sets $bitcoin_enable_qt, $bitcoin_enable_qt_test, $bitcoin_enable_qt_dbus
583 BITCOIN_QT_CONFIGURE([$use_pkgconfig], [qt5])
585 if test x$build_bitcoin_utils$build_bitcoind$bitcoin_enable_qt$use_tests = xnononono; then
591 if test x$use_boost = xyes; then
593 dnl Check for boost libs
597 AX_BOOST_PROGRAM_OPTIONS
602 if test x$use_reduce_exports = xyes; then
603 AC_MSG_CHECKING([for working boost reduced exports])
604 TEMP_CPPFLAGS="$CPPFLAGS"
605 CPPFLAGS="$BOOST_CPPFLAGS $CPPFLAGS"
606 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
607 @%:@include <boost/version.hpp>
609 #if BOOST_VERSION >= 104900
610 // Everything is okay
612 # error Boost version is too old
617 AC_MSG_ERROR([boost versions < 1.49 are known to be broken with reduced exports. Use --disable-reduce-exports.])
619 CPPFLAGS="$TEMP_CPPFLAGS"
623 if test x$use_reduce_exports = xyes; then
624 CXXFLAGS="$CXXFLAGS $RE_CXXFLAGS"
625 AX_CHECK_LINK_FLAG([[-Wl,--exclude-libs,ALL]], [RELDFLAGS="-Wl,--exclude-libs,ALL"])
628 if test x$use_tests = xyes; then
630 if test x$HEXDUMP = x; then
631 AC_MSG_ERROR(hexdump is required for tests)
635 if test x$use_boost = xyes; then
637 AX_BOOST_UNIT_TEST_FRAMEWORK
639 dnl Determine if -DBOOST_TEST_DYN_LINK is needed
640 AC_MSG_CHECKING([for dynamic linked boost test])
642 LIBS="$LIBS $BOOST_LDFLAGS $BOOST_UNIT_TEST_FRAMEWORK_LIB"
643 TEMP_CPPFLAGS="$CPPFLAGS"
644 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
645 AC_LINK_IFELSE([AC_LANG_SOURCE([
646 #define BOOST_TEST_DYN_LINK
647 #define BOOST_TEST_MAIN
648 #include <boost/test/unit_test.hpp>
652 [TESTDEFS="$TESTDEFS -DBOOST_TEST_DYN_LINK"],
655 CPPFLAGS="$TEMP_CPPFLAGS"
660 if test x$use_boost = xyes; then
662 BOOST_LIBS="$BOOST_LDFLAGS $BOOST_SYSTEM_LIB $BOOST_FILESYSTEM_LIB $BOOST_PROGRAM_OPTIONS_LIB $BOOST_THREAD_LIB $BOOST_CHRONO_LIB"
665 dnl If boost (prior to 1.57) was built without c++11, it emulated scoped enums
666 dnl using c++98 constructs. Unfortunately, this implementation detail leaked into
667 dnl the abi. This was fixed in 1.57.
669 dnl When building against that installed version using c++11, the headers pick up
670 dnl on the native c++11 scoped enum support and enable it, however it will fail to
671 dnl link. This can be worked around by disabling c++11 scoped enums if linking will
673 dnl BOOST_NO_SCOPED_ENUMS was changed to BOOST_NO_CXX11_SCOPED_ENUMS in 1.51.
676 LIBS="$BOOST_LIBS $LIBS"
677 TEMP_CPPFLAGS="$CPPFLAGS"
678 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
679 AC_MSG_CHECKING([for mismatched boost c++11 scoped enums])
680 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
681 #include "boost/config.hpp"
682 #include "boost/version.hpp"
683 #if !defined(BOOST_NO_SCOPED_ENUMS) && !defined(BOOST_NO_CXX11_SCOPED_ENUMS) && BOOST_VERSION < 105700
684 #define BOOST_NO_SCOPED_ENUMS
685 #define BOOST_NO_CXX11_SCOPED_ENUMS
688 #include "boost/filesystem.hpp"
691 boost::filesystem::copy_file("foo", "bar");
696 [AC_MSG_RESULT(mismatched); BOOST_CPPFLAGS="$BOOST_CPPFLAGS -DBOOST_NO_SCOPED_ENUMS -DBOOST_NO_CXX11_SCOPED_ENUMS"], [AC_MSG_RESULT(ok)])
698 CPPFLAGS="$TEMP_CPPFLAGS"
700 dnl Boost >= 1.50 uses sleep_for rather than the now-deprecated sleep, however
701 dnl it was broken from 1.50 to 1.52 when backed by nanosleep. Use sleep_for if
702 dnl a working version is available, else fall back to sleep. sleep was removed
704 dnl If neither is available, abort.
706 LIBS="$BOOST_LIBS $LIBS"
707 TEMP_CPPFLAGS="$CPPFLAGS"
708 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
709 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
710 #include <boost/thread/thread.hpp>
711 #include <boost/version.hpp>
713 #if BOOST_VERSION >= 105000 && (!defined(BOOST_HAS_NANOSLEEP) || BOOST_VERSION >= 105200)
714 boost::this_thread::sleep_for(boost::chrono::milliseconds(0));
720 AC_DEFINE(HAVE_WORKING_BOOST_SLEEP_FOR, 1, [Define this symbol if boost sleep_for works])],
723 CPPFLAGS="$TEMP_CPPFLAGS"
725 if test x$boost_sleep != xyes; then
727 LIBS="$BOOST_LIBS $LIBS"
728 TEMP_CPPFLAGS="$CPPFLAGS"
729 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
730 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
731 #include <boost/version.hpp>
732 #include <boost/thread.hpp>
733 #include <boost/date_time/posix_time/posix_time_types.hpp>
735 #if BOOST_VERSION <= 105600
736 boost::this_thread::sleep(boost::posix_time::milliseconds(0));
741 [boost_sleep=yes; AC_DEFINE(HAVE_WORKING_BOOST_SLEEP, 1, [Define this symbol if boost sleep works])],
744 CPPFLAGS="$TEMP_CPPFLAGS"
747 if test x$boost_sleep != xyes; then
748 AC_MSG_ERROR(No working boost sleep implementation found.)
753 if test x$use_pkgconfig = xyes; then
755 if test x"$PKG_CONFIG" = "x"; then
756 AC_MSG_ERROR(pkg-config not found.)
763 PKG_CHECK_MODULES([SSL], [libssl],, [AC_MSG_ERROR(openssl not found.)])
764 PKG_CHECK_MODULES([CRYPTO], [libcrypto],,[AC_MSG_ERROR(libcrypto not found.)])
765 BITCOIN_QT_CHECK([PKG_CHECK_MODULES([PROTOBUF], [protobuf], [have_protobuf=yes], [BITCOIN_QT_FAIL(libprotobuf not found)])])
766 if test x$use_qr != xno; then
767 BITCOIN_QT_CHECK([PKG_CHECK_MODULES([QR], [libqrencode], [have_qrencode=yes], [have_qrencode=no])])
769 if test x$build_bitcoin_utils$build_bitcoind$bitcoin_enable_qt$use_tests != xnononono; then
770 PKG_CHECK_MODULES([EVENT], [libevent],, [AC_MSG_ERROR(libevent not found.)])
771 if test x$TARGET_OS != xwindows; then
772 PKG_CHECK_MODULES([EVENT_PTHREADS], [libevent_pthreads],, [AC_MSG_ERROR(libevent_pthreads not found.)])
776 if test "x$use_zmq" = "xyes"; then
777 PKG_CHECK_MODULES([ZMQ],[libzmq >= 4],
778 [AC_DEFINE([ENABLE_ZMQ],[1],[Define to 1 to enable ZMQ functions])],
779 [AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
780 AC_MSG_WARN([libzmq version 4.x or greater not found, disabling])
783 AC_DEFINE_UNQUOTED([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
788 AC_CHECK_HEADER([openssl/crypto.h],,AC_MSG_ERROR(libcrypto headers missing))
789 AC_CHECK_LIB([crypto], [main],CRYPTO_LIBS=-lcrypto, AC_MSG_ERROR(libcrypto missing))
791 AC_CHECK_HEADER([openssl/ssl.h],, AC_MSG_ERROR(libssl headers missing),)
792 AC_CHECK_LIB([ssl], [main],SSL_LIBS=-lssl, AC_MSG_ERROR(libssl missing))
794 if test x$build_bitcoin_utils$build_bitcoind$bitcoin_enable_qt$use_tests != xnononono; then
795 AC_CHECK_HEADER([event2/event.h],, AC_MSG_ERROR(libevent headers missing),)
796 AC_CHECK_LIB([event],[main],EVENT_LIBS=-levent,AC_MSG_ERROR(libevent missing))
797 if test x$TARGET_OS != xwindows; then
798 AC_CHECK_LIB([event_pthreads],[main],EVENT_PTHREADS_LIBS=-levent_pthreads,AC_MSG_ERROR(libevent_pthreads missing))
802 if test "x$use_zmq" = "xyes"; then
803 AC_CHECK_HEADER([zmq.h],
804 [AC_DEFINE([ENABLE_ZMQ],[1],[Define to 1 to enable ZMQ functions])],
805 [AC_MSG_WARN([zmq.h not found, disabling zmq support])
807 AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])])
808 AC_CHECK_LIB([zmq],[zmq_ctx_shutdown],ZMQ_LIBS=-lzmq,
809 [AC_MSG_WARN([libzmq >= 4.0 not found, disabling zmq support])
811 AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])])
813 AC_DEFINE_UNQUOTED([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
816 BITCOIN_QT_CHECK(AC_CHECK_LIB([protobuf] ,[main],[PROTOBUF_LIBS=-lprotobuf], BITCOIN_QT_FAIL(libprotobuf not found)))
817 if test x$use_qr != xno; then
818 BITCOIN_QT_CHECK([AC_CHECK_LIB([qrencode], [main],[QR_LIBS=-lqrencode], [have_qrencode=no])])
819 BITCOIN_QT_CHECK([AC_CHECK_HEADER([qrencode.h],, have_qrencode=no)])
825 if test x$system_univalue != xno ; then
827 if test x$use_pkgconfig = xyes; then
832 PKG_CHECK_MODULES([UNIVALUE],[libunivalue],[found_univalue=yes],[true])
836 AC_CHECK_HEADER([univalue.h],[
837 AC_CHECK_LIB([univalue], [main],[
838 UNIVALUE_LIBS=-lunivalue
844 if test x$found_univalue = xyes ; then
846 elif test x$system_univalue = xyes ; then
847 AC_MSG_ERROR([univalue not found])
853 if test x$system_univalue = xno ; then
854 UNIVALUE_CFLAGS='-I$(srcdir)/univalue/include'
855 UNIVALUE_LIBS='univalue/libunivalue.la'
857 AM_CONDITIONAL([EMBEDDED_UNIVALUE],[test x$system_univalue = xno])
858 AC_SUBST(UNIVALUE_CFLAGS)
859 AC_SUBST(UNIVALUE_LIBS)
861 CXXFLAGS_TEMP="$CXXFLAGS"
863 CXXFLAGS="$CXXFLAGS $SSL_CFLAGS $CRYPTO_CFLAGS"
864 LIBS="$LIBS $SSL_LIBS $CRYPTO_LIBS"
865 AC_CHECK_HEADER([openssl/ec.h],, AC_MSG_ERROR(OpenSSL ec header missing),)
866 CXXFLAGS="$CXXFLAGS_TEMP"
869 BITCOIN_QT_PATH_PROGS([PROTOC], [protoc],$protoc_bin_path)
871 AC_MSG_CHECKING([whether to build bitcoind])
872 AM_CONDITIONAL([BUILD_BITCOIND], [test x$build_bitcoind = xyes])
873 AC_MSG_RESULT($build_bitcoind)
875 AC_MSG_CHECKING([whether to build utils (bitcoin-cli bitcoin-tx)])
876 AM_CONDITIONAL([BUILD_BITCOIN_UTILS], [test x$build_bitcoin_utils = xyes])
877 AC_MSG_RESULT($build_bitcoin_utils)
879 AC_MSG_CHECKING([whether to build libraries])
880 AM_CONDITIONAL([BUILD_BITCOIN_LIBS], [test x$build_bitcoin_libs = xyes])
881 if test x$build_bitcoin_libs = xyes; then
882 AC_DEFINE(HAVE_CONSENSUS_LIB, 1, [Define this symbol if the consensus lib has been built])
883 AC_CONFIG_FILES([libbitcoinconsensus.pc:libbitcoinconsensus.pc.in])
885 AC_MSG_RESULT($build_bitcoin_libs)
889 if test "x$use_ccache" != "xno"; then
890 AC_MSG_CHECKING(if ccache should be used)
891 if test x$CCACHE = x; then
892 if test "x$use_ccache" = "xyes"; then
893 AC_MSG_ERROR([ccache not found.]);
899 CC="$ac_cv_path_CCACHE $CC"
900 CXX="$ac_cv_path_CCACHE $CXX"
902 AC_MSG_RESULT($use_ccache)
904 if test "x$use_ccache" = "xyes"; then
905 AX_CHECK_PREPROC_FLAG([-Qunused-arguments],[CPPFLAGS="-Qunused-arguments $CPPFLAGS"])
909 AC_MSG_CHECKING([if wallet should be enabled])
910 if test x$enable_wallet != xno; then
912 AC_DEFINE_UNQUOTED([ENABLE_WALLET],[1],[Define to 1 to enable wallet functions])
918 dnl enable upnp support
919 AC_MSG_CHECKING([whether to build with support for UPnP])
920 if test x$have_miniupnpc = xno; then
921 if test x$use_upnp = xyes; then
922 AC_MSG_ERROR("UPnP requested but cannot be built. use --without-miniupnpc")
926 if test x$use_upnp != xno; then
928 AC_MSG_CHECKING([whether to build with UPnP enabled by default])
931 if test x$use_upnp_default != xno; then
935 AC_MSG_RESULT($use_upnp_default)
936 AC_DEFINE_UNQUOTED([USE_UPNP],[$upnp_setting],[UPnP support not compiled if undefined, otherwise value (0 or 1) determines default state])
937 if test x$TARGET_OS = xwindows; then
938 MINIUPNPC_CPPFLAGS="-DSTATICLIB -DMINIUPNP_STATICLIB"
945 dnl these are only used when qt is enabled
947 if test x$bitcoin_enable_qt != xno; then
948 dnl enable dbus support
949 AC_MSG_CHECKING([whether to build GUI with support for D-Bus])
950 if test x$bitcoin_enable_qt_dbus != xno; then
951 AC_DEFINE([USE_DBUS],[1],[Define if dbus support should be compiled in])
953 AC_MSG_RESULT($bitcoin_enable_qt_dbus)
955 dnl enable qr support
956 AC_MSG_CHECKING([whether to build GUI with support for QR codes])
957 if test x$have_qrencode = xno; then
958 if test x$use_qr = xyes; then
959 AC_MSG_ERROR("QR support requested but cannot be built. use --without-qrencode")
963 if test x$use_qr != xno; then
965 AC_DEFINE([USE_QRCODE],[1],[Define if QR support should be compiled in])
972 if test x$XGETTEXT = x; then
973 AC_MSG_WARN("xgettext is required to update qt translations")
976 AC_MSG_CHECKING([whether to build test_bitcoin-qt])
977 if test x$use_gui_tests$bitcoin_enable_qt_test = xyesyes; then
985 AM_CONDITIONAL([ENABLE_ZMQ], [test "x$use_zmq" = "xyes"])
987 AC_MSG_CHECKING([whether to build test_bitcoin])
988 if test x$use_tests = xyes; then
996 AC_MSG_CHECKING([whether to reduce exports])
997 if test x$use_reduce_exports = xyes; then
1003 if test x$build_bitcoin_utils$build_bitcoin_libs$build_bitcoind$bitcoin_enable_qt$use_tests = xnonononono; then
1004 AC_MSG_ERROR([No targets! Please specify at least one of: --with-utils --with-libs --with-daemon --with-gui or --enable-tests])
1007 AM_CONDITIONAL([TARGET_DARWIN], [test x$TARGET_OS = xdarwin])
1008 AM_CONDITIONAL([BUILD_DARWIN], [test x$BUILD_OS = xdarwin])
1009 AM_CONDITIONAL([TARGET_WINDOWS], [test x$TARGET_OS = xwindows])
1010 AM_CONDITIONAL([ENABLE_WALLET],[test x$enable_wallet = xyes])
1011 AM_CONDITIONAL([ENABLE_TESTS],[test x$BUILD_TEST = xyes])
1012 AM_CONDITIONAL([ENABLE_QT],[test x$bitcoin_enable_qt = xyes])
1013 AM_CONDITIONAL([ENABLE_QT_TESTS],[test x$BUILD_TEST_QT = xyes])
1014 AM_CONDITIONAL([ENABLE_BENCH],[test x$use_bench = xyes])
1015 AM_CONDITIONAL([USE_QRCODE], [test x$use_qr = xyes])
1016 AM_CONDITIONAL([USE_LCOV],[test x$use_lcov = xyes])
1017 AM_CONDITIONAL([USE_COMPARISON_TOOL],[test x$use_comparison_tool != xno])
1018 AM_CONDITIONAL([USE_COMPARISON_TOOL_REORG_TESTS],[test x$use_comparison_tool_reorg_test != xno])
1019 AM_CONDITIONAL([GLIBC_BACK_COMPAT],[test x$use_glibc_compat = xyes])
1020 AM_CONDITIONAL([HARDEN],[test x$use_hardening = xyes])
1022 AC_DEFINE(CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MAJOR, [Major version])
1023 AC_DEFINE(CLIENT_VERSION_MINOR, _CLIENT_VERSION_MINOR, [Minor version])
1024 AC_DEFINE(CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION, [Build revision])
1025 AC_DEFINE(CLIENT_VERSION_BUILD, _CLIENT_VERSION_BUILD, [Version Build])
1026 AC_DEFINE(CLIENT_VERSION_IS_RELEASE, _CLIENT_VERSION_IS_RELEASE, [Version is release])
1027 AC_DEFINE(COPYRIGHT_YEAR, _COPYRIGHT_YEAR, [Copyright year])
1028 AC_DEFINE(COPYRIGHT_HOLDERS, "_COPYRIGHT_HOLDERS", [Copyright holder(s) before %s replacement])
1029 AC_DEFINE(COPYRIGHT_HOLDERS_SUBSTITUTION, "_COPYRIGHT_HOLDERS_SUBSTITUTION", [Replacement for %s in copyright holders string])
1030 define(_COPYRIGHT_HOLDERS_FINAL, [patsubst(_COPYRIGHT_HOLDERS, [%s], [_COPYRIGHT_HOLDERS_SUBSTITUTION])])
1031 AC_DEFINE(COPYRIGHT_HOLDERS_FINAL, "_COPYRIGHT_HOLDERS_FINAL", [Copyright holder(s)])
1032 AC_SUBST(CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MAJOR)
1033 AC_SUBST(CLIENT_VERSION_MINOR, _CLIENT_VERSION_MINOR)
1034 AC_SUBST(CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION)
1035 AC_SUBST(CLIENT_VERSION_BUILD, _CLIENT_VERSION_BUILD)
1036 AC_SUBST(CLIENT_VERSION_IS_RELEASE, _CLIENT_VERSION_IS_RELEASE)
1037 AC_SUBST(COPYRIGHT_YEAR, _COPYRIGHT_YEAR)
1038 AC_SUBST(COPYRIGHT_HOLDERS, "_COPYRIGHT_HOLDERS")
1039 AC_SUBST(COPYRIGHT_HOLDERS_SUBSTITUTION, "_COPYRIGHT_HOLDERS_SUBSTITUTION")
1040 AC_SUBST(COPYRIGHT_HOLDERS_FINAL, "_COPYRIGHT_HOLDERS_FINAL")
1041 AC_SUBST(BITCOIN_DAEMON_NAME)
1042 AC_SUBST(BITCOIN_GUI_NAME)
1043 AC_SUBST(BITCOIN_CLI_NAME)
1044 AC_SUBST(BITCOIN_TX_NAME)
1047 AC_SUBST(HARDENED_CXXFLAGS)
1048 AC_SUBST(HARDENED_CPPFLAGS)
1049 AC_SUBST(HARDENED_LDFLAGS)
1052 AC_SUBST(LIBTOOL_APP_LDFLAGS)
1054 AC_SUBST(USE_QRCODE)
1055 AC_SUBST(BOOST_LIBS)
1057 AC_SUBST(LEVELDB_TARGET_FLAGS)
1058 AC_SUBST(MINIUPNPC_CPPFLAGS)
1059 AC_SUBST(MINIUPNPC_LIBS)
1060 AC_CONFIG_FILES([Makefile src/Makefile share/setup.nsi share/qt/Info.plist src/test/buildenv.py])
1061 AC_CONFIG_FILES([qa/pull-tester/run-bitcoind-for-test.sh],[chmod +x qa/pull-tester/run-bitcoind-for-test.sh])
1062 AC_CONFIG_FILES([qa/pull-tester/tests_config.py],[chmod +x qa/pull-tester/tests_config.py])
1064 dnl boost's m4 checks do something really nasty: they export these vars. As a
1065 dnl result, they leak into secp256k1's configure and crazy things happen.
1066 dnl Until this is fixed upstream and we've synced, we'll just un-export them.
1067 CPPFLAGS_TEMP="$CPPFLAGS"
1069 CPPFLAGS="$CPPFLAGS_TEMP"
1071 LDFLAGS_TEMP="$LDFLAGS"
1073 LDFLAGS="$LDFLAGS_TEMP"
1079 PKGCONFIG_PATH_TEMP="$PKG_CONFIG_PATH"
1080 unset PKG_CONFIG_PATH
1081 PKG_CONFIG_PATH="$PKGCONFIG_PATH_TEMP"
1083 PKGCONFIG_LIBDIR_TEMP="$PKG_CONFIG_LIBDIR"
1084 unset PKG_CONFIG_LIBDIR
1085 PKG_CONFIG_LIBDIR="$PKGCONFIG_LIBDIR_TEMP"
1087 if test x$system_univalue = xno; then
1088 AC_CONFIG_SUBDIRS([src/univalue])
1091 ac_configure_args="${ac_configure_args} --disable-shared --with-pic --with-bignum=no --enable-module-recovery"
1092 AC_CONFIG_SUBDIRS([src/secp256k1])
1096 dnl Taken from https://wiki.debian.org/RpathIssue
1099 AC_MSG_RESULT([Fixing libtool for -rpath problems.])
1100 sed < libtool > libtool-2 \
1101 's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" -D__LIBTOOL_IS_A_FOOL__ "/'
1102 mv libtool-2 libtool
1107 dnl Replace the BUILDDIR path with the correct Windows path if compiling on Native Windows
1110 sed 's/BUILDDIR="\/\([[a-z]]\)/BUILDDIR="\1:/' qa/pull-tester/tests_config.py > qa/pull-tester/tests_config-2.py
1111 mv qa/pull-tester/tests_config-2.py qa/pull-tester/tests_config.py