@@ -15,14 +15,22 @@ AM_LIBTOOLFLAGS = --preserve-dup-deps
15
15
PTHREAD_FLAGS = $(PTHREAD_CFLAGS ) $(PTHREAD_LIBS )
16
16
EXTRA_LIBRARIES =
17
17
18
+ lib_LTLIBRARIES = $(LIBBITCOINCONSENSUS )
19
+ noinst_LTLIBRARIES =
20
+
21
+ bin_PROGRAMS =
22
+ noinst_PROGRAMS =
23
+ TESTS =
24
+ BENCHMARKS =
25
+
18
26
BITCOIN_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 )
19
27
20
28
LIBBITCOIN_NODE =libbitcoin_node.a
21
29
LIBBITCOIN_COMMON =libbitcoin_common.a
22
30
LIBBITCOIN_CONSENSUS =libbitcoin_consensus.a
23
31
LIBBITCOIN_CLI =libbitcoin_cli.a
24
32
LIBBITCOIN_UTIL =libbitcoin_util.a
25
- LIBBITCOIN_CRYPTO_BASE =crypto/libbitcoin_crypto_base.a
33
+ LIBBITCOIN_CRYPTO_BASE =crypto/libbitcoin_crypto_base.la
26
34
LIBBITCOINQT =qt/libbitcoinqt.a
27
35
LIBSECP256K1 =secp256k1/libsecp256k1.la
28
36
@@ -37,31 +45,31 @@ LIBBITCOIN_WALLET=libbitcoin_wallet.a
37
45
LIBBITCOIN_WALLET_TOOL =libbitcoin_wallet_tool.a
38
46
endif
39
47
40
- LIBBITCOIN_CRYPTO = $(LIBBITCOIN_CRYPTO_BASE )
48
+ LIBBITCOIN_CRYPTO = $(LIBBITCOIN_CRYPTO_BASE )
41
49
if ENABLE_SSE41
42
- LIBBITCOIN_CRYPTO_SSE41 = crypto/libbitcoin_crypto_sse41.a
50
+ LIBBITCOIN_CRYPTO_SSE41 = crypto/libbitcoin_crypto_sse41.la
43
51
LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_SSE41 )
44
52
endif
45
53
if ENABLE_AVX2
46
- LIBBITCOIN_CRYPTO_AVX2 = crypto/libbitcoin_crypto_avx2.a
54
+ LIBBITCOIN_CRYPTO_AVX2 = crypto/libbitcoin_crypto_avx2.la
47
55
LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_AVX2 )
48
56
endif
49
57
if 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
51
59
LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_X86_SHANI )
52
60
endif
53
61
if 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
55
63
LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_ARM_SHANI )
56
64
endif
65
+ noinst_LTLIBRARIES += $(LIBBITCOIN_CRYPTO )
57
66
58
67
$(LIBSECP256K1 ) : $(wildcard secp256k1/src/* .h) $(wildcard secp256k1/src/* .c) $(wildcard secp256k1/include/* )
59
68
$(AM_V_at )$(MAKE ) $(AM_MAKEFLAGS ) -C $(@D ) $(@F )
60
69
61
70
# Make is not made aware of per-object dependencies to avoid limiting building parallelization
62
71
# But to build the less dependent modules first, we manually select their order here:
63
72
EXTRA_LIBRARIES += \
64
- $(LIBBITCOIN_CRYPTO ) \
65
73
$(LIBBITCOIN_UTIL ) \
66
74
$(LIBBITCOIN_COMMON ) \
67
75
$(LIBBITCOIN_CONSENSUS ) \
@@ -72,14 +80,6 @@ EXTRA_LIBRARIES += \
72
80
$(LIBBITCOIN_WALLET_TOOL ) \
73
81
$(LIBBITCOIN_ZMQ )
74
82
75
- lib_LTLIBRARIES = $(LIBBITCOINCONSENSUS )
76
- noinst_LTLIBRARIES =
77
-
78
- bin_PROGRAMS =
79
- noinst_PROGRAMS =
80
- TESTS =
81
- BENCHMARKS =
82
-
83
83
if BUILD_BITCOIND
84
84
bin_PROGRAMS += bitcoind
85
85
endif
@@ -462,9 +462,16 @@ libbitcoin_wallet_tool_a_SOURCES = \
462
462
$(BITCOIN_CORE_H )
463
463
464
464
# 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 = \
468
475
crypto/aes.cpp \
469
476
crypto/aes.h \
470
477
crypto/chacha_poly_aead.h \
@@ -496,32 +503,44 @@ crypto_libbitcoin_crypto_base_a_SOURCES = \
496
503
crypto/siphash.h
497
504
498
505
if USE_ASM
499
- crypto_libbitcoin_crypto_base_a_SOURCES += crypto/sha256_sse4.cpp
506
+ crypto_libbitcoin_crypto_base_la_SOURCES += crypto/sha256_sse4.cpp
500
507
endif
501
508
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
525
544
526
545
# consensus: shared between all executables that validate any consensus rules.
527
546
libbitcoin_consensus_a_CPPFLAGS = $(AM_CPPFLAGS ) $(BITCOIN_INCLUDES )
@@ -877,7 +896,7 @@ bitcoin_chainstate-clientversion.$(OBJEXT): obj/build.h
877
896
# bitcoinconsensus library #
878
897
if BUILD_BITCOIN_LIBS
879
898
include_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 )
881
900
882
901
libbitcoinconsensus_la_LDFLAGS = $(AM_LDFLAGS ) -no-undefined $(RELDFLAGS )
883
902
libbitcoinconsensus_la_LIBADD = $(LIBSECP256K1 )
0 commit comments