@@ -5,6 +5,12 @@ AM_CXXFLAGS = $(SAN_CXXFLAGS) $(HARDENED_CXXFLAGS) $(ERROR_CXXFLAGS)
5
5
AM_CPPFLAGS = $(HARDENED_CPPFLAGS )
6
6
EXTRA_LIBRARIES =
7
7
8
+ if ARCH_ARM
9
+ PLATFORM_VARIANT = armv8.1-a+crypto
10
+ else
11
+ PLATFORM_VARIANT = x86-64
12
+ endif
13
+
8
14
if EMBEDDED_LEVELDB
9
15
LEVELDB_CPPFLAGS += -I$(srcdir ) /leveldb/include
10
16
LEVELDB_CPPFLAGS += -I$(srcdir ) /leveldb/helpers/memenv
@@ -32,15 +38,18 @@ BITCOIN_INCLUDES += -I$(srcdir)/snark
32
38
BITCOIN_INCLUDES += -I$(srcdir ) /snark/libsnark
33
39
BITCOIN_INCLUDES += -I$(srcdir ) /univalue/include
34
40
35
- if TARGET_WINDOWS
36
- LIBBITCOIN_SERVER =libbitcoin_server.a -lcurl -larchive
37
- endif
38
- if TARGET_DARWIN
39
- LIBBITCOIN_SERVER =libbitcoin_server.a -lcurl -larchive
40
- endif
41
- if TARGET_LINUX
41
+ # if TARGET_WINDOWS
42
+ # LIBBITCOIN_SERVER=libbitcoin_server.a -lcurl -larchive
43
+ # endif
44
+ # if TARGET_DARWIN
45
+ # LIBBITCOIN_SERVER=libbitcoin_server.a -lcurl -larchive
46
+ # endif
47
+ # if TARGET_LINUX
48
+ # LIBBITCOIN_SERVER=libbitcoin_server.a -lcurl -larchive
49
+ # endif
50
+ # if ARCH_ARM
42
51
LIBBITCOIN_SERVER =libbitcoin_server.a -lcurl -larchive
43
- endif
52
+ # endif
44
53
45
54
LIBBITCOIN_WALLET =libbitcoin_wallet.a
46
55
LIBBITCOIN_COMMON =libbitcoin_common.a
@@ -70,7 +79,7 @@ LIBBITCOIN_WALLET=libbitcoin_wallet.a
70
79
endif
71
80
72
81
$(LIBSECP256K1 ) : $(wildcard secp256k1/src/* ) $(wildcard secp256k1/include/* )
73
- $(AM_V_at )$(MAKE ) $(AM_MAKEFLAGS ) -C $(@D ) $(@F ) OPTFLAGS=" -O2 -march=x86-64 -g "
82
+ $(AM_V_at )$(MAKE ) $(AM_MAKEFLAGS ) -C $(@D ) $(@F ) OPTFLAGS=" -O2 -march=$( PLATFORM_VARIANT ) -g "
74
83
75
84
LIBSNARK_CXXFLAGS = $(AM_CXXFLAGS ) $(PIC_FLAGS ) -DBINARY_OUTPUT -DNO_PT_COMPRESSION=1 -fstack-protector-all
76
85
LIBSNARK_CONFIG_FLAGS = CURVE=ALT_BN128 NO_PROCPS=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT NO_COPY_DEPINST=1 NO_COMPILE_LIBGTEST=1
@@ -82,16 +91,16 @@ LIBSNARK_CONFIG_FLAGS += PLATFORM=darwin
82
91
endif
83
92
84
93
$(LIBSNARK ) : $(wildcard snark/src/* )
85
- $(AM_V_at ) CC=" $( CC) " CXX=" $( CXX) " AR=" $( AR) " CXXFLAGS=" $( LIBSNARK_CXXFLAGS) " $(MAKE ) $(AM_MAKEFLAGS ) -C snark/ DEPINST=" $( LIBSNARK_DEPINST) " $(LIBSNARK_CONFIG_FLAGS ) OPTFLAGS=" -O2 -march=x86-64 "
94
+ $(AM_V_at ) CC=" $( CC) " CXX=" $( CXX) " AR=" $( AR) " CXXFLAGS=" $( LIBSNARK_CXXFLAGS) " $(MAKE ) $(AM_MAKEFLAGS ) -C snark/ DEPINST=" $( LIBSNARK_DEPINST) " $(LIBSNARK_CONFIG_FLAGS ) OPTFLAGS=" -O2 -march=$( PLATFORM_VARIANT ) "
86
95
87
96
libsnark-tests : $(wildcard snark/src/* )
88
- $(AM_V_at ) CC=" $( CC) " CXX=" $( CXX) " AR=" $( AR) " CXXFLAGS=" $( LIBSNARK_CXXFLAGS) " $(MAKE ) $(AM_MAKEFLAGS ) -C snark/ check DEPINST=" $( LIBSNARK_DEPINST) " $(LIBSNARK_CONFIG_FLAGS ) OPTFLAGS=" -O2 -march=x86-64 "
97
+ $(AM_V_at ) CC=" $( CC) " CXX=" $( CXX) " AR=" $( AR) " CXXFLAGS=" $( LIBSNARK_CXXFLAGS) " $(MAKE ) $(AM_MAKEFLAGS ) -C snark/ check DEPINST=" $( LIBSNARK_DEPINST) " $(LIBSNARK_CONFIG_FLAGS ) OPTFLAGS=" -O2 -march=$( PLATFORM_VARIANT ) "
89
98
90
99
$(LIBUNIVALUE ) : $(wildcard univalue/lib/* )
91
- $(AM_V_at )$(MAKE ) $(AM_MAKEFLAGS ) -C $(@D ) $(@F ) OPTFLAGS=" -O2 -march=x86-64 -g "
100
+ $(AM_V_at )$(MAKE ) $(AM_MAKEFLAGS ) -C $(@D ) $(@F ) OPTFLAGS=" -O2 -march=$( PLATFORM_VARIANT ) -g "
92
101
93
102
$(LIBCRYPTOCONDITIONS ) : $(wildcard cryptoconditions/src/* ) $(wildcard cryptoconditions/include/* )
94
- $(AM_V_at )$(MAKE ) $(AM_MAKEFLAGS ) -C $(@D ) $(@F ) OPTFLAGS=" -O2 -march=x86-64 -g "
103
+ $(AM_V_at )$(MAKE ) $(AM_MAKEFLAGS ) -C $(@D ) $(@F ) OPTFLAGS=" -O2 -march=$( PLATFORM_VARIANT ) -g "
95
104
96
105
# Make is not made aware of per-object dependencies to avoid limiting building parallelization
97
106
# But to build the less dependent modules first, we manually select their order here:
@@ -264,6 +273,7 @@ BITCOIN_CORE_H = \
264
273
version.h \
265
274
wallet/asyncrpcoperation_mergetoaddress.h \
266
275
wallet/asyncrpcoperation_saplingconsolidation.h \
276
+ wallet/asyncrpcoperation_sweeptoaddress.h \
267
277
wallet/asyncrpcoperation_sendmany.h \
268
278
wallet/asyncrpcoperation_shieldcoinbase.h \
269
279
wallet/crypter.h \
@@ -397,6 +407,7 @@ libbitcoin_wallet_a_SOURCES = \
397
407
zcbenchmarks.h \
398
408
wallet/asyncrpcoperation_mergetoaddress.cpp \
399
409
wallet/asyncrpcoperation_saplingconsolidation.cpp \
410
+ wallet/asyncrpcoperation_sweeptoaddress.cpp \
400
411
wallet/asyncrpcoperation_sendmany.cpp \
401
412
wallet/asyncrpcoperation_shieldcoinbase.cpp \
402
413
wallet/crypter.cpp \
@@ -463,18 +474,34 @@ crypto_libbitcoin_crypto_a_SOURCES += \
463
474
endif
464
475
465
476
# Verus hash specific library - optimized
466
- crypto_libverus_crypto_a_CPPFLAGS = -O3 -Wint-conversion -march=x86-64 -msse4 -msse4.1 -msse4.2 -mssse3 -mavx -maes -g -funroll-loops -fomit-frame-pointer -fPIC $(AM_CPPFLAGS )
467
- crypto_libverus_crypto_a_CXXFLAGS = -O3 -Wint-conversion -march=x86-64 -msse4 -msse4.1 -msse4.2 -mssse3 -mavx -maes -g -funroll-loops -fomit-frame-pointer -fPIC $(AM_CXXFLAGS )
477
+ if ARCH_ARM
478
+ crypto_libverus_crypto_a_CPPFLAGS = -O3 -g -march=armv8.1-a+crypto -flax-vector-conversions -funroll-loops -fomit-frame-pointer -fPIC $(AM_CPPFLAGS ) $(BITCOIN_INCLUDES )
479
+ crypto_libverus_crypto_a_CXXFLAGS = -O3 -Wint-conversion -g -march=armv8.1-a+crypto -flax-vector-conversions -funroll-loops -fomit-frame-pointer -fPIC $(AM_CXXFLAGS )
480
+ else
481
+ crypto_libverus_crypto_a_CPPFLAGS = -O3 -mpclmul -msse4 -msse4.1 -msse4.2 -mssse3 -mavx -maes -g -funroll-loops -fomit-frame-pointer -fPIC $(AM_CPPFLAGS ) $(BITCOIN_INCLUDES )
482
+ crypto_libverus_crypto_a_CXXFLAGS = -O3 -Wint-conversion -mpclmul -msse4 -msse4.1 -msse4.2 -mssse3 -mavx -maes -g -funroll-loops -fomit-frame-pointer -fPIC $(AM_CXXFLAGS )
483
+ endif
484
+
468
485
crypto_libverus_crypto_a_SOURCES = \
469
486
crypto/haraka.h \
470
- crypto/haraka.c
487
+ crypto/haraka.c \
488
+ crypto/verus_clhash.h \
489
+ crypto/verus_clhash.cpp
471
490
472
491
# Verus hash specific library - portable
473
- crypto_libverus_portable_crypto_a_CPPFLAGS = -O3 -Wint-conversion -march=x86-64 -g -funroll-loops -fomit-frame-pointer -fPIC $(AM_CPPFLAGS )
474
- crypto_libverus_portable_crypto_a_CXXFLAGS = -O3 -Wint-conversion -march=x86-64 -g -funroll-loops -fomit-frame-pointer -fPIC $(AM_CXXFLAGS )
492
+ if ARCH_ARM
493
+ crypto_libverus_portable_crypto_a_CPPFLAGS = -O3 -g -march=$(PLATFORM_VARIANT ) -flax-vector-conversions -funroll-loops -fomit-frame-pointer -fPIC $(AM_CPPFLAGS ) $(BITCOIN_INCLUDES )
494
+ crypto_libverus_portable_crypto_a_CXXFLAGS = -O3 -Wint-conversion -g -march=$(PLATFORM_VARIANT ) -flax-vector-conversions -funroll-loops -fomit-frame-pointer -fPIC $(AM_CXXFLAGS )
495
+ else
496
+ crypto_libverus_portable_crypto_a_CPPFLAGS = -O3 -march=$(PLATFORM_VARIANT ) -g -funroll-loops -fomit-frame-pointer -fPIC $(AM_CPPFLAGS ) -w $(BITCOIN_INCLUDES )
497
+ crypto_libverus_portable_crypto_a_CXXFLAGS = -O3 -Wint-conversion -march=$(PLATFORM_VARIANT ) -g -funroll-loops -fomit-frame-pointer -fPIC $(AM_CXXFLAGS )
498
+ endif
499
+
475
500
crypto_libverus_portable_crypto_a_SOURCES = \
476
501
crypto/haraka_portable.h \
477
- crypto/haraka_portable.c
502
+ crypto/haraka_portable.c \
503
+ crypto/verus_clhash.h \
504
+ crypto/verus_clhash_portable.cpp
478
505
479
506
# common: shared between zcashd and non-server tools
480
507
libbitcoin_common_a_CPPFLAGS = -fPIC $(AM_CPPFLAGS ) $(BITCOIN_INCLUDES )
0 commit comments