]> Git Repo - VerusCoin.git/blob - configure.ac
Auto merge of #2183 - ebfull:rust-introduction, r=ebfull
[VerusCoin.git] / configure.ac
1 dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
2 AC_PREREQ([2.60])
3 define(_CLIENT_VERSION_MAJOR, 1)
4 define(_CLIENT_VERSION_MINOR, 0)
5 define(_CLIENT_VERSION_REVISION, 7)
6 define(_CLIENT_VERSION_BUILD, 51)
7 define(_ZC_BUILD_VAL, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, m4_incr(_CLIENT_VERSION_BUILD), m4_eval(_CLIENT_VERSION_BUILD < 50), 1, m4_eval(_CLIENT_VERSION_BUILD - 24), m4_eval(_CLIENT_VERSION_BUILD == 50), 1, , m4_eval(_CLIENT_VERSION_BUILD - 50)))
8 define(_CLIENT_VERSION_SUFFIX, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, _CLIENT_VERSION_REVISION-beta$1, m4_eval(_CLIENT_VERSION_BUILD < 50), 1, _CLIENT_VERSION_REVISION-rc$1, m4_eval(_CLIENT_VERSION_BUILD == 50), 1, _CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION-$1)))
9 define(_CLIENT_VERSION_IS_RELEASE, true)
10 define(_COPYRIGHT_YEAR, 2017)
11 AC_INIT([Zcash],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_SUFFIX(_ZC_BUILD_VAL)],[https://github.com/zcash/zcash/issues],[zcash])
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])
16
17 AC_CANONICAL_HOST
18
19 AH_TOP([#ifndef BITCOIN_CONFIG_H])
20 AH_TOP([#define BITCOIN_CONFIG_H])
21 AH_BOTTOM([#endif //BITCOIN_CONFIG_H])
22
23 dnl faketime breaks configure and is only needed for make. Disable it here.
24 unset FAKETIME
25
26 dnl Automake init set-up and checks
27 AM_INIT_AUTOMAKE([no-define subdir-objects foreign])
28
29 dnl faketime messes with timestamps and causes configure to be re-run.
30 dnl --disable-maintainer-mode can be used to bypass this.
31 AM_MAINTAINER_MODE([enable])
32
33 dnl make the compilation flags quiet unless V=1 is used
34 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
35
36 dnl Compiler checks (here before libtool).
37 if test "x${CXXFLAGS+set}" = "xset"; then
38   CXXFLAGS_overridden=yes
39 else
40   CXXFLAGS_overridden=no
41 fi
42
43 # Zcash requries C++11 compatibility; set it early:
44 CXXFLAGS="-std=c++11 $CXXFLAGS"
45
46 AC_PROG_CXX
47 m4_ifdef([AC_PROG_OBJCXX],[AC_PROG_OBJCXX])
48
49 dnl By default, libtool for mingw refuses to link static libs into a dll for
50 dnl fear of mixing pic/non-pic objects, and import/export complications. Since
51 dnl we have those under control, re-enable that functionality.
52 case $host in
53   *mingw*)
54      lt_cv_deplibs_check_method="pass_all"
55   ;;
56 esac
57 dnl Libtool init checks.
58 LT_INIT([pic-only])
59
60 dnl Check/return PATH for base programs.
61 AC_PATH_TOOL(AR, ar)
62 AC_PATH_TOOL(RANLIB, ranlib)
63 AC_PATH_TOOL(STRIP, strip)
64 AC_PATH_TOOL(GCOV, gcov)
65 AC_PATH_PROG(LCOV, lcov)
66 AC_PATH_PROG(JAVA, java)
67 AC_PATH_PROG(GENHTML, genhtml)
68 AC_PATH_PROG([GIT], [git])
69 AC_PATH_PROG(CCACHE,ccache)
70 AC_PATH_PROG(XGETTEXT,xgettext)
71 AC_PATH_PROG(HEXDUMP,hexdump)
72 AC_PATH_TOOL(READELF,readelf)
73 AC_PATH_TOOL(CPPFILT,c++filt)
74
75 dnl pkg-config check.
76 PKG_PROG_PKG_CONFIG
77
78 # Enable wallet
79 AC_ARG_ENABLE([wallet],
80   [AS_HELP_STRING([--enable-wallet],
81   [enable wallet (default is yes)])],
82   [enable_wallet=$enableval],
83   [enable_wallet=yes])
84
85 AC_ARG_ENABLE([mining],
86   [AS_HELP_STRING([--enable-mining],
87   [enable mining (default is yes)])],
88   [enable_mining=$enableval],
89   [enable_mining=yes])
90
91 AC_ARG_ENABLE([rust],
92   [AS_HELP_STRING([--enable-rust],
93   [enable rust (default is yes)])],
94   [enable_rust=$enableval],
95   [enable_rust=yes])
96
97 AC_ARG_WITH([miniupnpc],
98   [AS_HELP_STRING([--with-miniupnpc],
99   [enable UPNP (default is yes if libminiupnpc is found)])],
100   [use_upnp=$withval],
101   [use_upnp=auto])
102
103 AC_ARG_ENABLE([upnp-default],
104   [AS_HELP_STRING([--enable-upnp-default],
105   [if UPNP is enabled, turn it on at startup (default is no)])],
106   [use_upnp_default=$enableval],
107   [use_upnp_default=no])
108
109 AC_ARG_ENABLE(tests,
110     AS_HELP_STRING([--enable-tests],[compile tests (default is yes)]),
111     [use_tests=$enableval],
112     [use_tests=yes])
113
114 AC_ARG_WITH([comparison-tool],
115     AS_HELP_STRING([--with-comparison-tool],[path to java comparison tool (requires --enable-tests)]),
116     [use_comparison_tool=$withval],
117     [use_comparison_tool=no])
118
119 AC_ARG_ENABLE([comparison-tool-reorg-tests],
120     AS_HELP_STRING([--enable-comparison-tool-reorg-tests],[enable expensive reorg tests in the comparison tool (default no)]),
121     [use_comparison_tool_reorg_tests=$enableval],
122     [use_comparison_tool_reorg_tests=no])
123
124 AC_ARG_ENABLE([hardening],
125   [AS_HELP_STRING([--enable-hardening],
126   [attempt to harden the resulting executables (default is yes)])],
127   [use_hardening=$enableval],
128   [use_hardening=yes])
129
130 AC_ARG_ENABLE([reduce-exports],
131   [AS_HELP_STRING([--enable-reduce-exports],
132   [attempt to reduce exported symbols in the resulting executables (default is no)])],
133   [use_reduce_exports=$enableval],
134   [use_reduce_exports=no])
135
136 AC_ARG_ENABLE([ccache],
137   [AS_HELP_STRING([--enable-ccache],
138   [use ccache for building (default is yes if ccache is found)])],
139   [use_ccache=$enableval],
140   [use_ccache=auto])
141
142 AC_ARG_ENABLE([lcov],
143   [AS_HELP_STRING([--enable-lcov],
144   [enable lcov testing (default is no)])],
145   [use_lcov=yes],
146   [use_lcov=no])
147
148 AC_ARG_ENABLE([glibc-back-compat],
149   [AS_HELP_STRING([--enable-glibc-back-compat],
150   [enable backwards compatibility with glibc])],
151   [use_glibc_compat=$enableval],
152   [use_glibc_compat=no])
153
154 AC_ARG_ENABLE([zmq],
155   [AS_HELP_STRING([--disable-zmq],
156   [disable ZMQ notifications])],
157   [use_zmq=$enableval],
158   [use_zmq=yes])
159
160 AC_ARG_WITH([protoc-bindir],[AS_HELP_STRING([--with-protoc-bindir=BIN_DIR],[specify protoc bin path])], [protoc_bin_path=$withval], [])
161
162 AC_ARG_ENABLE(man,
163     [AS_HELP_STRING([--disable-man],
164                     [do not install man pages (default is to install)])],,
165     enable_man=yes)
166 AM_CONDITIONAL(ENABLE_MAN, test "$enable_man" != no)
167
168 # Enable debug
169 AC_ARG_ENABLE([debug],
170     [AS_HELP_STRING([--enable-debug],
171                     [use debug compiler flags and macros (default is no)])],
172     [enable_debug=$enableval],
173     [enable_debug=no])
174
175 if test "x$enable_debug" = xyes; then
176     CPPFLAGS="$CPPFLAGS -DDEBUG -DDEBUG_LOCKORDER"
177     if test "x$GCC" = xyes; then
178         CFLAGS="$CFLAGS -g3 -O0"
179     fi
180
181     if test "x$GXX" = xyes; then
182         CXXFLAGS="$CXXFLAGS -g3 -O0"
183     fi
184 fi
185
186 ## TODO: Remove these hard-coded paths and flags. They are here for the sake of
187 ##       compatibility with the legacy buildsystem.
188 ##
189 if test "x$CXXFLAGS_overridden" = "xno"; then
190   CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -Wno-self-assign"
191 fi
192 CPPFLAGS="$CPPFLAGS -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS"
193
194 AC_ARG_WITH([utils],
195   [AS_HELP_STRING([--with-utils],
196   [build zcash-cli zcash-tx (default=yes)])],
197   [build_bitcoin_utils=$withval],
198   [build_bitcoin_utils=yes])
199
200 AC_ARG_WITH([libs],
201   [AS_HELP_STRING([--with-libs],
202   [build libraries (default=yes)])],
203   [build_bitcoin_libs=$withval],
204   [build_bitcoin_libs=yes])
205
206 AC_ARG_WITH([daemon],
207   [AS_HELP_STRING([--with-daemon],
208   [build bitcoind daemon (default=yes)])],
209   [build_bitcoind=$withval],
210   [build_bitcoind=yes])
211
212 AC_LANG_PUSH([C++])
213
214 use_pkgconfig=yes
215 case $host in
216   *mingw*)
217
218      #pkgconfig does more harm than good with MinGW
219      use_pkgconfig=no
220
221      TARGET_OS=windows
222      AC_CHECK_LIB([mingwthrd],      [main],, AC_MSG_ERROR(lib missing))
223      AC_CHECK_LIB([kernel32],      [main],, AC_MSG_ERROR(lib missing))
224      AC_CHECK_LIB([user32],      [main],, AC_MSG_ERROR(lib missing))
225      AC_CHECK_LIB([gdi32],      [main],, AC_MSG_ERROR(lib missing))
226      AC_CHECK_LIB([comdlg32],      [main],, AC_MSG_ERROR(lib missing))
227      AC_CHECK_LIB([winspool],      [main],, AC_MSG_ERROR(lib missing))
228      AC_CHECK_LIB([winmm],      [main],, AC_MSG_ERROR(lib missing))
229      AC_CHECK_LIB([shell32],      [main],, AC_MSG_ERROR(lib missing))
230      AC_CHECK_LIB([comctl32],      [main],, AC_MSG_ERROR(lib missing))
231      AC_CHECK_LIB([ole32],      [main],, AC_MSG_ERROR(lib missing))
232      AC_CHECK_LIB([oleaut32],      [main],, AC_MSG_ERROR(lib missing))
233      AC_CHECK_LIB([uuid],      [main],, AC_MSG_ERROR(lib missing))
234      AC_CHECK_LIB([rpcrt4],      [main],, AC_MSG_ERROR(lib missing))
235      AC_CHECK_LIB([advapi32],      [main],, AC_MSG_ERROR(lib missing))
236      AC_CHECK_LIB([ws2_32],      [main],, AC_MSG_ERROR(lib missing))
237      AC_CHECK_LIB([mswsock],      [main],, AC_MSG_ERROR(lib missing))
238      AC_CHECK_LIB([shlwapi],      [main],, AC_MSG_ERROR(lib missing))
239      AC_CHECK_LIB([iphlpapi],      [main],, AC_MSG_ERROR(lib missing))
240      AC_CHECK_LIB([crypt32],      [main],, AC_MSG_ERROR(lib missing))
241
242      # -static is interpreted by libtool, where it has a different meaning.
243      # In libtool-speak, it's -all-static.
244      AX_CHECK_LINK_FLAG([[-static]],[LIBTOOL_APP_LDFLAGS="$LIBTOOL_APP_LDFLAGS -all-static"])
245
246      AC_PATH_PROG([MAKENSIS], [makensis], none)
247      if test x$MAKENSIS = xnone; then
248        AC_MSG_WARN("makensis not found. Cannot create installer.")
249      fi
250
251      AC_PATH_TOOL(WINDRES, windres, none)
252      if test x$WINDRES = xnone; then
253        AC_MSG_ERROR("windres not found")
254      fi
255
256      CPPFLAGS="$CPPFLAGS -D_MT -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB"
257      LEVELDB_TARGET_FLAGS="TARGET_OS=OS_WINDOWS_CROSSCOMPILE"
258      if test "x$CXXFLAGS_overridden" = "xno"; then
259        CXXFLAGS="$CXXFLAGS -w"
260      fi
261      case $host in
262        i?86-*) WINDOWS_BITS=32 ;;
263        x86_64-*) WINDOWS_BITS=64 ;;
264        *) AC_MSG_ERROR("Could not determine win32/win64 for installer") ;;
265      esac
266      AC_SUBST(WINDOWS_BITS)
267
268      dnl libtool insists upon adding -nostdlib and a list of objects/libs to link against.
269      dnl That breaks our ability to build dll's with static libgcc/libstdc++/libssp. Override
270      dnl its command here, with the predeps/postdeps removed, and -static inserted. Postdeps are
271      dnl also overridden to prevent their insertion later.
272      dnl This should only affect dll's.
273      archive_cmds_CXX="\$CC -shared \$libobjs \$deplibs \$compiler_flags -static -o \$output_objdir/\$soname \${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker \$lib"
274      postdeps_CXX=
275
276      ;;
277   *darwin*)
278      TARGET_OS=darwin
279      LEVELDB_TARGET_FLAGS="TARGET_OS=Darwin"
280      if  test x$cross_compiling != xyes; then
281        BUILD_OS=darwin
282        AC_CHECK_PROG([PORT],port, port)
283        if test x$PORT = xport; then
284          dnl add default macports paths
285          CPPFLAGS="$CPPFLAGS -isystem /opt/local/include"
286          LIBS="$LIBS -L/opt/local/lib"
287          if test -d /opt/local/include/db62; then
288            CPPFLAGS="$CPPFLAGS -I/opt/local/include/db62"
289            LIBS="$LIBS -L/opt/local/lib/db62"
290          fi
291        fi
292
293        AC_CHECK_PROG([BREW],brew, brew)
294        if test x$BREW = xbrew; then
295          dnl These Homebrew packages may be keg-only, meaning that they won't be found
296          dnl in expected paths because they may conflict with system files. Ask
297          dnl Homebrew where each one is located, then adjust paths accordingly.
298          dnl It's safe to add these paths even if the functionality is disabled by
299          dnl the user (--without-wallet for example).
300
301          openssl_prefix=`$BREW --prefix openssl 2>/dev/null`
302          bdb_prefix=`$BREW --prefix berkeley-db4 2>/dev/null`
303          if test x$openssl_prefix != x; then
304            PKG_CONFIG_PATH="$openssl_prefix/lib/pkgconfig:$PKG_CONFIG_PATH"
305            export PKG_CONFIG_PATH
306          fi
307          if test x$bdb_prefix != x; then
308            CPPFLAGS="$CPPFLAGS -I$bdb_prefix/include"
309            LIBS="$LIBS -L$bdb_prefix/lib"
310          fi
311        fi
312      else
313        case $build_os in
314          *darwin*)
315            BUILD_OS=darwin
316            ;;
317          *)
318            AC_PATH_TOOL([INSTALLNAMETOOL], [install_name_tool], install_name_tool)
319            AC_PATH_TOOL([OTOOL], [otool], otool)
320            AC_PATH_PROGS([GENISOIMAGE], [genisoimage mkisofs],genisoimage)
321
322            dnl libtool will try to strip the static lib, which is a problem for
323            dnl cross-builds because strip attempts to call a hard-coded ld,
324            dnl which may not exist in the path. Stripping the .a is not
325            dnl necessary, so just disable it.
326            old_striplib=
327            ;;
328        esac
329      fi
330
331      AX_CHECK_LINK_FLAG([[-Wl,-headerpad_max_install_names]], [LDFLAGS="$LDFLAGS -Wl,-headerpad_max_install_names"])
332      CPPFLAGS="$CPPFLAGS -DMAC_OSX"
333      ;;
334    *linux*)
335      TARGET_OS=linux
336      ;;
337    *)
338      ;;
339 esac
340
341 if test x$use_comparison_tool != xno; then
342   if test x$JAVA = x; then
343     AC_MSG_ERROR("comparison tool set but java not found")
344   fi
345   AC_SUBST(JAVA_COMPARISON_TOOL, $use_comparison_tool)
346 fi
347
348 if test x$use_comparison_tool_reorg_tests != xno; then
349   if test x$use_comparison_tool = x; then
350     AC_MSG_ERROR("comparison tool reorg tests but comparison tool was not specified")
351   fi
352   AC_SUBST(COMPARISON_TOOL_REORG_TESTS, 1)
353 else
354   AC_SUBST(COMPARISON_TOOL_REORG_TESTS, 0)
355 fi
356
357 if test x$use_lcov = xyes; then
358   if test x$LCOV = x; then
359     AC_MSG_ERROR("lcov testing requested but lcov not found")
360   fi
361   if test x$GCOV = x; then
362     AC_MSG_ERROR("lcov testing requested but gcov not found")
363   fi
364   if test x$JAVA = x; then
365     AC_MSG_ERROR("lcov testing requested but java not found")
366   fi
367   if test x$GENHTML = x; then
368     AC_MSG_ERROR("lcov testing requested but genhtml not found")
369   fi
370   if test x$use_comparison_tool = x; then
371     AC_MSG_ERROR("lcov testing requested but comparison tool was not specified")
372   fi
373   LCOV="$LCOV --gcov-tool=$GCOV --rc lcov_branch_coverage=1"
374   GENHTML="$GENHTML --branch-coverage"
375   AX_CHECK_COMPILE_FLAG([--coverage],[CXXFLAGS="$CXXFLAGS --coverage"],
376     [AC_MSG_ERROR("lcov testing requested but --coverage flag does not work")])
377 fi
378
379 dnl Check for endianness
380 AC_C_BIGENDIAN
381
382 dnl Check for pthread compile/link requirements
383 AX_PTHREAD
384
385 # The following macro will add the necessary defines to bitcoin-config.h, but
386 # they also need to be passed down to any subprojects. Pull the results out of
387 # the cache and add them to CPPFLAGS.
388 AC_SYS_LARGEFILE
389 # detect POSIX or GNU variant of strerror_r
390 AC_FUNC_STRERROR_R
391
392 if test x$ac_cv_sys_file_offset_bits != x &&
393    test x$ac_cv_sys_file_offset_bits != xno &&
394    test x$ac_cv_sys_file_offset_bits != xunknown; then
395   CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
396 fi
397
398 if test x$ac_cv_sys_large_files != x &&
399    test x$ac_cv_sys_large_files != xno &&
400    test x$ac_cv_sys_large_files != xunknown; then
401   CPPFLAGS="$CPPFLAGS -D_LARGE_FILES=$ac_cv_sys_large_files"
402 fi
403
404 AX_CHECK_LINK_FLAG([[-Wl,--large-address-aware]], [LDFLAGS="$LDFLAGS -Wl,--large-address-aware"])
405
406 AX_GCC_FUNC_ATTRIBUTE([visibility])
407 AX_GCC_FUNC_ATTRIBUTE([dllexport])
408 AX_GCC_FUNC_ATTRIBUTE([dllimport])
409
410 if test x$use_glibc_compat != xno; then
411
412   #glibc absorbed clock_gettime in 2.17. librt (its previous location) is safe to link
413   #in anyway for back-compat.
414   AC_CHECK_LIB([rt],[clock_gettime],, AC_MSG_ERROR(lib missing))
415
416   #__fdelt_chk's params and return type have changed from long unsigned int to long int.
417   # See which one is present here.
418   AC_MSG_CHECKING(__fdelt_chk type)
419   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef _FORTIFY_SOURCE
420                     #undef _FORTIFY_SOURCE
421                   #endif
422                   #define _FORTIFY_SOURCE 2
423                   #include <sys/select.h>
424      extern "C" long unsigned int __fdelt_warn(long unsigned int);]],[[]])],
425     [ fdelt_type="long unsigned int"],
426     [ fdelt_type="long int"])
427   AC_MSG_RESULT($fdelt_type)
428   AC_DEFINE_UNQUOTED(FDELT_TYPE, $fdelt_type,[parameter and return value type for __fdelt_chk])
429 else
430   AC_SEARCH_LIBS([clock_gettime],[rt])
431 fi
432
433 if test x$use_hardening != xno; then
434   AX_CHECK_COMPILE_FLAG([-Wformat],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -Wformat"],[AC_MSG_ERROR(Cannot enable -Wformat)])
435   AX_CHECK_COMPILE_FLAG([-Wformat-security],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -Wformat-security"],[AC_MSG_ERROR(Cannot enable -Wformat-security)],[-Wformat])
436   AX_CHECK_COMPILE_FLAG([-Wstack-protector],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -Wstack-protector"],[AC_MSG_ERROR(Cannot enable -Wstack-protector)])
437   AX_CHECK_COMPILE_FLAG([-fstack-protector-all],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -fstack-protector-all"],[AC_MSG_ERROR(Cannot enable -fstack-protector-all)])
438
439   AX_CHECK_PREPROC_FLAG([-D_FORTIFY_SOURCE=2],[
440     AX_CHECK_PREPROC_FLAG([-U_FORTIFY_SOURCE],[
441       HARDENED_CPPFLAGS="$HARDENED_CPPFLAGS -U_FORTIFY_SOURCE"
442     ],[AC_MSG_ERROR(Cannot enable -U_FORTIFY_SOURCE)])
443     HARDENED_CPPFLAGS="$HARDENED_CPPFLAGS -D_FORTIFY_SOURCE=2"
444   ],[AC_MSG_ERROR(Cannot enable -D_FORTIFY_SOURCE=2)])
445
446   AX_CHECK_LINK_FLAG([[-Wl,-z,relro]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,-z,relro"],[AC_MSG_ERROR(Cannot enable RELRO)])
447   AX_CHECK_LINK_FLAG([[-Wl,-z,now]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,-z,now"],[AC_MSG_ERROR(Cannot enable BIND_NOW)])
448
449   if test x$TARGET_OS != xwindows; then
450     # All windows code is PIC, forcing it on just adds useless compile warnings
451     AX_CHECK_COMPILE_FLAG([-fPIE],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -fPIE"],[AC_MSG_ERROR(Cannot enable -fPIE)])
452     AX_CHECK_LINK_FLAG([[-pie]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -pie"],[AC_MSG_ERROR(Cannot enable -pie)])
453   else
454     # These are only available on Windows.
455     AX_CHECK_LINK_FLAG([[-Wl,--dynamicbase]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,--dynamicbase"],[AC_MSG_ERROR(Cannot enable --dynamicbase)])
456     AX_CHECK_LINK_FLAG([[-Wl,--nxcompat]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,--nxcompat"],[AC_MSG_ERROR(Cannot enable --nxcompat)])
457   fi
458
459   case $host in
460     *mingw*)
461        AC_CHECK_LIB([ssp],      [main],, AC_MSG_ERROR(lib missing))
462     ;;
463   esac
464
465   CXXFLAGS="$CXXFLAGS $HARDENED_CXXFLAGS"
466   CPPFLAGS="$CPPFLAGS $HARDENED_CPPFLAGS"
467   LDFLAGS="$LDFLAGS $HARDENED_LDFLAGS"
468   OBJCXXFLAGS="$CXXFLAGS"
469 fi
470
471 dnl this flag screws up non-darwin gcc even when the check fails. special-case it.
472 if test x$TARGET_OS = xdarwin; then
473   AX_CHECK_LINK_FLAG([[-Wl,-dead_strip]], [LDFLAGS="$LDFLAGS -Wl,-dead_strip"])
474 fi
475
476 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])
477 AC_SEARCH_LIBS([getaddrinfo_a], [anl], [AC_DEFINE(HAVE_GETADDRINFO_A, 1, [Define this symbol if you have getaddrinfo_a])])
478 AC_SEARCH_LIBS([inet_pton], [nsl resolv], [AC_DEFINE(HAVE_INET_PTON, 1, [Define this symbol if you have inet_pton])])
479
480 AC_CHECK_DECLS([strnlen])
481
482 AC_CHECK_DECLS([le16toh, le32toh, le64toh, htole16, htole32, htole64, be16toh, be32toh, be64toh, htobe16, htobe32, htobe64],,,
483                 [#if HAVE_ENDIAN_H
484                  #include <endian.h>
485                  #elif HAVE_SYS_ENDIAN_H
486                  #include <sys/endian.h>
487                  #endif])
488
489 AC_CHECK_DECLS([bswap_16, bswap_32, bswap_64],,,
490                 [#if HAVE_BYTESWAP_H
491                  #include <byteswap.h>
492                  #endif])
493
494 dnl Check for MSG_NOSIGNAL
495 AC_MSG_CHECKING(for MSG_NOSIGNAL)
496 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]],
497  [[ int f = MSG_NOSIGNAL; ]])],
498  [ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_MSG_NOSIGNAL, 1,[Define this symbol if you have MSG_NOSIGNAL]) ],
499  [ AC_MSG_RESULT(no)]
500 )
501
502 AC_MSG_CHECKING([for visibility attribute])
503 AC_LINK_IFELSE([AC_LANG_SOURCE([
504   int foo_def( void ) __attribute__((visibility("default")));
505   int main(){}
506   ])],
507   [
508     AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE,1,[Define if the visibility attribute is supported.])
509     AC_MSG_RESULT(yes)
510   ],
511   [
512     AC_MSG_RESULT(no)
513     if test x$use_reduce_exports = xyes; then
514       AC_MSG_ERROR([Cannot find a working visibility attribute. Use --disable-reduce-exports.])
515     fi
516   ]
517 )
518
519 if test x$use_reduce_exports = xyes; then
520   AX_CHECK_COMPILE_FLAG([-fvisibility=hidden],[RE_CXXFLAGS="-fvisibility=hidden"],
521   [AC_MSG_ERROR([Cannot set default symbol visibility. Use --disable-reduce-exports.])])
522 fi
523
524 LEVELDB_CPPFLAGS=
525 LIBLEVELDB=
526 LIBMEMENV=
527 AM_CONDITIONAL([EMBEDDED_LEVELDB],[true])
528 AC_SUBST(LEVELDB_CPPFLAGS)
529 AC_SUBST(LIBLEVELDB)
530 AC_SUBST(LIBMEMENV)
531
532 if test x$enable_wallet != xno; then
533     dnl Check for libdb_cxx only if wallet enabled
534     BITCOIN_FIND_BDB62
535 fi
536
537 dnl Check for libminiupnpc (optional)
538 if test x$use_upnp != xno; then
539   AC_CHECK_HEADERS(
540     [miniupnpc/miniwget.h miniupnpc/miniupnpc.h miniupnpc/upnpcommands.h miniupnpc/upnperrors.h],
541     [AC_CHECK_LIB([miniupnpc], [main],[MINIUPNPC_LIBS=-lminiupnpc], [have_miniupnpc=no])],
542     [have_miniupnpc=no]
543   )
544 fi
545
546 if test x$build_bitcoin_utils$build_bitcoind$use_tests = xnonono; then
547     use_boost=no
548 else
549     use_boost=yes
550 fi
551
552 if test x$use_boost = xyes; then
553
554 dnl Check for boost libs
555 AX_BOOST_BASE
556 AX_BOOST_SYSTEM
557 AX_BOOST_FILESYSTEM
558 AX_BOOST_PROGRAM_OPTIONS
559 AX_BOOST_THREAD
560 AX_BOOST_CHRONO
561
562
563 if test x$use_reduce_exports = xyes; then
564   AC_MSG_CHECKING([for working boost reduced exports])
565   TEMP_CPPFLAGS="$CPPFLAGS"
566   CPPFLAGS="$BOOST_CPPFLAGS $CPPFLAGS"
567   AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
568       @%:@include <boost/version.hpp>
569     ]], [[
570       #if BOOST_VERSION >= 104900
571       // Everything is okay
572       #else
573       #  error Boost version is too old
574       #endif
575     ]])],[
576       AC_MSG_RESULT(yes)
577     ],[
578     AC_MSG_ERROR([boost versions < 1.49 are known to be broken with reduced exports. Use --disable-reduce-exports.])
579   ])
580   CPPFLAGS="$TEMP_CPPFLAGS"
581 fi
582 fi
583
584 if test x$use_reduce_exports = xyes; then
585     CXXFLAGS="$CXXFLAGS $RE_CXXFLAGS"
586     AX_CHECK_LINK_FLAG([[-Wl,--exclude-libs,ALL]], [RELDFLAGS="-Wl,--exclude-libs,ALL"])
587 fi
588
589 if test x$use_tests = xyes; then
590
591   if test x$HEXDUMP = x; then
592     AC_MSG_ERROR(hexdump is required for tests)
593   fi
594
595
596   if test x$use_boost = xyes; then
597
598   AX_BOOST_UNIT_TEST_FRAMEWORK
599
600   dnl Determine if -DBOOST_TEST_DYN_LINK is needed
601   AC_MSG_CHECKING([for dynamic linked boost test])
602   TEMP_LIBS="$LIBS"
603   LIBS="$LIBS $BOOST_LDFLAGS $BOOST_UNIT_TEST_FRAMEWORK_LIB"
604   TEMP_CPPFLAGS="$CPPFLAGS"
605   CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
606   AC_LINK_IFELSE([AC_LANG_SOURCE([
607        #define BOOST_TEST_DYN_LINK
608        #define BOOST_TEST_MAIN
609         #include <boost/test/unit_test.hpp>
610
611        ])],
612     [AC_MSG_RESULT(yes)]
613     [TESTDEFS="$TESTDEFS -DBOOST_TEST_DYN_LINK"],
614     [AC_MSG_RESULT(no)])
615   LIBS="$TEMP_LIBS"
616   CPPFLAGS="$TEMP_CPPFLAGS"
617
618   fi
619 fi
620
621 if test x$use_boost = xyes; then
622
623 BOOST_LIBS="$BOOST_LDFLAGS $BOOST_SYSTEM_LIB $BOOST_FILESYSTEM_LIB $BOOST_PROGRAM_OPTIONS_LIB $BOOST_THREAD_LIB $BOOST_CHRONO_LIB"
624
625 dnl Boost >= 1.50 uses sleep_for rather than the now-deprecated sleep, however
626 dnl it was broken from 1.50 to 1.52 when backed by nanosleep. Use sleep_for if
627 dnl a working version is available, else fall back to sleep. sleep was removed
628 dnl after 1.56.
629 dnl If neither is available, abort.
630 TEMP_LIBS="$LIBS"
631 LIBS="$BOOST_LIBS $LIBS"
632 TEMP_CPPFLAGS="$CPPFLAGS"
633 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
634 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
635   #include <boost/thread/thread.hpp>
636   #include <boost/version.hpp>
637   ]],[[
638   #if BOOST_VERSION >= 105000 && (!defined(BOOST_HAS_NANOSLEEP) || BOOST_VERSION >= 105200)
639       boost::this_thread::sleep_for(boost::chrono::milliseconds(0));
640   #else
641    choke me
642   #endif
643   ]])],
644   [boost_sleep=yes;
645      AC_DEFINE(HAVE_WORKING_BOOST_SLEEP_FOR, 1, [Define this symbol if boost sleep_for works])],
646   [boost_sleep=no])
647 LIBS="$TEMP_LIBS"
648 CPPFLAGS="$TEMP_CPPFLAGS"
649
650 if test x$boost_sleep != xyes; then
651 TEMP_LIBS="$LIBS"
652 LIBS="$BOOST_LIBS $LIBS"
653 TEMP_CPPFLAGS="$CPPFLAGS"
654 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
655 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
656   #include <boost/version.hpp>
657   #include <boost/thread.hpp>
658   #include <boost/date_time/posix_time/posix_time_types.hpp>
659   ]],[[
660   #if BOOST_VERSION <= 105600
661       boost::this_thread::sleep(boost::posix_time::milliseconds(0));
662   #else
663    choke me
664   #endif
665   ]])],
666   [boost_sleep=yes; AC_DEFINE(HAVE_WORKING_BOOST_SLEEP, 1, [Define this symbol if boost sleep works])],
667   [boost_sleep=no])
668 LIBS="$TEMP_LIBS"
669 CPPFLAGS="$TEMP_CPPFLAGS"
670 fi
671
672 if test x$boost_sleep != xyes; then
673   AC_MSG_ERROR(No working boost sleep implementation found.)
674 fi
675
676 fi
677
678 if test x$use_pkgconfig = xyes; then
679
680   if test x"$PKG_CONFIG" = "x"; then
681     AC_MSG_ERROR(pkg-config not found.)
682   fi
683
684   : #NOP
685   m4_ifdef(
686     [PKG_CHECK_MODULES],
687     [
688       PKG_CHECK_MODULES([SSL], [libssl],, [AC_MSG_ERROR(openssl  not found.)])
689       PKG_CHECK_MODULES([CRYPTO], [libcrypto],,[AC_MSG_ERROR(libcrypto  not found.)])
690
691       if test "x$use_zmq" = "xyes"; then
692         PKG_CHECK_MODULES([ZMQ],[libzmq >= 4],
693           [AC_DEFINE([ENABLE_ZMQ],[1],[Define to 1 to enable ZMQ functions])],
694           [AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
695            AC_MSG_WARN([libzmq version 4.x or greater not found, disabling])
696            use_zmq=no])
697       else
698           AC_DEFINE_UNQUOTED([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
699       fi
700     ]
701   )
702 else
703   # BUG: Fix this:
704   echo 'BUG: configure does not yet check for the following dependencies if pkg-config is not on the system: libcrypto++, libgmp'
705
706   AC_CHECK_HEADER([openssl/crypto.h],,AC_MSG_ERROR(libcrypto headers missing))
707   AC_CHECK_LIB([crypto],      [main],CRYPTO_LIBS=-lcrypto, AC_MSG_ERROR(libcrypto missing))
708
709   AC_CHECK_HEADER([openssl/ssl.h],, AC_MSG_ERROR(libssl headers missing),)
710   AC_CHECK_LIB([ssl],         [main],SSL_LIBS=-lssl, AC_MSG_ERROR(libssl missing))
711
712   if test "x$use_zmq" = "xyes"; then
713      AC_CHECK_HEADER([zmq.h],
714        [AC_DEFINE([ENABLE_ZMQ],[1],[Define to 1 to enable ZMQ functions])],
715        [AC_MSG_WARN([zmq.h not found, disabling zmq support])
716         use_zmq=no
717         AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])])
718      AC_CHECK_LIB([zmq],[zmq_ctx_shutdown],ZMQ_LIBS=-lzmq,
719        [AC_MSG_WARN([libzmq >= 4.0 not found, disabling zmq support])
720         use_zmq=no
721         AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])])
722   else
723     AC_DEFINE_UNQUOTED([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
724   fi
725
726   if test "x$use_zmq" = "xyes"; then
727     dnl Assume libzmq was built for static linking
728     case $host in
729       *mingw*)
730         ZMQ_CFLAGS="$ZMQ_CFLAGS -DZMQ_STATIC"
731       ;;
732     esac
733   fi
734 fi
735
736 # These packages don't provide pkgconfig config files across all
737 # platforms, so we use older autoconf detection mechanisms:
738 AC_CHECK_HEADER([gmp.h],,AC_MSG_ERROR(libgmp headers missing))
739 AC_CHECK_LIB([gmp],[[__gmpn_sub_n]],GMP_LIBS=-lgmp, [AC_MSG_ERROR(libgmp missing)])
740
741 AC_CHECK_HEADER([gmpxx.h],,AC_MSG_ERROR(libgmpxx headers missing))
742 AC_CHECK_LIB([gmpxx],[main],GMPXX_LIBS=-lgmpxx, [AC_MSG_ERROR(libgmpxx missing)])
743
744 # libsnark header layout is broken unless cpp's -I is passed with the
745 # libsnark directory, so for now we use this hideous workaround:
746 echo 'Hunting for libsnark include directory...'
747 [LIBSNARK_INCDIR="$(echo "$CPPFLAGS" | sed 's,^.*-I\([^ ]*/include\).*$,\1/libsnark,')"]
748 if test -d "$LIBSNARK_INCDIR"; then
749    echo "Found libsnark include directory: $LIBSNARK_INCDIR"
750 else
751     AC_MSG_ERROR(libsnark include directory not found)
752 fi
753
754 CPPFLAGS="-I$LIBSNARK_INCDIR $CPPFLAGS"
755
756 # Now check for libsnark compilability using traditional autoconf tests:
757 AC_CHECK_HEADER([libsnark/gadgetlib1/gadget.hpp],,AC_MSG_ERROR(libsnark headers missing))
758 AC_CHECK_LIB([snark],[main],LIBSNARK_LIBS=-lsnark, [AC_MSG_ERROR(libsnark missing)], [-lgmpxx])
759
760 RUST_LIBS=""
761 if test x$enable_rust != xno; then
762   RUST_LIBS="-lrustzcash"
763 fi
764
765 LIBZCASH_LIBS="-lsnark -lgmp -lgmpxx -lboost_system-mt -lcrypto -lsodium -fopenmp $RUST_LIBS"
766
767 CXXFLAGS_TEMP="$CXXFLAGS"
768 LIBS_TEMP="$LIBS"
769 CXXFLAGS="$CXXFLAGS $SSL_CFLAGS $CRYPTO_CFLAGS"
770 LIBS="$LIBS $SSL_LIBS $CRYPTO_LIBS $GMP_LIBS $GMPXX_LIBS"
771 AC_CHECK_HEADER([openssl/ec.h],, AC_MSG_ERROR(OpenSSL ec header missing),)
772 CXXFLAGS="$CXXFLAGS_TEMP"
773 LIBS="$LIBS_TEMP"
774
775 AC_MSG_CHECKING([whether to build bitcoind])
776 AM_CONDITIONAL([BUILD_BITCOIND], [test x$build_bitcoind = xyes])
777 AC_MSG_RESULT($build_bitcoind)
778
779 AC_MSG_CHECKING([whether to build utils (zcash-cli zcash-tx)])
780 AM_CONDITIONAL([BUILD_BITCOIN_UTILS], [test x$build_bitcoin_utils = xyes])
781 AC_MSG_RESULT($build_bitcoin_utils)
782
783 AC_MSG_CHECKING([whether to build libraries])
784 AM_CONDITIONAL([BUILD_BITCOIN_LIBS], [test x$build_bitcoin_libs = xyes])
785 if test x$build_bitcoin_libs = xyes; then
786   AC_DEFINE(HAVE_CONSENSUS_LIB, 1, [Define this symbol if the consensus lib has been built])
787   AC_CONFIG_FILES([libzcashconsensus.pc:libzcashconsensus.pc.in])
788 fi
789
790 AC_MSG_RESULT($build_bitcoin_libs)
791
792 AC_LANG_POP
793
794 if test "x$use_ccache" != "xno"; then
795   AC_MSG_CHECKING(if ccache should be used)
796   if test x$CCACHE = x; then
797     if test "x$use_ccache" = "xyes"; then
798       AC_MSG_ERROR([ccache not found.]);
799     else
800       use_ccache=no
801     fi
802   else
803     use_ccache=yes
804     CC="$ac_cv_path_CCACHE $CC"
805     CXX="$ac_cv_path_CCACHE $CXX"
806   fi
807   AC_MSG_RESULT($use_ccache)
808 fi
809 if test "x$use_ccache" = "xyes"; then
810     AX_CHECK_PREPROC_FLAG([-Qunused-arguments],[CPPFLAGS="-Qunused-arguments $CPPFLAGS"])
811 fi
812
813 dnl enable wallet
814 AC_MSG_CHECKING([if wallet should be enabled])
815 if test x$enable_wallet != xno; then
816   AC_MSG_RESULT(yes)
817   AC_DEFINE_UNQUOTED([ENABLE_WALLET],[1],[Define to 1 to enable wallet functions])
818
819 else
820   AC_MSG_RESULT(no)
821 fi
822
823 dnl enable mining
824 AC_MSG_CHECKING([if mining should be enabled])
825 if test x$enable_mining != xno; then
826   AC_MSG_RESULT(yes)
827   AC_DEFINE(ENABLE_MINING, 1, [Define to 1 to enable mining functions])
828
829 else
830   AC_MSG_RESULT(no)
831 fi
832
833 dnl enable rust
834 AC_MSG_CHECKING([if rust should be enabled])
835 if test x$enable_rust != xno; then
836   AC_MSG_RESULT(yes)
837   AC_DEFINE(ENABLE_RUST, 1, [Define to 1 to enable Rust language dependent functions])
838
839 else
840   AC_MSG_RESULT(no)
841 fi
842
843 dnl enable upnp support
844 AC_MSG_CHECKING([whether to build with support for UPnP])
845 if test x$have_miniupnpc = xno; then
846   if test x$use_upnp = xyes; then
847      AC_MSG_ERROR("UPnP requested but cannot be built. use --without-miniupnpc")
848   fi
849   AC_MSG_RESULT(no)
850 else
851   if test x$use_upnp != xno; then
852     AC_MSG_RESULT(yes)
853     AC_MSG_CHECKING([whether to build with UPnP enabled by default])
854     use_upnp=yes
855     upnp_setting=0
856     if test x$use_upnp_default != xno; then
857       use_upnp_default=yes
858       upnp_setting=1
859     fi
860     AC_MSG_RESULT($use_upnp_default)
861     AC_DEFINE_UNQUOTED([USE_UPNP],[$upnp_setting],[UPnP support not compiled if undefined, otherwise value (0 or 1) determines default state])
862     if test x$TARGET_OS = xwindows; then
863       MINIUPNPC_CPPFLAGS="-DSTATICLIB -DMINIUPNP_STATICLIB"
864     fi
865   else
866     AC_MSG_RESULT(no)
867   fi
868 fi
869
870 AM_CONDITIONAL([ENABLE_ZMQ], [test "x$use_zmq" = "xyes"])
871
872 AC_MSG_CHECKING([whether to build test_bitcoin])
873 if test x$use_tests = xyes; then
874   AC_MSG_RESULT([yes])
875   BUILD_TEST="yes"
876 else
877   AC_MSG_RESULT([no])
878   BUILD_TEST=""
879 fi
880
881 AC_MSG_CHECKING([whether to reduce exports])
882 if test x$use_reduce_exports = xyes; then
883   AC_MSG_RESULT([yes])
884 else
885   AC_MSG_RESULT([no])
886 fi
887
888 if test x$build_bitcoin_utils$build_bitcoin_libs$build_bitcoind$use_tests = xnononono; then
889   AC_MSG_ERROR([No targets! Please specify at least one of: --with-utils --with-libs --with-daemon or --enable-tests])
890 fi
891
892 AM_CONDITIONAL([TARGET_DARWIN], [test x$TARGET_OS = xdarwin])
893 AM_CONDITIONAL([BUILD_DARWIN], [test x$BUILD_OS = xdarwin])
894 AM_CONDITIONAL([TARGET_WINDOWS], [test x$TARGET_OS = xwindows])
895 AM_CONDITIONAL([ENABLE_WALLET],[test x$enable_wallet = xyes])
896 AM_CONDITIONAL([ENABLE_MINING],[test x$enable_mining = xyes])
897 AM_CONDITIONAL([ENABLE_RUST],[test x$enable_rust = xyes])
898 AM_CONDITIONAL([ENABLE_TESTS],[test x$BUILD_TEST = xyes])
899 AM_CONDITIONAL([USE_LCOV],[test x$use_lcov = xyes])
900 AM_CONDITIONAL([USE_COMPARISON_TOOL],[test x$use_comparison_tool != xno])
901 AM_CONDITIONAL([USE_COMPARISON_TOOL_REORG_TESTS],[test x$use_comparison_tool_reorg_test != xno])
902 AM_CONDITIONAL([GLIBC_BACK_COMPAT],[test x$use_glibc_compat = xyes])
903 AM_CONDITIONAL([HARDEN],[test x$use_hardening = xyes])
904
905 AC_DEFINE(CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MAJOR, [Major version])
906 AC_DEFINE(CLIENT_VERSION_MINOR, _CLIENT_VERSION_MINOR, [Minor version])
907 AC_DEFINE(CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION, [Build revision])
908 AC_DEFINE(CLIENT_VERSION_BUILD, _CLIENT_VERSION_BUILD, [Version Build])
909 AC_DEFINE(CLIENT_VERSION_IS_RELEASE, _CLIENT_VERSION_IS_RELEASE, [Version is release])
910 AC_DEFINE(COPYRIGHT_YEAR, _COPYRIGHT_YEAR, [Version is release])
911 AC_SUBST(CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MAJOR)
912 AC_SUBST(CLIENT_VERSION_MINOR, _CLIENT_VERSION_MINOR)
913 AC_SUBST(CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION)
914 AC_SUBST(CLIENT_VERSION_BUILD, _CLIENT_VERSION_BUILD)
915 AC_SUBST(CLIENT_VERSION_IS_RELEASE, _CLIENT_VERSION_IS_RELEASE)
916 AC_SUBST(COPYRIGHT_YEAR, _COPYRIGHT_YEAR)
917
918 AC_SUBST(RELDFLAGS)
919 AC_SUBST(LIBTOOL_APP_LDFLAGS)
920 AC_SUBST(USE_UPNP)
921 AC_SUBST(BOOST_LIBS)
922 AC_SUBST(TESTDEFS)
923 AC_SUBST(LEVELDB_TARGET_FLAGS)
924 AC_SUBST(MINIUPNPC_CPPFLAGS)
925 AC_SUBST(MINIUPNPC_LIBS)
926 AC_SUBST(GMP_LIBS)
927 AC_SUBST(GMPXX_LIBS)
928 AC_SUBST(LIBSNARK_LIBS)
929 AC_SUBST(LIBZCASH_LIBS)
930 AC_CONFIG_FILES([Makefile src/Makefile doc/man/Makefile share/setup.nsi src/test/buildenv.py])
931 AC_CONFIG_FILES([qa/pull-tester/run-bitcoind-for-test.sh],[chmod +x qa/pull-tester/run-bitcoind-for-test.sh])
932 AC_CONFIG_FILES([qa/pull-tester/tests-config.sh],[chmod +x qa/pull-tester/tests-config.sh])
933
934 dnl boost's m4 checks do something really nasty: they export these vars. As a
935 dnl result, they leak into secp256k1's configure and crazy things happen.
936 dnl Until this is fixed upstream and we've synced, we'll just un-export them.
937 CPPFLAGS_TEMP="$CPPFLAGS"
938 unset CPPFLAGS
939 CPPFLAGS="$CPPFLAGS_TEMP"
940
941 LDFLAGS_TEMP="$LDFLAGS"
942 unset LDFLAGS
943 LDFLAGS="$LDFLAGS_TEMP"
944
945 LIBS_TEMP="$LIBS"
946 unset LIBS
947 LIBS="$LIBS_TEMP"
948
949 PKGCONFIG_PATH_TEMP="$PKG_CONFIG_PATH"
950 unset PKG_CONFIG_PATH
951 PKG_CONFIG_PATH="$PKGCONFIG_PATH_TEMP"
952
953 PKGCONFIG_LIBDIR_TEMP="$PKG_CONFIG_LIBDIR"
954 unset PKG_CONFIG_LIBDIR
955 PKG_CONFIG_LIBDIR="$PKGCONFIG_LIBDIR_TEMP"
956
957 ac_configure_args="${ac_configure_args} --disable-shared --with-pic --with-bignum=no"
958 AC_CONFIG_SUBDIRS([src/secp256k1 src/univalue])
959
960 AC_OUTPUT
961
962 dnl Taken from https://wiki.debian.org/RpathIssue
963 case $host in
964    *-*-linux-gnu)
965      AC_MSG_RESULT([Fixing libtool for -rpath problems.])
966      sed < libtool > libtool-2 \
967      's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" -D__LIBTOOL_IS_A_FOOL__ "/'
968      mv libtool-2 libtool
969      chmod 755 libtool
970    ;;
971 esac
This page took 0.074618 seconds and 4 git commands to generate.