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