Skip to content

Commit 50318c6

Browse files
committed
Build: build chiabls library from git subtree
Plug in the native autotools based build system to provide the libchiabls.la libtool library.
1 parent a2f98e9 commit 50318c6

File tree

7 files changed

+28
-12
lines changed

7 files changed

+28
-12
lines changed

.github/workflows/build-and-test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -327,8 +327,8 @@ jobs:
327327
functional_tests: false
328328
no_depends: 1
329329
goal: deploy
330-
cc: $(brew --prefix llvm)/bin/clang
331-
cxx: $(brew --prefix llvm)/bin/clang++
330+
cc: clang
331+
cxx: clang++
332332
BITCOIN_CONFIG: "--enable-zmq --enable-gui --enable-reduce-exports --enable-werror"
333333

334334
steps:

configure.ac

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1590,6 +1590,8 @@ if test x$need_bundled_univalue = xyes; then
15901590
AC_CONFIG_SUBDIRS([src/univalue])
15911591
fi
15921592

1593+
AC_CONFIG_SUBDIRS([src/chiabls])
1594+
15931595
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --with-bignum=no --enable-module-recovery --disable-jni"
15941596
AC_CONFIG_SUBDIRS([src/secp256k1])
15951597

@@ -1614,6 +1616,10 @@ case ${OS} in
16141616
;;
16151617
esac
16161618

1619+
dnl Remove conflicting preprocessor defines from relic configuration header
1620+
sed -i.old '/PACKAGE/d' src/chiabls/contrib/relic/include/relic_conf.h
1621+
sed -i.old '/#define VERSION/d' src/chiabls/contrib/relic/include/relic_conf.h
1622+
16171623
echo
16181624
echo "Options used to compile and link:"
16191625
echo " with wallet = $enable_wallet"

src/Makefile.am

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Distributed under the MIT software license, see the accompanying
33
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
44

5-
DIST_SUBDIRS = secp256k1 univalue
5+
DIST_SUBDIRS = secp256k1 univalue chiabls
66

