@@ -15,14 +15,22 @@ AM_LIBTOOLFLAGS = --preserve-dup-deps
1515PTHREAD_FLAGS = $(PTHREAD_CFLAGS ) $(PTHREAD_LIBS )
1616EXTRA_LIBRARIES =
1717
18+ lib_LTLIBRARIES = $(LIBBITCOINCONSENSUS )
19+ noinst_LTLIBRARIES =
20+
21+ bin_PROGRAMS =
22+ noinst_PROGRAMS =
23+ TESTS =
24+ BENCHMARKS =
25+
1826BITCOIN_INCLUDES =-I$(builddir ) -I$(srcdir ) /$(MINISKETCH_INCLUDE_DIR_INT ) -I$(srcdir ) /secp256k1/include -I$(srcdir ) /$(UNIVALUE_INCLUDE_DIR_INT ) $(BDB_CPPFLAGS ) $(BOOST_CPPFLAGS ) $(LEVELDB_CPPFLAGS )
1927
2028LIBBITCOIN_NODE =libbitcoin_node.a
2129LIBBITCOIN_COMMON =libbitcoin_common.a
2230LIBBITCOIN_CONSENSUS =libbitcoin_consensus.a
2331LIBBITCOIN_CLI =libbitcoin_cli.a
2432LIBBITCOIN_UTIL =libbitcoin_util.a
25- LIBBITCOIN_CRYPTO_BASE =crypto/libbitcoin_crypto_base.a
33+ LIBBITCOIN_CRYPTO_BASE =crypto/libbitcoin_crypto_base.la
2634LIBBITCOINQT =qt/libbitcoinqt.a
2735LIBSECP256K1 =secp256k1/libsecp256k1.la
2836
@@ -37,31 +45,31 @@ LIBBITCOIN_WALLET=libbitcoin_wallet.a
3745LIBBITCOIN_WALLET_TOOL =libbitcoin_wallet_tool.a
3846endif
3947
40- LIBBITCOIN_CRYPTO = $(LIBBITCOIN_CRYPTO_BASE )
48+ LIBBITCOIN_CRYPTO = $(LIBBITCOIN_CRYPTO_BASE )
4149if ENABLE_SSE41
42- LIBBITCOIN_CRYPTO_SSE41 = crypto/libbitcoin_crypto_sse41.a
50+ LIBBITCOIN_CRYPTO_SSE41 = crypto/libbitcoin_crypto_sse41.la
4351LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_SSE41 )
4452endif
4553if ENABLE_AVX2
46- LIBBITCOIN_CRYPTO_AVX2 = crypto/libbitcoin_crypto_avx2.a
54+ LIBBITCOIN_CRYPTO_AVX2 = crypto/libbitcoin_crypto_avx2.la
4755LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_AVX2 )
4856endif
4957if ENABLE_X86_SHANI
50- LIBBITCOIN_CRYPTO_X86_SHANI = crypto/libbitcoin_crypto_x86_shani.a
58+ LIBBITCOIN_CRYPTO_X86_SHANI = crypto/libbitcoin_crypto_x86_shani.la
5159LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_X86_SHANI )
5260endif
5361if ENABLE_ARM_SHANI
54- LIBBITCOIN_CRYPTO_ARM_SHANI = crypto/libbitcoin_crypto_arm_shani.a
62+ LIBBITCOIN_CRYPTO_ARM_SHANI = crypto/libbitcoin_crypto_arm_shani.la
5563LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_ARM_SHANI )
5664endif
65+ noinst_LTLIBRARIES += $(LIBBITCOIN_CRYPTO )
5766
5867$(LIBSECP256K1 ) : $(wildcard secp256k1/src/* .h) $(wildcard secp256k1/src/* .c) $(wildcard secp256k1/include/* )
5968 $(AM_V_at )$(MAKE ) $(AM_MAKEFLAGS ) -C $(@D ) $(@F )
6069
6170# Make is not made aware of per-object dependencies to avoid limiting building parallelization
6271# But to build the less dependent modules first, we manually select their order here:
6372EXTRA_LIBRARIES += \
64- $(LIBBITCOIN_CRYPTO ) \
6573 $(LIBBITCOIN_UTIL ) \
6674 $(LIBBITCOIN_COMMON ) \
6775 $(LIBBITCOIN_CONSENSUS ) \
@@ -72,14 +80,6 @@ EXTRA_LIBRARIES += \
7280 $(LIBBITCOIN_WALLET_TOOL ) \
7381 $(LIBBITCOIN_ZMQ )
7482
75- lib_LTLIBRARIES = $(LIBBITCOINCONSENSUS )
76- noinst_LTLIBRARIES =
77-
78- bin_PROGRAMS =
79- noinst_PROGRAMS =
80- TESTS =
81- BENCHMARKS =
82-
8383if BUILD_BITCOIND
8484 bin_PROGRAMS += bitcoind
8585endif
@@ -462,9 +462,16 @@ libbitcoin_wallet_tool_a_SOURCES = \
462462 $(BITCOIN_CORE_H )
463463
464464# crypto primitives library
465- crypto_libbitcoin_crypto_base_a_CPPFLAGS = $(AM_CPPFLAGS )
466- crypto_libbitcoin_crypto_base_a_CXXFLAGS = $(AM_CXXFLAGS ) $(PIE_FLAGS )
467- crypto_libbitcoin_crypto_base_a_SOURCES = \
465+ crypto_libbitcoin_crypto_base_la_CPPFLAGS = $(AM_CPPFLAGS )
466+
467+ # Specify -static in both CXXFLAGS and LDFLAGS so libtool will only build a
468+ # static version of this library. We don't need a dynamic version, and a dynamic
469+ # version can't be used on windows anyway because the library doesn't currently
470+ # export DLL symbols.
471+ crypto_libbitcoin_crypto_base_la_CXXFLAGS = $(AM_CXXFLAGS ) $(PIE_FLAGS ) -static
472+ crypto_libbitcoin_crypto_base_la_LDFLAGS = $(AM_LDFLAGS ) -static
473+
474+ crypto_libbitcoin_crypto_base_la_SOURCES = \
468475 crypto/aes.cpp \
469476 crypto/aes.h \
470477 crypto/chacha_poly_aead.h \
@@ -496,32 +503,44 @@ crypto_libbitcoin_crypto_base_a_SOURCES = \
496503 crypto/siphash.h
497504
498505if USE_ASM
499- crypto_libbitcoin_crypto_base_a_SOURCES += crypto/sha256_sse4.cpp
506+ crypto_libbitcoin_crypto_base_la_SOURCES += crypto/sha256_sse4.cpp
500507endif
501508
502- crypto_libbitcoin_crypto_sse41_a_CXXFLAGS = $(AM_CXXFLAGS ) $(PIE_FLAGS )
503- crypto_libbitcoin_crypto_sse41_a_CPPFLAGS = $(AM_CPPFLAGS )
504- crypto_libbitcoin_crypto_sse41_a_CXXFLAGS += $(SSE41_CXXFLAGS )
505- crypto_libbitcoin_crypto_sse41_a_CPPFLAGS += -DENABLE_SSE41
506- crypto_libbitcoin_crypto_sse41_a_SOURCES = crypto/sha256_sse41.cpp
507-
508- crypto_libbitcoin_crypto_avx2_a_CXXFLAGS = $(AM_CXXFLAGS ) $(PIE_FLAGS )
509- crypto_libbitcoin_crypto_avx2_a_CPPFLAGS = $(AM_CPPFLAGS )
510- crypto_libbitcoin_crypto_avx2_a_CXXFLAGS += $(AVX2_CXXFLAGS )
511- crypto_libbitcoin_crypto_avx2_a_CPPFLAGS += -DENABLE_AVX2
512- crypto_libbitcoin_crypto_avx2_a_SOURCES = crypto/sha256_avx2.cpp
513-
514- crypto_libbitcoin_crypto_x86_shani_a_CXXFLAGS = $(AM_CXXFLAGS ) $(PIE_FLAGS )
515- crypto_libbitcoin_crypto_x86_shani_a_CPPFLAGS = $(AM_CPPFLAGS )
516- crypto_libbitcoin_crypto_x86_shani_a_CXXFLAGS += $(X86_SHANI_CXXFLAGS )
517- crypto_libbitcoin_crypto_x86_shani_a_CPPFLAGS += -DENABLE_X86_SHANI
518- crypto_libbitcoin_crypto_x86_shani_a_SOURCES = crypto/sha256_x86_shani.cpp
519-
520- crypto_libbitcoin_crypto_arm_shani_a_CXXFLAGS = $(AM_CXXFLAGS ) $(PIE_FLAGS )
521- crypto_libbitcoin_crypto_arm_shani_a_CPPFLAGS = $(AM_CPPFLAGS )
522- crypto_libbitcoin_crypto_arm_shani_a_CXXFLAGS += $(ARM_SHANI_CXXFLAGS )
523- crypto_libbitcoin_crypto_arm_shani_a_CPPFLAGS += -DENABLE_ARM_SHANI
524- crypto_libbitcoin_crypto_arm_shani_a_SOURCES = crypto/sha256_arm_shani.cpp
509+ # See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and
510+ # CXXFLAGS above
511+ crypto_libbitcoin_crypto_sse41_la_LDFLAGS = $(AM_LDFLAGS ) -static
512+ crypto_libbitcoin_crypto_sse41_la_CXXFLAGS = $(AM_CXXFLAGS ) $(PIE_FLAGS ) -static
513+ crypto_libbitcoin_crypto_sse41_la_CPPFLAGS = $(AM_CPPFLAGS )
514+ crypto_libbitcoin_crypto_sse41_la_CXXFLAGS += $(SSE41_CXXFLAGS )
515+ crypto_libbitcoin_crypto_sse41_la_CPPFLAGS += -DENABLE_SSE41
516+ crypto_libbitcoin_crypto_sse41_la_SOURCES = crypto/sha256_sse41.cpp
517+
518+ # See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and
519+ # CXXFLAGS above
520+ crypto_libbitcoin_crypto_avx2_la_LDFLAGS = $(AM_LDFLAGS ) -static
521+ crypto_libbitcoin_crypto_avx2_la_CXXFLAGS = $(AM_CXXFLAGS ) $(PIE_FLAGS ) -static
522+ crypto_libbitcoin_crypto_avx2_la_CPPFLAGS = $(AM_CPPFLAGS )
523+ crypto_libbitcoin_crypto_avx2_la_CXXFLAGS += $(AVX2_CXXFLAGS )
524+ crypto_libbitcoin_crypto_avx2_la_CPPFLAGS += -DENABLE_AVX2
525+ crypto_libbitcoin_crypto_avx2_la_SOURCES = crypto/sha256_avx2.cpp
526+
527+ # See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and
528+ # CXXFLAGS above
529+ crypto_libbitcoin_crypto_x86_shani_la_LDFLAGS = $(AM_LDFLAGS ) -static
530+ crypto_libbitcoin_crypto_x86_shani_la_CXXFLAGS = $(AM_CXXFLAGS ) $(PIE_FLAGS ) -static
531+ crypto_libbitcoin_crypto_x86_shani_la_CPPFLAGS = $(AM_CPPFLAGS )
532+ crypto_libbitcoin_crypto_x86_shani_la_CXXFLAGS += $(X86_SHANI_CXXFLAGS )
533+ crypto_libbitcoin_crypto_x86_shani_la_CPPFLAGS += -DENABLE_X86_SHANI
534+ crypto_libbitcoin_crypto_x86_shani_la_SOURCES = crypto/sha256_x86_shani.cpp
535+
536+ # See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and
537+ # CXXFLAGS above
538+ crypto_libbitcoin_crypto_arm_shani_la_LDFLAGS = $(AM_LDFLAGS ) -static
539+ crypto_libbitcoin_crypto_arm_shani_la_CXXFLAGS = $(AM_CXXFLAGS ) $(PIE_FLAGS ) -static
540+ crypto_libbitcoin_crypto_arm_shani_la_CPPFLAGS = $(AM_CPPFLAGS )
541+ crypto_libbitcoin_crypto_arm_shani_la_CXXFLAGS += $(ARM_SHANI_CXXFLAGS )
542+ crypto_libbitcoin_crypto_arm_shani_la_CPPFLAGS += -DENABLE_ARM_SHANI
543+ crypto_libbitcoin_crypto_arm_shani_la_SOURCES = crypto/sha256_arm_shani.cpp
525544
526545# consensus: shared between all executables that validate any consensus rules.
527546libbitcoin_consensus_a_CPPFLAGS = $(AM_CPPFLAGS ) $(BITCOIN_INCLUDES )
@@ -877,7 +896,7 @@ bitcoin_chainstate-clientversion.$(OBJEXT): obj/build.h
877896# bitcoinconsensus library #
878897if BUILD_BITCOIN_LIBS
879898include_HEADERS = script/bitcoinconsensus.h
880- libbitcoinconsensus_la_SOURCES = support/cleanse.cpp $(crypto_libbitcoin_crypto_base_a_SOURCES ) $(libbitcoin_consensus_a_SOURCES )
899+ libbitcoinconsensus_la_SOURCES = support/cleanse.cpp $(crypto_libbitcoin_crypto_base_la_SOURCES ) $(libbitcoin_consensus_a_SOURCES )
881900
882901libbitcoinconsensus_la_LDFLAGS = $(AM_LDFLAGS ) -no-undefined $(RELDFLAGS )
883902libbitcoinconsensus_la_LIBADD = $(LIBSECP256K1 )
0 commit comments