Changeset View
Changeset View
Standalone View
Standalone View
configure.ac
Show First 20 Lines • Show All 323 Lines • ▼ Show 20 Lines | |||||
fi | fi | ||||
# Check for optional instruction set support. Enabling these does _not_ imply that all code will | # Check for optional instruction set support. Enabling these does _not_ imply that all code will | ||||
# be compiled with them, rather that specific objects/libs may use them after checking for runtime | # be compiled with them, rather that specific objects/libs may use them after checking for runtime | ||||
# compatibility. | # compatibility. | ||||
AX_CHECK_COMPILE_FLAG([-msse4.2],[[SSE42_CXXFLAGS="-msse4.2"]],,[[$CXXFLAG_WERROR]]) | AX_CHECK_COMPILE_FLAG([-msse4.2],[[SSE42_CXXFLAGS="-msse4.2"]],,[[$CXXFLAG_WERROR]]) | ||||
AX_CHECK_COMPILE_FLAG([-msse4.1],[[SSE41_CXXFLAGS="-msse4.1"]],,[[$CXXFLAG_WERROR]]) | AX_CHECK_COMPILE_FLAG([-msse4.1],[[SSE41_CXXFLAGS="-msse4.1"]],,[[$CXXFLAG_WERROR]]) | ||||
AX_CHECK_COMPILE_FLAG([-mavx -mavx2],[[AVX2_CXXFLAGS="-mavx -mavx2"]],,[[$CXXFLAG_WERROR]]) | AX_CHECK_COMPILE_FLAG([-mavx -mavx2],[[AVX2_CXXFLAGS="-mavx -mavx2"]],,[[$CXXFLAG_WERROR]]) | ||||
AX_CHECK_COMPILE_FLAG([-msse4 -msha],[[SHANI_CXXFLAGS="-msse4 -msha"]],,[[$CXXFLAG_WERROR]]) | |||||
TEMP_CXXFLAGS="$CXXFLAGS" | TEMP_CXXFLAGS="$CXXFLAGS" | ||||
CXXFLAGS="$CXXFLAGS $SSE42_CXXFLAGS" | CXXFLAGS="$CXXFLAGS $SSE42_CXXFLAGS" | ||||
AC_MSG_CHECKING(for assembler crc32 support) | AC_MSG_CHECKING(for assembler crc32 support) | ||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | ||||
#include <stdint.h> | #include <stdint.h> | ||||
#if defined(_MSC_VER) | #if defined(_MSC_VER) | ||||
#include <intrin.h> | #include <intrin.h> | ||||
Show All 12 Lines | |||||
) | ) | ||||
CXXFLAGS="$TEMP_CXXFLAGS" | CXXFLAGS="$TEMP_CXXFLAGS" | ||||
TEMP_CXXFLAGS="$CXXFLAGS" | TEMP_CXXFLAGS="$CXXFLAGS" | ||||
CXXFLAGS="$CXXFLAGS $SSE41_CXXFLAGS" | CXXFLAGS="$CXXFLAGS $SSE41_CXXFLAGS" | ||||
AC_MSG_CHECKING(for SSE4.1 intrinsics) | AC_MSG_CHECKING(for SSE4.1 intrinsics) | ||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | ||||
#include <stdint.h> | #include <stdint.h> | ||||
#if defined(_MSC_VER) | |||||
#include <immintrin.h> | #include <immintrin.h> | ||||
#elif defined(__GNUC__) | |||||
#include <x86intrin.h> | |||||
#endif | |||||
]],[[ | ]],[[ | ||||
__m128i l = _mm_set1_epi32(0); | __m128i l = _mm_set1_epi32(0); | ||||
return _mm_extract_epi32(l, 3); | return _mm_extract_epi32(l, 3); | ||||
]])], | ]])], | ||||
[ AC_MSG_RESULT(yes); enable_sse41=yes; AC_DEFINE(ENABLE_SSE41, 1, [Define this symbol to build code that uses SSE4.1 intrinsics]) ], | [ AC_MSG_RESULT(yes); enable_sse41=yes; AC_DEFINE(ENABLE_SSE41, 1, [Define this symbol to build code that uses SSE4.1 intrinsics]) ], | ||||
[ AC_MSG_RESULT(no)] | [ AC_MSG_RESULT(no)] | ||||
) | ) | ||||
CXXFLAGS="$TEMP_CXXFLAGS" | CXXFLAGS="$TEMP_CXXFLAGS" | ||||
TEMP_CXXFLAGS="$CXXFLAGS" | TEMP_CXXFLAGS="$CXXFLAGS" | ||||
CXXFLAGS="$CXXFLAGS $AVX2_CXXFLAGS" | CXXFLAGS="$CXXFLAGS $AVX2_CXXFLAGS" | ||||
AC_MSG_CHECKING(for AVX2 intrinsics) | AC_MSG_CHECKING(for AVX2 intrinsics) | ||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | ||||
#include <stdint.h> | #include <stdint.h> | ||||
#if defined(_MSC_VER) | |||||
#include <immintrin.h> | #include <immintrin.h> | ||||
#elif defined(__GNUC__) && defined(__AVX2__) | |||||
#include <x86intrin.h> | |||||
#endif | |||||
]],[[ | ]],[[ | ||||
__m256i l = _mm256_set1_epi32(0); | __m256i l = _mm256_set1_epi32(0); | ||||
return _mm256_extract_epi32(l, 7); | return _mm256_extract_epi32(l, 7); | ||||
]])], | ]])], | ||||
[ AC_MSG_RESULT(yes); enable_avx2=yes; AC_DEFINE(ENABLE_AVX2, 1, [Define this symbol to build code that uses AVX2 intrinsics]) ], | [ AC_MSG_RESULT(yes); enable_avx2=yes; AC_DEFINE(ENABLE_AVX2, 1, [Define this symbol to build code that uses AVX2 intrinsics]) ], | ||||
[ AC_MSG_RESULT(no)] | [ AC_MSG_RESULT(no)] | ||||
) | ) | ||||
CXXFLAGS="$TEMP_CXXFLAGS" | CXXFLAGS="$TEMP_CXXFLAGS" | ||||
TEMP_CXXFLAGS="$CXXFLAGS" | |||||
CXXFLAGS="$CXXFLAGS $SHANI_CXXFLAGS" | |||||
AC_MSG_CHECKING(for SHA-NI intrinsics) | |||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | |||||
#include <stdint.h> | |||||
#include <immintrin.h> | |||||
]],[[ | |||||
__m128i i = _mm_set1_epi32(0); | |||||
__m128i j = _mm_set1_epi32(1); | |||||
__m128i k = _mm_set1_epi32(2); | |||||
return _mm_extract_epi32(_mm_sha256rnds2_epu32(i, i, k), 0); | |||||
]])], | |||||
[ AC_MSG_RESULT(yes); enable_shani=yes; AC_DEFINE(ENABLE_SHANI, 1, [Define this symbol to build code that uses SHA-NI intrinsics]) ], | |||||
[ AC_MSG_RESULT(no)] | |||||
) | |||||
CXXFLAGS="$TEMP_CXXFLAGS" | |||||
CPPFLAGS="$CPPFLAGS -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS" | CPPFLAGS="$CPPFLAGS -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS" | ||||
AC_ARG_WITH([utils], | AC_ARG_WITH([utils], | ||||
[AS_HELP_STRING([--with-utils], | [AS_HELP_STRING([--with-utils], | ||||
[build bitcoin-cli bitcoin-tx (default=yes)])], | [build bitcoin-cli bitcoin-tx (default=yes)])], | ||||
[build_bitcoin_utils=$withval], | [build_bitcoin_utils=$withval], | ||||
[build_bitcoin_utils=yes]) | [build_bitcoin_utils=yes]) | ||||
▲ Show 20 Lines • Show All 860 Lines • ▼ Show 20 Lines | |||||
AM_CONDITIONAL([ENABLE_BENCH],[test x$use_bench = xyes]) | AM_CONDITIONAL([ENABLE_BENCH],[test x$use_bench = xyes]) | ||||
AM_CONDITIONAL([USE_QRCODE], [test x$use_qr = xyes]) | AM_CONDITIONAL([USE_QRCODE], [test x$use_qr = xyes]) | ||||
AM_CONDITIONAL([USE_LCOV],[test x$use_lcov = xyes]) | AM_CONDITIONAL([USE_LCOV],[test x$use_lcov = xyes]) | ||||
AM_CONDITIONAL([GLIBC_BACK_COMPAT],[test x$use_glibc_compat = xyes]) | AM_CONDITIONAL([GLIBC_BACK_COMPAT],[test x$use_glibc_compat = xyes]) | ||||
AM_CONDITIONAL([HARDEN],[test x$use_hardening = xyes]) | AM_CONDITIONAL([HARDEN],[test x$use_hardening = xyes]) | ||||
AM_CONDITIONAL([ENABLE_HWCRC32],[test x$enable_hwcrc32 = xyes]) | AM_CONDITIONAL([ENABLE_HWCRC32],[test x$enable_hwcrc32 = xyes]) | ||||
AM_CONDITIONAL([ENABLE_SSE41],[test x$enable_sse41 = xyes]) | AM_CONDITIONAL([ENABLE_SSE41],[test x$enable_sse41 = xyes]) | ||||
AM_CONDITIONAL([ENABLE_AVX2],[test x$enable_avx2 = xyes]) | AM_CONDITIONAL([ENABLE_AVX2],[test x$enable_avx2 = xyes]) | ||||
AM_CONDITIONAL([ENABLE_SHANI],[test x$enable_shani = xyes]) | |||||
AM_CONDITIONAL([USE_ASM],[test x$use_asm = xyes]) | AM_CONDITIONAL([USE_ASM],[test x$use_asm = xyes]) | ||||
AC_DEFINE(CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MAJOR, [Major version]) | AC_DEFINE(CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MAJOR, [Major version]) | ||||
AC_DEFINE(CLIENT_VERSION_MINOR, _CLIENT_VERSION_MINOR, [Minor version]) | AC_DEFINE(CLIENT_VERSION_MINOR, _CLIENT_VERSION_MINOR, [Minor version]) | ||||
AC_DEFINE(CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION, [Build revision]) | AC_DEFINE(CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION, [Build revision]) | ||||
AC_DEFINE(CLIENT_VERSION_BUILD, _CLIENT_VERSION_BUILD, [Version Build]) | AC_DEFINE(CLIENT_VERSION_BUILD, _CLIENT_VERSION_BUILD, [Version Build]) | ||||
AC_DEFINE(CLIENT_VERSION_IS_RELEASE, _CLIENT_VERSION_IS_RELEASE, [Version is release]) | AC_DEFINE(CLIENT_VERSION_IS_RELEASE, _CLIENT_VERSION_IS_RELEASE, [Version is release]) | ||||
AC_DEFINE(COPYRIGHT_YEAR, _COPYRIGHT_YEAR, [Copyright year]) | AC_DEFINE(COPYRIGHT_YEAR, _COPYRIGHT_YEAR, [Copyright year]) | ||||
Show All 22 Lines | |||||
AC_SUBST(HARDENED_CXXFLAGS) | AC_SUBST(HARDENED_CXXFLAGS) | ||||
AC_SUBST(HARDENED_CPPFLAGS) | AC_SUBST(HARDENED_CPPFLAGS) | ||||
AC_SUBST(HARDENED_LDFLAGS) | AC_SUBST(HARDENED_LDFLAGS) | ||||
AC_SUBST(PIC_FLAGS) | AC_SUBST(PIC_FLAGS) | ||||
AC_SUBST(PIE_FLAGS) | AC_SUBST(PIE_FLAGS) | ||||
AC_SUBST(SSE42_CXXFLAGS) | AC_SUBST(SSE42_CXXFLAGS) | ||||
AC_SUBST(SSE41_CXXFLAGS) | AC_SUBST(SSE41_CXXFLAGS) | ||||
AC_SUBST(AVX2_CXXFLAGS) | AC_SUBST(AVX2_CXXFLAGS) | ||||
AC_SUBST(SHANI_CXXFLAGS) | |||||
AC_SUBST(LIBTOOL_APP_LDFLAGS) | AC_SUBST(LIBTOOL_APP_LDFLAGS) | ||||
AC_SUBST(USE_UPNP) | AC_SUBST(USE_UPNP) | ||||
AC_SUBST(USE_QRCODE) | AC_SUBST(USE_QRCODE) | ||||
AC_SUBST(BOOST_LIBS) | AC_SUBST(BOOST_LIBS) | ||||
AC_SUBST(TESTDEFS) | AC_SUBST(TESTDEFS) | ||||
AC_SUBST(LEVELDB_TARGET_FLAGS) | AC_SUBST(LEVELDB_TARGET_FLAGS) | ||||
AC_SUBST(MINIUPNPC_CPPFLAGS) | AC_SUBST(MINIUPNPC_CPPFLAGS) | ||||
AC_SUBST(MINIUPNPC_LIBS) | AC_SUBST(MINIUPNPC_LIBS) | ||||
▲ Show 20 Lines • Show All 93 Lines • Show Last 20 Lines |