77
AM_LDFLAGS = $(PTHREAD_CFLAGS) $(LIBTOOL_LDFLAGS) $(HARDENED_LDFLAGS) $(GPROF_LDFLAGS) $(SANITIZER_LDFLAGS)
88
AM_CXXFLAGS = $(DEBUG_CXXFLAGS) $(HARDENED_CXXFLAGS) $(WARN_CXXFLAGS) $(NOWARN_CXXFLAGS) $(ERROR_CXXFLAGS) $(GPROF_CXXFLAGS) $(SANITIZER_CXXFLAGS)
@@ -24,6 +24,8 @@ BITCOIN_INCLUDES=-I$(builddir) -I$(builddir)/obj $(BDB_CPPFLAGS) $(BOOST_CPPFLAG
2424

2525
BITCOIN_INCLUDES += -I$(srcdir)/rust/include
2626
BITCOIN_INCLUDES += -I$(srcdir)/secp256k1/include
27+
BITCOIN_INCLUDES += -I$(srcdir)/chiabls/src
28+
BITCOIN_INCLUDES += -I$(srcdir)/chiabls/contrib/relic/include
2729
BITCOIN_INCLUDES += $(UNIVALUE_CFLAGS)
2830

2931
LIBBITCOIN_SERVER=libbitcoin_server.a
@@ -35,6 +37,7 @@ LIBBITCOIN_ZEROCOIN=libzerocoin/libbitcoin_zerocoin.a
3537
LIBBITCOINQT=qt/libbitcoinqt.a
3638
LIBSECP256K1=secp256k1/libsecp256k1.la
3739
LIBSAPLING=libsapling.a
40+
LIBCHIABLS=chiabls/libchiabls.la
3841
if ENABLE_ONLINE_RUST
3942
LIBRUSTZCASH=$(top_builddir)/target/release/librustzcash.a
4043
else
@@ -51,6 +54,8 @@ if ENABLE_WALLET
5154
LIBBITCOIN_WALLET=libbitcoin_wallet.a
5255
endif
5356

57+
BLS_LIBS = $(LIBCHIABLS)
58+
5459
RUST_ENV_VARS = RUSTC="$(RUSTC)" TERM=dumb
5560
RUST_BUILD_OPTS = --release
5661

@@ -96,6 +101,9 @@ endif
96101
$(LIBSECP256K1): $(wildcard secp256k1/src/*.h) $(wildcard secp256k1/src/*.c) $(wildcard secp256k1/include/*)
97102
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
98103

104+
$(LIBCHIABLS):
105+
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C chiabls
106+
99107
# Make is not made aware of per-object dependencies to avoid limiting building parallelization
100108
# But to build the less dependent modules first, we manually select their order here:
101109
EXTRA_LIBRARIES += \
@@ -629,7 +637,7 @@ pivxd_LDADD = \
629637
$(LIBRUSTZCASH) \
630638
$(LIBZCASH_LIBS)
631639

632-
pivxd_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(ZMQ_LIBS)
640+
pivxd_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(ZMQ_LIBS) $(BLS_LIBS)
633641

634642
# pivx-cli binary #
635643
pivx_cli_SOURCES = pivx-cli.cpp
@@ -650,7 +658,7 @@ pivx_cli_LDADD = \
650658
$(LIBRUSTZCASH) \
651659
$(LIBZCASH_LIBS)
652660

653-
pivx_cli_LDADD += $(BOOST_LIBS) $(EVENT_LIBS)
661+
pivx_cli_LDADD += $(BOOST_LIBS) $(EVENT_LIBS) $(BLS_LIBS)
654662
#
655663

656664
# pivx-tx binary #
@@ -674,7 +682,7 @@ pivx_tx_LDADD = \
674682
$(LIBRUSTZCASH) \
675683
$(LIBZCASH_LIBS)
676684

677-
pivx_tx_LDADD += $(BOOST_LIBS)
685+
pivx_tx_LDADD += $(BOOST_LIBS) $(BLS_LIBS)
678686
#
679687

680688
# bitcoinconsensus library #
@@ -702,7 +710,7 @@ if GLIBC_BACK_COMPAT
702710
endif
703711

704712
libbitcoinconsensus_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS)
705-
libbitcoinconsensus_la_LIBADD = $(LIBSECP256K1)
713+
libbitcoinconsensus_la_LIBADD = $(LIBSECP256K1) $(BLS_LIBS)
706714
libbitcoinconsensus_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include -DBUILD_BITCOIN_INTERNAL
707715
libbitcoinconsensus_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
708716

@@ -758,6 +766,7 @@ $(top_srcdir)/$(subdir)/config/pivx-config.h.in: $(am__configure_deps)
758766
clean-local:
759767
-$(MAKE) -C secp256k1 clean
760768
-$(MAKE) -C univalue clean
769+
-$(MAKE) -C chiabls clean
761770
-rm -f leveldb/*/*.gcda leveldb/*/*.gcno leveldb/helpers/memenv/*.gcda leveldb/helpers/memenv/*.gcno
762771
-rm -f config.h
763772
-rm -rf test/__pycache__

src/Makefile.bench.include

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ if ENABLE_ZMQ
5454
bench_bench_pivx_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
5555
endif
5656

57-
bench_bench_pivx_LDADD += $(LIBBITCOIN_CONSENSUS) $(BOOST_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS)
57+
bench_bench_pivx_LDADD += $(LIBBITCOIN_CONSENSUS) $(BOOST_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(BLS_LIBS)
5858
bench_bench_pivx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
5959

6060
CLEAN_BITCOIN_BENCH = bench/*.gcda bench/*.gcno $(GENERATED_BENCH_FILES)

src/Makefile.qt.include

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -648,7 +648,7 @@ qt_pivx_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
648648
endif
649649
qt_pivx_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBBITCOIN_ZEROCOIN) $(LIBSAPLING) $(LIBRUSTZCASH) $(LIBZCASH_LIBS) $(LIBLEVELDB) $(LIBLEVELDB_SSE42) $(LIBMEMENV) \
650650
$(BOOST_LIBS) $(QT_LIBS) $(QT_DBUS_LIBS) $(QR_LIBS) $(SVG_LIBS) $(CHARTS_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(LIBSECP256K1) \
651-
$(EVENT_PTHREADS_LIBS) $(EVENT_LIBS)
651+
$(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(BLS_LIBS)
652652
qt_pivx_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
653653
qt_pivx_qt_LIBTOOLFLAGS = $(AM_LIBTOOLFLAGS) --tag CXX
654654

src/Makefile.qttest.include

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ endif
2929
qt_test_test_pivx_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBBITCOIN_ZEROCOIN) $(LIBLEVELDB) $(LIBSAPLING) $(LIBRUSTZCASH) $(LIBZCASH_LIBS) \
3030
$(LIBLEVELDB_SSE42) $(LIBMEMENV) $(BOOST_LIBS) $(QT_DBUS_LIBS) $(QT_TEST_LIBS) $(QT_LIBS) \
3131
$(QR_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(LIBSECP256K1) \
32-
$(EVENT_PTHREADS_LIBS) $(EVENT_LIBS)
32+
$(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(BLS_LIBS)
3333
qt_test_test_pivx_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
3434
qt_test_test_pivx_qt_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS)
3535

src/Makefile.test.include

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ test_test_pivx_LDADD += $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMM
187187

188188
test_test_pivx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
189189

190-
test_test_pivx_LDADD += $(LIBRUSTZCASH) $(LIBBITCOIN_CONSENSUS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(LIBZCASH_LIBS)
190+
test_test_pivx_LDADD += $(LIBRUSTZCASH) $(LIBBITCOIN_CONSENSUS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(LIBZCASH_LIBS) $(BLS_LIBS)
191191
test_test_pivx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) -static
192192

193193
if ENABLE_ZMQ
@@ -202,7 +202,7 @@ if ENABLE_ZMQ
202202
test_test_pivx_fuzzy_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
203203
endif
204204
test_test_pivx_fuzzy_LDADD += $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_ZEROCOIN) $(LIBBITCOIN_UTIL) $(LIBUNIVALUE) \
205-
$(LIBLEVELDB) $(LIBLEVELDB_SSE42) $(LIBMEMENV) $(BOOST_LIBS) $(LIBSECP256K1) $(EVENT_LIBS) $(EVENT_PTHREADS_LIBS)
205+
$(LIBLEVELDB) $(LIBLEVELDB_SSE42) $(LIBMEMENV) $(BOOST_LIBS) $(LIBSECP256K1) $(EVENT_LIBS) $(EVENT_PTHREADS_LIBS) $(BLS_LIBS)
206206
if ENABLE_WALLET
207207
test_test_pivx_fuzzy_LDADD += $(LIBBITCOIN_WALLET)
208208
endif
@@ -400,6 +400,7 @@ check-standard: $(BITCOIN_TESTS:.cpp=.cpp.test)
400400
$(PYTHON) $(top_builddir)/test/util/bitcoin-util-test.py
401401
@echo "Running test/util/rpcauth-test.py..."
402402
$(PYTHON) $(top_builddir)/test/util/rpcauth-test.py
403+
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C chiabls check
403404
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C secp256k1 check
404405
if EMBEDDED_UNIVALUE
405406
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C univalue check

0 commit comments

Comments
 (0)