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