diff --git a/.gitignore b/.gitignore index 861913294..2b1f770f1 100644 --- a/.gitignore +++ b/.gitignore @@ -18,16 +18,16 @@ Makefile.in .libs *.la *.lo -/aclocal.m4 -/autom4te.cache -/build-aux -/config.* -/configure -/libtool -.dirstamp +builds/gnu/aclocal.m4 +builds/gnu/autom4te.cache +builds/gnu/build-aux +builds/gnu/config.* +builds/gnu/configure +builds/gnu/libtool +builds/gnu/.dirstamp # pkg-config pc file from .pc.in -*.pc +builds/gnu/*.pc # msbuild/msvc /.vs diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index 4cdd86b46..000000000 --- a/Makefile.am +++ /dev/null @@ -1,412 +0,0 @@ -############################################################################### -# Copyright (c) 2014-2026 libbitcoin-database developers (see COPYING). -# -# GENERATED SOURCE CODE, DO NOT EDIT EXCEPT EXPERIMENTALLY -# -############################################################################### - -# Automake settings. -#============================================================================== -# Look for macros in the m4 subdirectory. -#------------------------------------------------------------------------------ -ACLOCAL_AMFLAGS = -I m4 - - -# Distribute, make and install products. -#============================================================================== -# files => ${pkgconfigdir} -#------------------------------------------------------------------------------ -pkgconfig_DATA = \ - libbitcoin-database.pc - -# files => ${docdir} -#------------------------------------------------------------------------------ -doc_DATA = \ - AUTHORS \ - COPYING \ - ChangeLog \ - INSTALL \ - NEWS \ - README - -# src/libbitcoin-database.la => ${libdir} -#------------------------------------------------------------------------------ -lib_LTLIBRARIES = src/libbitcoin-database.la -src_libbitcoin_database_la_CPPFLAGS = -I${srcdir}/include ${bitcoin_system_BUILD_CPPFLAGS} -src_libbitcoin_database_la_LIBADD = ${bitcoin_system_LIBS} -src_libbitcoin_database_la_SOURCES = \ - src/define.cpp \ - src/error.cpp \ - src/settings.cpp \ - src/file/rotator.cpp \ - src/file/utilities.cpp \ - src/locks/file_lock.cpp \ - src/locks/flush_lock.cpp \ - src/locks/interprocess_lock.cpp \ - src/memory/mman.cpp \ - src/memory/utilities.cpp \ - src/types/history.cpp \ - src/types/multisig_view.cpp \ - src/types/unspent.cpp - -# local: test/libbitcoin-database-test -#------------------------------------------------------------------------------ -if WITH_TESTS - -TESTS = libbitcoin-database-test_runner.sh - -check_PROGRAMS = test/libbitcoin-database-test -test_libbitcoin_database_test_CPPFLAGS = -I${srcdir}/include ${bitcoin_system_BUILD_CPPFLAGS} -test_libbitcoin_database_test_LDADD = src/libbitcoin-database.la ${boost_unit_test_framework_LIBS} ${bitcoin_system_LIBS} -test_libbitcoin_database_test_SOURCES = \ - test/error.cpp \ - test/main.cpp \ - test/settings.cpp \ - test/test.cpp \ - test/test.hpp \ - test/file/rotator.cpp \ - test/file/utilities.cpp \ - test/locks/file_lock.cpp \ - test/locks/flush_lock.cpp \ - test/locks/interprocess_lock.cpp \ - test/memory/accessor.cpp \ - test/memory/mmap.cpp \ - test/memory/utilities.cpp \ - test/mocks/blocks.cpp \ - test/mocks/blocks.hpp \ - test/mocks/chunk_storage.cpp \ - test/mocks/chunk_storage.hpp \ - test/mocks/chunk_store.hpp \ - test/mocks/map_store.hpp \ - test/primitives/arrayhead.cpp \ - test/primitives/arraymap.cpp \ - test/primitives/hashhead.cpp \ - test/primitives/hashmap.cpp \ - test/primitives/iterator.cpp \ - test/primitives/keys.cpp \ - test/primitives/linkage.cpp \ - test/primitives/manager.cpp \ - test/primitives/nohead.cpp \ - test/primitives/nomap.cpp \ - test/query/amounts.cpp \ - test/query/confirmed.cpp \ - test/query/extent.cpp \ - test/query/fee_rate.cpp \ - test/query/filters.cpp \ - test/query/height.cpp \ - test/query/initialize.cpp \ - test/query/locator.cpp \ - test/query/merkle.cpp \ - test/query/properties_block.cpp \ - test/query/properties_tx.cpp \ - test/query/sequences.cpp \ - test/query/sizes.cpp \ - test/query/address/address_balance.cpp \ - test/query/address/address_history.cpp \ - test/query/address/address_outpoints.cpp \ - test/query/address/address_unspent.cpp \ - test/query/archive/chain_reader.cpp \ - test/query/archive/chain_writer.cpp \ - test/query/archive/wire_reader.cpp \ - test/query/archive/wire_writer.cpp \ - test/query/batch/ecdsa.cpp \ - test/query/batch/prevalid.cpp \ - test/query/batch/schnorr.cpp \ - test/query/batch/silent.cpp \ - test/query/consensus/consensus_block.cpp \ - test/query/consensus/consensus_chain_state.cpp \ - test/query/consensus/consensus_compact.cpp \ - test/query/consensus/consensus_forks.cpp \ - test/query/consensus/consensus_populate.cpp \ - test/query/consensus/consensus_prevouts.cpp \ - test/query/consensus/consensus_states.cpp \ - test/query/consensus/consensus_strong.cpp \ - test/query/consensus/consensus_transaction.cpp \ - test/query/consensus/consensus_work.cpp \ - test/query/navigate/navigate_arraymap.cpp \ - test/query/navigate/navigate_forward.cpp \ - test/query/navigate/navigate_hashmap.cpp \ - test/query/navigate/navigate_natural.cpp \ - test/query/navigate/navigate_reverse.cpp \ - test/store/store.cpp \ - test/store/store_backup.cpp \ - test/store/store_close.cpp \ - test/store/store_create.cpp \ - test/store/store_dump.cpp \ - test/store/store_events.cpp \ - test/store/store_open.cpp \ - test/store/store_open_load.cpp \ - test/store/store_prune.cpp \ - test/store/store_reload.cpp \ - test/store/store_report.cpp \ - test/store/store_restore.cpp \ - test/store/store_snapshot.cpp \ - test/store/store_tables.cpp \ - test/store/store_unload_close.cpp \ - test/tables/archives/header.cpp \ - test/tables/archives/input.cpp \ - test/tables/archives/ins.cpp \ - test/tables/archives/output.cpp \ - test/tables/archives/outs.cpp \ - test/tables/archives/point.cpp \ - test/tables/archives/transaction.cpp \ - test/tables/archives/txs.cpp \ - test/tables/caches/duplicate.cpp \ - test/tables/caches/ecdsa.cpp \ - test/tables/caches/prevalid.cpp \ - test/tables/caches/prevout.cpp \ - test/tables/caches/schnorr.cpp \ - test/tables/caches/silent.cpp \ - test/tables/caches/validated_bk.cpp \ - test/tables/caches/validated_tx.cpp \ - test/tables/indexes/height.cpp \ - test/tables/indexes/strong_tx.cpp \ - test/tables/optional/address.cpp \ - test/tables/optional/filter_bk.cpp \ - test/tables/optional/filter_tx.cpp \ - test/types/history.cpp \ - test/types/span.cpp \ - test/types/unspent.cpp - -endif WITH_TESTS - -# local: tools/initchain/initchain -#------------------------------------------------------------------------------ -if WITH_TOOLS - -noinst_PROGRAMS = tools/initchain/initchain -tools_initchain_initchain_CPPFLAGS = -I${srcdir}/include ${bitcoin_system_BUILD_CPPFLAGS} -tools_initchain_initchain_LDADD = src/libbitcoin-database.la ${bitcoin_system_LIBS} -tools_initchain_initchain_SOURCES = \ - tools/initchain/initchain.cpp - -endif WITH_TOOLS - -# files => ${includedir}/bitcoin -#------------------------------------------------------------------------------ -include_bitcoindir = ${includedir}/bitcoin -include_bitcoin_HEADERS = \ - include/bitcoin/database.hpp - -include_bitcoin_databasedir = ${includedir}/bitcoin/database -include_bitcoin_database_HEADERS = \ - include/bitcoin/database/boost.hpp \ - include/bitcoin/database/define.hpp \ - include/bitcoin/database/error.hpp \ - include/bitcoin/database/query.hpp \ - include/bitcoin/database/settings.hpp \ - include/bitcoin/database/store.hpp \ - include/bitcoin/database/version.hpp - -include_bitcoin_database_filedir = ${includedir}/bitcoin/database/file -include_bitcoin_database_file_HEADERS = \ - include/bitcoin/database/file/file.hpp \ - include/bitcoin/database/file/rotator.hpp \ - include/bitcoin/database/file/utilities.hpp - -include_bitcoin_database_impl_memorydir = ${includedir}/bitcoin/database/impl/memory -include_bitcoin_database_impl_memory_HEADERS = \ - include/bitcoin/database/impl/memory/accessor.ipp \ - include/bitcoin/database/impl/memory/mmap.ipp \ - include/bitcoin/database/impl/memory/mmap_dispatch.ipp \ - include/bitcoin/database/impl/memory/mmap_private.ipp \ - include/bitcoin/database/impl/memory/mmap_storage.ipp - -include_bitcoin_database_impl_primitivesdir = ${includedir}/bitcoin/database/impl/primitives -include_bitcoin_database_impl_primitives_HEADERS = \ - include/bitcoin/database/impl/primitives/arrayhead.ipp \ - include/bitcoin/database/impl/primitives/arraymap.ipp \ - include/bitcoin/database/impl/primitives/hashhead.ipp \ - include/bitcoin/database/impl/primitives/hashmap.ipp \ - include/bitcoin/database/impl/primitives/iterator.ipp \ - include/bitcoin/database/impl/primitives/keys.ipp \ - include/bitcoin/database/impl/primitives/linkage.ipp \ - include/bitcoin/database/impl/primitives/manager.ipp \ - include/bitcoin/database/impl/primitives/nohead.ipp \ - include/bitcoin/database/impl/primitives/nomap.ipp - -include_bitcoin_database_impl_querydir = ${includedir}/bitcoin/database/impl/query -include_bitcoin_database_impl_query_HEADERS = \ - include/bitcoin/database/impl/query/amounts.ipp \ - include/bitcoin/database/impl/query/confirmed.ipp \ - include/bitcoin/database/impl/query/extent.ipp \ - include/bitcoin/database/impl/query/fee_rate.ipp \ - include/bitcoin/database/impl/query/filters.ipp \ - include/bitcoin/database/impl/query/height.ipp \ - include/bitcoin/database/impl/query/initialize.ipp \ - include/bitcoin/database/impl/query/locator.ipp \ - include/bitcoin/database/impl/query/merkle.ipp \ - include/bitcoin/database/impl/query/properties_block.ipp \ - include/bitcoin/database/impl/query/properties_tx.ipp \ - include/bitcoin/database/impl/query/query.ipp \ - include/bitcoin/database/impl/query/sequences.ipp \ - include/bitcoin/database/impl/query/sizes.ipp - -include_bitcoin_database_impl_query_addressdir = ${includedir}/bitcoin/database/impl/query/address -include_bitcoin_database_impl_query_address_HEADERS = \ - include/bitcoin/database/impl/query/address/address_balance.ipp \ - include/bitcoin/database/impl/query/address/address_history.ipp \ - include/bitcoin/database/impl/query/address/address_outpoints.ipp \ - include/bitcoin/database/impl/query/address/address_unspent.ipp - -include_bitcoin_database_impl_query_archivedir = ${includedir}/bitcoin/database/impl/query/archive -include_bitcoin_database_impl_query_archive_HEADERS = \ - include/bitcoin/database/impl/query/archive/chain_reader.ipp \ - include/bitcoin/database/impl/query/archive/chain_writer.ipp \ - include/bitcoin/database/impl/query/archive/wire_reader.ipp \ - include/bitcoin/database/impl/query/archive/wire_writer.ipp - -include_bitcoin_database_impl_query_batchdir = ${includedir}/bitcoin/database/impl/query/batch -include_bitcoin_database_impl_query_batch_HEADERS = \ - include/bitcoin/database/impl/query/batch/ecdsa.ipp \ - include/bitcoin/database/impl/query/batch/prevalid.ipp \ - include/bitcoin/database/impl/query/batch/schnorr.ipp \ - include/bitcoin/database/impl/query/batch/silent.ipp - -include_bitcoin_database_impl_query_consensusdir = ${includedir}/bitcoin/database/impl/query/consensus -include_bitcoin_database_impl_query_consensus_HEADERS = \ - include/bitcoin/database/impl/query/consensus/consensus_block.ipp \ - include/bitcoin/database/impl/query/consensus/consensus_chain_state.ipp \ - include/bitcoin/database/impl/query/consensus/consensus_compact.ipp \ - include/bitcoin/database/impl/query/consensus/consensus_forks.ipp \ - include/bitcoin/database/impl/query/consensus/consensus_populate.ipp \ - include/bitcoin/database/impl/query/consensus/consensus_prevouts.ipp \ - include/bitcoin/database/impl/query/consensus/consensus_states.ipp \ - include/bitcoin/database/impl/query/consensus/consensus_strong.ipp \ - include/bitcoin/database/impl/query/consensus/consensus_transaction.ipp \ - include/bitcoin/database/impl/query/consensus/consensus_work.ipp - -include_bitcoin_database_impl_query_navigatedir = ${includedir}/bitcoin/database/impl/query/navigate -include_bitcoin_database_impl_query_navigate_HEADERS = \ - include/bitcoin/database/impl/query/navigate/navigate_arraymap.ipp \ - include/bitcoin/database/impl/query/navigate/navigate_forward.ipp \ - include/bitcoin/database/impl/query/navigate/navigate_hashmap.ipp \ - include/bitcoin/database/impl/query/navigate/navigate_natural.ipp \ - include/bitcoin/database/impl/query/navigate/navigate_reverse.ipp - -include_bitcoin_database_impl_storedir = ${includedir}/bitcoin/database/impl/store -include_bitcoin_database_impl_store_HEADERS = \ - include/bitcoin/database/impl/store/store.ipp \ - include/bitcoin/database/impl/store/store_backup.ipp \ - include/bitcoin/database/impl/store/store_close.ipp \ - include/bitcoin/database/impl/store/store_create.ipp \ - include/bitcoin/database/impl/store/store_dump.ipp \ - include/bitcoin/database/impl/store/store_events.ipp \ - include/bitcoin/database/impl/store/store_open.ipp \ - include/bitcoin/database/impl/store/store_open_load.ipp \ - include/bitcoin/database/impl/store/store_prune.ipp \ - include/bitcoin/database/impl/store/store_reload.ipp \ - include/bitcoin/database/impl/store/store_report.ipp \ - include/bitcoin/database/impl/store/store_restore.ipp \ - include/bitcoin/database/impl/store/store_snapshot.ipp \ - include/bitcoin/database/impl/store/store_tables.ipp \ - include/bitcoin/database/impl/store/store_unload_close.ipp - -include_bitcoin_database_locksdir = ${includedir}/bitcoin/database/locks -include_bitcoin_database_locks_HEADERS = \ - include/bitcoin/database/locks/file_lock.hpp \ - include/bitcoin/database/locks/flush_lock.hpp \ - include/bitcoin/database/locks/interprocess_lock.hpp \ - include/bitcoin/database/locks/locks.hpp - -include_bitcoin_database_memorydir = ${includedir}/bitcoin/database/memory -include_bitcoin_database_memory_HEADERS = \ - include/bitcoin/database/memory/accessor.hpp \ - include/bitcoin/database/memory/finalizer.hpp \ - include/bitcoin/database/memory/maps.hpp \ - include/bitcoin/database/memory/memory.hpp \ - include/bitcoin/database/memory/mman.hpp \ - include/bitcoin/database/memory/mmap.hpp \ - include/bitcoin/database/memory/reader.hpp \ - include/bitcoin/database/memory/streamers.hpp \ - include/bitcoin/database/memory/utilities.hpp - -include_bitcoin_database_memory_interfacesdir = ${includedir}/bitcoin/database/memory/interfaces -include_bitcoin_database_memory_interfaces_HEADERS = \ - include/bitcoin/database/memory/interfaces/memory.hpp \ - include/bitcoin/database/memory/interfaces/storage.hpp - -include_bitcoin_database_primitivesdir = ${includedir}/bitcoin/database/primitives -include_bitcoin_database_primitives_HEADERS = \ - include/bitcoin/database/primitives/arrayhead.hpp \ - include/bitcoin/database/primitives/arraymap.hpp \ - include/bitcoin/database/primitives/hashhead.hpp \ - include/bitcoin/database/primitives/hashmap.hpp \ - include/bitcoin/database/primitives/iterator.hpp \ - include/bitcoin/database/primitives/keys.hpp \ - include/bitcoin/database/primitives/linkage.hpp \ - include/bitcoin/database/primitives/manager.hpp \ - include/bitcoin/database/primitives/nohead.hpp \ - include/bitcoin/database/primitives/nomap.hpp \ - include/bitcoin/database/primitives/nomaps.hpp \ - include/bitcoin/database/primitives/primitives.hpp - -include_bitcoin_database_tablesdir = ${includedir}/bitcoin/database/tables -include_bitcoin_database_tables_HEADERS = \ - include/bitcoin/database/tables/context.hpp \ - include/bitcoin/database/tables/event.hpp \ - include/bitcoin/database/tables/names.hpp \ - include/bitcoin/database/tables/schema.hpp \ - include/bitcoin/database/tables/table.hpp \ - include/bitcoin/database/tables/tables.hpp - -include_bitcoin_database_tables_archivesdir = ${includedir}/bitcoin/database/tables/archives -include_bitcoin_database_tables_archives_HEADERS = \ - include/bitcoin/database/tables/archives/header.hpp \ - include/bitcoin/database/tables/archives/input.hpp \ - include/bitcoin/database/tables/archives/ins.hpp \ - include/bitcoin/database/tables/archives/output.hpp \ - include/bitcoin/database/tables/archives/outs.hpp \ - include/bitcoin/database/tables/archives/point.hpp \ - include/bitcoin/database/tables/archives/transaction.hpp \ - include/bitcoin/database/tables/archives/txs.hpp - -include_bitcoin_database_tables_cachesdir = ${includedir}/bitcoin/database/tables/caches -include_bitcoin_database_tables_caches_HEADERS = \ - include/bitcoin/database/tables/caches/duplicate.hpp \ - include/bitcoin/database/tables/caches/ecdsa.hpp \ - include/bitcoin/database/tables/caches/prevalid.hpp \ - include/bitcoin/database/tables/caches/prevout.hpp \ - include/bitcoin/database/tables/caches/schnorr.hpp \ - include/bitcoin/database/tables/caches/silent.hpp \ - include/bitcoin/database/tables/caches/validated_bk.hpp \ - include/bitcoin/database/tables/caches/validated_tx.hpp - -include_bitcoin_database_tables_indexesdir = ${includedir}/bitcoin/database/tables/indexes -include_bitcoin_database_tables_indexes_HEADERS = \ - include/bitcoin/database/tables/indexes/height.hpp \ - include/bitcoin/database/tables/indexes/strong_tx.hpp - -include_bitcoin_database_tables_optionalsdir = ${includedir}/bitcoin/database/tables/optionals -include_bitcoin_database_tables_optionals_HEADERS = \ - include/bitcoin/database/tables/optionals/address.hpp \ - include/bitcoin/database/tables/optionals/filter_bk.hpp \ - include/bitcoin/database/tables/optionals/filter_tx.hpp - -include_bitcoin_database_typesdir = ${includedir}/bitcoin/database/types -include_bitcoin_database_types_HEADERS = \ - include/bitcoin/database/types/association.hpp \ - include/bitcoin/database/types/associations.hpp \ - include/bitcoin/database/types/block_state.hpp \ - include/bitcoin/database/types/fee_rate.hpp \ - include/bitcoin/database/types/header_state.hpp \ - include/bitcoin/database/types/history.hpp \ - include/bitcoin/database/types/multisig_view.hpp \ - include/bitcoin/database/types/point_set.hpp \ - include/bitcoin/database/types/position.hpp \ - include/bitcoin/database/types/span.hpp \ - include/bitcoin/database/types/tx_state.hpp \ - include/bitcoin/database/types/type.hpp \ - include/bitcoin/database/types/types.hpp \ - include/bitcoin/database/types/unspent.hpp - - -# Custom make targets. -#============================================================================== -# make target: tools -#------------------------------------------------------------------------------ -target_tools = \ - tools/initchain/initchain - -tools: ${target_tools} - diff --git a/builds/cmake/CMakeLists.txt b/builds/cmake/CMakeLists.txt index d92acc2e4..4aed68fb7 100644 --- a/builds/cmake/CMakeLists.txt +++ b/builds/cmake/CMakeLists.txt @@ -71,13 +71,12 @@ endif() #------------------------------------------------------------------------------ # Project options. #------------------------------------------------------------------------------ -option( with-tests "Build tests." ON ) -option( with-tools "Build tools." ON ) +option( with-tests "Compile with unit tests." ON ) +option( with-tools "Compile with tools." ON ) #------------------------------------------------------------------------------ # Dependencies. #------------------------------------------------------------------------------ - if ( BUILD_SHARED_LIBS ) set( libbitcoin-system_USE_STATIC_LIBS "OFF" ) set( Boost_USE_STATIC_LIBS "OFF" ) @@ -96,7 +95,6 @@ find_package( Boost 1.86.0 REQUIRED #------------------------------------------------------------------------------ # Compiler options. #------------------------------------------------------------------------------ - include(CheckCCompilerFlag) include(CheckCXXCompilerFlag) include(CheckCXXSourceCompiles) @@ -168,13 +166,8 @@ endif() #------------------------------------------------------------------------------ # Linker options. #------------------------------------------------------------------------------ - include(CheckLinkerFlag) -#------------------------------------------------------------------------------ -# Configurable file(s). -#------------------------------------------------------------------------------ - #------------------------------------------------------------------------------ # libbitcoin-database library #------------------------------------------------------------------------------ @@ -196,7 +189,7 @@ target_compile_options( libbitcoin-database $<$:-Wno-comment> $<$:-Wno-deprecated-copy> $<$:-Wno-mismatched-tags> - -fstack-protector-all + $<$:-fstack-protector-all> ) file( GLOB_RECURSE libbitcoin_database_HEADERS CONFIGURE_DEPENDS @@ -275,7 +268,7 @@ if ( with-tests ) $<$:-Wno-mismatched-tags> $<$:-Wno-long-long> $<$:-fno-var-tracking-assignments> - -fstack-protector-all + $<$:-fstack-protector-all> ) file( GLOB_RECURSE libbitcoin_database_test_SOURCES CONFIGURE_DEPENDS @@ -325,7 +318,7 @@ if ( with-tools ) $<$:-Wno-mismatched-tags> $<$:-Wno-long-long> $<$:-fno-var-tracking-assignments> - -fstack-protector-all + $<$:-fstack-protector-all> ) file( GLOB_RECURSE libbitcoin_database_tools_SOURCES CONFIGURE_DEPENDS @@ -350,6 +343,7 @@ if ( with-tools ) OUTPUT_NAME initchain ) endif() + #------------------------------------------------------------------------------ # Installation routine. #------------------------------------------------------------------------------ diff --git a/builds/cmake/install-cmake.sh b/builds/cmake/install-cmake.sh index 7b9083eec..31eb60046 100755 --- a/builds/cmake/install-cmake.sh +++ b/builds/cmake/install-cmake.sh @@ -16,9 +16,9 @@ # Default: OFF # -Denable-shani= Use Intel/ARM SHA Extensions. # Default: OFF -# -Dwith-ultrafast= Use shrec/UltrafastSecp256k1. +# -Dwith-ultrafast= Use shrec/UltrafastSecp256k1 library. # Default: OFF -# -Dwith-secp256k1= Use bitcoin-core/secp256k1. +# -Dwith-secp256k1= Use bitcoin-core/secp256k1 library. # Default: ON # --build-boost Build Boost libraries # --build-secp256k1 Build libsecp256k1 libraries @@ -484,10 +484,10 @@ main() source_github "${secp256k1_OWNER}" "secp256k1" "${secp256k1_TAG}" local SAVE_CPPFLAGS="${CPPFLAGS}" export CPPFLAGS="${CPPFLAGS} ${secp256k1_FLAGS[@]}" - build_cmake "secp256k1" "." "${PARALLEL}" "${secp256k1_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" - install_cmake "secp256k1" + build_cmake "secp256k1" "." "." "${PARALLEL}" "${secp256k1_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" + install_cmake "secp256k1" "." if [[ "${BUILD_POST_INSTALL_CLEAN}" == "yes" ]]; then - clean_cmake "secp256k1" + clean_cmake "secp256k1" "." fi export CPPFLAGS="${SAVE_CPPFLAGS}" fi @@ -496,10 +496,10 @@ main() source_github "${UltrafastSecp256k1_OWNER}" "UltrafastSecp256k1" "${UltrafastSecp256k1_TAG}" local SAVE_CPPFLAGS="${CPPFLAGS}" export CPPFLAGS="${CPPFLAGS} ${UltrafastSecp256k1_FLAGS[@]}" - build_cmake "UltrafastSecp256k1" "." "${PARALLEL}" "${UltrafastSecp256k1_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" - install_cmake "UltrafastSecp256k1" + build_cmake "UltrafastSecp256k1" "." "." "${PARALLEL}" "${UltrafastSecp256k1_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" + install_cmake "UltrafastSecp256k1" "." if [[ "${BUILD_POST_INSTALL_CLEAN}" == "yes" ]]; then - clean_cmake "UltrafastSecp256k1" + clean_cmake "UltrafastSecp256k1" "." fi export CPPFLAGS="${SAVE_CPPFLAGS}" fi @@ -507,23 +507,23 @@ main() source_github "${libbitcoin_system_OWNER}" "libbitcoin-system" "${libbitcoin_system_TAG}" local SAVE_CPPFLAGS="${CPPFLAGS}" export CPPFLAGS="${CPPFLAGS} ${libbitcoin_system_FLAGS[@]}" - build_cmake "libbitcoin-system" "builds/cmake" "${PARALLEL}" "${libbitcoin_system_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" - install_cmake "libbitcoin-system" + build_cmake "libbitcoin-system" "builds/cmake" "." "${PARALLEL}" "${libbitcoin_system_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" + install_cmake "libbitcoin-system" "." if [[ "${BUILD_POST_INSTALL_CLEAN}" == "yes" ]]; then - clean_cmake "libbitcoin-system" + clean_cmake "libbitcoin-system" "." fi export CPPFLAGS="${SAVE_CPPFLAGS}" source_github "${libbitcoin_database_OWNER}" "libbitcoin-database" "${libbitcoin_database_TAG}" local SAVE_CPPFLAGS="${CPPFLAGS}" export CPPFLAGS="${CPPFLAGS} ${libbitcoin_database_FLAGS[@]}" - build_cmake "libbitcoin-database" "builds/cmake" "${PARALLEL}" "${libbitcoin_database_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" + build_cmake "libbitcoin-database" "builds/cmake" "." "${PARALLEL}" "${libbitcoin_database_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" if ! [[ "${BUILD_SKIP_TESTS}" == "yes" ]]; then - test_cmake "libbitcoin-database" "${PARALLEL}" + test_cmake "libbitcoin-database" "." "${PARALLEL}" fi - install_cmake "libbitcoin-database" + install_cmake "libbitcoin-database" "." if [[ "${BUILD_POST_INSTALL_CLEAN}" == "yes" ]]; then - clean_cmake "libbitcoin-database" + clean_cmake "libbitcoin-database" "." fi export CPPFLAGS="${SAVE_CPPFLAGS}" @@ -741,9 +741,10 @@ build_boost() build_cmake() { local PROJECT="$1" - local RELATIVE_PATH="$2" - local JOBS="$3" - shift 3 + local RELATIVE_SRC_PATH="$2" + local RELATIVE_OBJ_PATH="$3" + local JOBS="$4" + shift 4 local VERBOSITY_CMAKE="" local VERBOSITY_MAKE="" @@ -758,7 +759,7 @@ build_cmake() # directory rationalization push_directory "${BUILD_SRC_DIR}/${PROJECT}" - push_directory "${RELATIVE_PATH}" + push_directory "${RELATIVE_SRC_PATH}" local BUILD_PATH="$(pwd)" pop_directory @@ -772,9 +773,14 @@ build_cmake() push_directory "${BUILD_OBJ_DIR}/${PROJECT}" fi + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + create_directory_force "${RELATIVE_OBJ_PATH}" + push_directory "${RELATIVE_OBJ_PATH}" + fi + display_configure_options "$@" - cmake ${VERBOSITY_CMAKE} -LA "$@" "${BUILD_SRC_DIR}/${PROJECT}/${RELATIVE_PATH}" + cmake ${VERBOSITY_CMAKE} -LA "$@" "${BUILD_SRC_DIR}/${PROJECT}/${RELATIVE_SRC_PATH}" # make if [[ ${JOBS} -gt ${SEQUENTIAL} ]]; then @@ -785,6 +791,10 @@ build_cmake() pop_directory # BUILD_OBJ_DIR pop_directory # BUILD_SRC_DIR/PROJECT + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + pop_directory + fi + msg_success "'${PROJECT}' built successfully." } @@ -792,7 +802,8 @@ build_cmake() clean_cmake() { local PROJECT="$1" - shift 1 + local RELATIVE_OBJ_PATH="$2" + shift 2 msg "Preparing to clean ${PROJECT}" @@ -804,6 +815,10 @@ clean_cmake() push_directory "${BUILD_OBJ_DIR}/${PROJECT}" fi + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + push_directory "${RELATIVE_OBJ_PATH}" + fi + disable_exit_on_error cmake --build . --target clean @@ -817,6 +832,9 @@ clean_cmake() pop_directory # BUILD_OBJ_DIR pop_directory # BUILD_SRC_DIR/PROJECT + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + pop_directory + fi msg_success "'${PROJECT}' clean complete." } @@ -824,7 +842,8 @@ clean_cmake() install_cmake() { local PROJECT="$1" - shift + local RELATIVE_OBJ_PATH="$2" + shift 2 msg "Preparing to install ${PROJECT}" @@ -836,6 +855,10 @@ install_cmake() push_directory "${BUILD_OBJ_DIR}/${PROJECT}" fi + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + push_directory "${RELATIVE_OBJ_PATH}" + fi + cmake --install . if [[ ${OS} == Linux ]] && [[ "${PREFIX}" == "/usr/local" ]]; then @@ -844,6 +867,9 @@ install_cmake() pop_directory # BUILD_OBJ_DIR pop_directory # BUILD_SRC_DIR/PROJECT + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + pop_directory + fi msg_success "'${PROJECT}' installation complete." } @@ -851,8 +877,9 @@ install_cmake() test_cmake() { local PROJECT="$1" - local JOBS="$2" - shift 2 + local RELATIVE_OBJ_PATH="$2" + local JOBS="$3" + shift 3 msg "Preparing to test ${PROJECT}" @@ -864,6 +891,10 @@ test_cmake() push_directory "${BUILD_OBJ_DIR}/${PROJECT}" fi + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + push_directory "${RELATIVE_OBJ_PATH}" + fi + disable_exit_on_error ctest --test-dir . @@ -891,6 +922,9 @@ test_cmake() pop_directory # BUILD_OBJ_DIR pop_directory # BUILD_SRC_DIR/PROJECT + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + pop_directory + fi msg_success "'${PROJECT}' test complete." } @@ -967,9 +1001,9 @@ help() msg " Default: OFF" msg "-Denable-shani= Use Intel/ARM SHA Extensions." msg " Default: OFF" - msg "-Dwith-ultrafast= Use shrec/UltrafastSecp256k1." + msg "-Dwith-ultrafast= Use shrec/UltrafastSecp256k1 library." msg " Default: OFF" - msg "-Dwith-secp256k1= Use bitcoin-core/secp256k1." + msg "-Dwith-secp256k1= Use bitcoin-core/secp256k1 library." msg " Default: ON" msg "--build-boost Build Boost libraries" msg "--build-secp256k1 Build libsecp256k1 libraries" diff --git a/builds/cmake/install-presets.sh b/builds/cmake/install-presets.sh index 1127d7b69..a16a2dbc5 100755 --- a/builds/cmake/install-presets.sh +++ b/builds/cmake/install-presets.sh @@ -16,9 +16,9 @@ # Default: OFF # -Denable-shani= Use Intel/ARM SHA Extensions. # Default: OFF -# -Dwith-ultrafast= Use shrec/UltrafastSecp256k1. +# -Dwith-ultrafast= Use shrec/UltrafastSecp256k1 library. # Default: OFF -# -Dwith-secp256k1= Use bitcoin-core/secp256k1. +# -Dwith-secp256k1= Use bitcoin-core/secp256k1 library. # Default: ON # --build-boost Build Boost libraries # --build-secp256k1 Build libsecp256k1 libraries @@ -500,10 +500,10 @@ main() source_github "${secp256k1_OWNER}" "secp256k1" "${secp256k1_TAG}" local SAVE_CPPFLAGS="${CPPFLAGS}" export CPPFLAGS="${CPPFLAGS} ${secp256k1_FLAGS[@]}" - build_cmake "secp256k1" "." "${PARALLEL}" "${secp256k1_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" - install_cmake "secp256k1" + build_cmake "secp256k1" "." "." "${PARALLEL}" "${secp256k1_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" + install_cmake "secp256k1" "." if [[ "${BUILD_POST_INSTALL_CLEAN}" == "yes" ]]; then - clean_cmake "secp256k1" + clean_cmake "secp256k1" "." fi export CPPFLAGS="${SAVE_CPPFLAGS}" fi @@ -512,10 +512,10 @@ main() source_github "${UltrafastSecp256k1_OWNER}" "UltrafastSecp256k1" "${UltrafastSecp256k1_TAG}" local SAVE_CPPFLAGS="${CPPFLAGS}" export CPPFLAGS="${CPPFLAGS} ${UltrafastSecp256k1_FLAGS[@]}" - build_cmake "UltrafastSecp256k1" "." "${PARALLEL}" "${UltrafastSecp256k1_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" - install_cmake "UltrafastSecp256k1" + build_cmake "UltrafastSecp256k1" "." "." "${PARALLEL}" "${UltrafastSecp256k1_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" + install_cmake "UltrafastSecp256k1" "." if [[ "${BUILD_POST_INSTALL_CLEAN}" == "yes" ]]; then - clean_cmake "UltrafastSecp256k1" + clean_cmake "UltrafastSecp256k1" "." fi export CPPFLAGS="${SAVE_CPPFLAGS}" fi @@ -523,23 +523,23 @@ main() source_github "${libbitcoin_system_OWNER}" "libbitcoin-system" "${libbitcoin_system_TAG}" local SAVE_CPPFLAGS="${CPPFLAGS}" export CPPFLAGS="${CPPFLAGS} ${libbitcoin_system_FLAGS[@]}" - build_preset "libbitcoin-system" "builds/cmake" "${PARALLEL}" "${libbitcoin_system_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" - install_cmake "libbitcoin-system" + build_preset "libbitcoin-system" "builds/cmake" "." "${PARALLEL}" "${libbitcoin_system_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" + install_cmake "libbitcoin-system" "." if [[ "${BUILD_POST_INSTALL_CLEAN}" == "yes" ]]; then - clean_cmake "libbitcoin-system" + clean_cmake "libbitcoin-system" "." fi export CPPFLAGS="${SAVE_CPPFLAGS}" source_github "${libbitcoin_database_OWNER}" "libbitcoin-database" "${libbitcoin_database_TAG}" local SAVE_CPPFLAGS="${CPPFLAGS}" export CPPFLAGS="${CPPFLAGS} ${libbitcoin_database_FLAGS[@]}" - build_preset "libbitcoin-database" "builds/cmake" "${PARALLEL}" "${libbitcoin_database_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" + build_preset "libbitcoin-database" "builds/cmake" "." "${PARALLEL}" "${libbitcoin_database_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" if ! [[ "${BUILD_SKIP_TESTS}" == "yes" ]]; then - test_cmake "libbitcoin-database" "test" "${PARALLEL}" + test_cmake "libbitcoin-database" "." "${PARALLEL}" fi - install_cmake "libbitcoin-database" + install_cmake "libbitcoin-database" "." if [[ "${BUILD_POST_INSTALL_CLEAN}" == "yes" ]]; then - clean_cmake "libbitcoin-database" + clean_cmake "libbitcoin-database" "." fi export CPPFLAGS="${SAVE_CPPFLAGS}" @@ -757,9 +757,10 @@ build_boost() build_cmake() { local PROJECT="$1" - local RELATIVE_PATH="$2" - local JOBS="$3" - shift 3 + local RELATIVE_SRC_PATH="$2" + local RELATIVE_OBJ_PATH="$3" + local JOBS="$4" + shift 4 local VERBOSITY_CMAKE="" local VERBOSITY_MAKE="" @@ -774,7 +775,7 @@ build_cmake() # directory rationalization push_directory "${BUILD_SRC_DIR}/${PROJECT}" - push_directory "${RELATIVE_PATH}" + push_directory "${RELATIVE_SRC_PATH}" local BUILD_PATH="$(pwd)" pop_directory @@ -788,9 +789,14 @@ build_cmake() push_directory "${BUILD_OBJ_DIR}/${PROJECT}" fi + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + create_directory_force "${RELATIVE_OBJ_PATH}" + push_directory "${RELATIVE_OBJ_PATH}" + fi + display_configure_options "$@" - cmake ${VERBOSITY_CMAKE} -LA "$@" "${BUILD_SRC_DIR}/${PROJECT}/${RELATIVE_PATH}" + cmake ${VERBOSITY_CMAKE} -LA "$@" "${BUILD_SRC_DIR}/${PROJECT}/${RELATIVE_SRC_PATH}" # make if [[ ${JOBS} -gt ${SEQUENTIAL} ]]; then @@ -801,6 +807,10 @@ build_cmake() pop_directory # BUILD_OBJ_DIR pop_directory # BUILD_SRC_DIR/PROJECT + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + pop_directory + fi + msg_success "'${PROJECT}' built successfully." } @@ -808,9 +818,10 @@ build_cmake() build_preset() { local PROJECT="$1" - local RELATIVE_PATH="$2" - local JOBS="$3" - shift 3 + local RELATIVE_SRC_PATH="$2" + local RELATIVE_OBJ_PATH="$3" + local JOBS="$4" + shift 4 local VERBOSITY_CMAKE="" local VERBOSITY_MAKE="" @@ -825,7 +836,7 @@ build_preset() # directory rationalization push_directory "${BUILD_SRC_DIR}/${PROJECT}" - push_directory "${RELATIVE_PATH}" + push_directory "${RELATIVE_SRC_PATH}" local BUILD_PATH="$(pwd)" pop_directory @@ -839,9 +850,14 @@ build_preset() push_directory "${BUILD_OBJ_DIR}/${PROJECT}" fi + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + create_directory_force "${RELATIVE_OBJ_PATH}" + push_directory "${RELATIVE_OBJ_PATH}" + fi + display_configure_options "$@" - cmake ${VERBOSITY_CMAKE} -LA --preset="${BUILD_PRESET}" "$@" "${BUILD_SRC_DIR}/${PROJECT}/${RELATIVE_PATH}" + cmake ${VERBOSITY_CMAKE} -LA --preset="${BUILD_PRESET}" "$@" "${BUILD_SRC_DIR}/${PROJECT}/${RELATIVE_SRC_PATH}" # make if [[ ${JOBS} -gt ${SEQUENTIAL} ]]; then @@ -852,6 +868,10 @@ build_preset() pop_directory # BUILD_OBJ_DIR pop_directory # BUILD_SRC_DIR/PROJECT + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + pop_directory + fi + msg_success "'${PROJECT}' built successfully." } @@ -859,7 +879,8 @@ build_preset() clean_cmake() { local PROJECT="$1" - shift 1 + local RELATIVE_OBJ_PATH="$2" + shift 2 msg "Preparing to clean ${PROJECT}" @@ -871,6 +892,10 @@ clean_cmake() push_directory "${BUILD_OBJ_DIR}/${PROJECT}" fi + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + push_directory "${RELATIVE_OBJ_PATH}" + fi + disable_exit_on_error cmake --build . --target clean @@ -884,6 +909,9 @@ clean_cmake() pop_directory # BUILD_OBJ_DIR pop_directory # BUILD_SRC_DIR/PROJECT + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + pop_directory + fi msg_success "'${PROJECT}' clean complete." } @@ -891,7 +919,8 @@ clean_cmake() install_cmake() { local PROJECT="$1" - shift + local RELATIVE_OBJ_PATH="$2" + shift 2 msg "Preparing to install ${PROJECT}" @@ -903,6 +932,10 @@ install_cmake() push_directory "${BUILD_OBJ_DIR}/${PROJECT}" fi + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + push_directory "${RELATIVE_OBJ_PATH}" + fi + cmake --install . if [[ ${OS} == Linux ]] && [[ "${PREFIX}" == "/usr/local" ]]; then @@ -911,6 +944,9 @@ install_cmake() pop_directory # BUILD_OBJ_DIR pop_directory # BUILD_SRC_DIR/PROJECT + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + pop_directory + fi msg_success "'${PROJECT}' installation complete." } @@ -918,8 +954,9 @@ install_cmake() test_cmake() { local PROJECT="$1" - local JOBS="$2" - shift 2 + local RELATIVE_OBJ_PATH="$2" + local JOBS="$3" + shift 3 msg "Preparing to test ${PROJECT}" @@ -931,6 +968,10 @@ test_cmake() push_directory "${BUILD_OBJ_DIR}/${PROJECT}" fi + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + push_directory "${RELATIVE_OBJ_PATH}" + fi + disable_exit_on_error ctest --test-dir . @@ -958,6 +999,9 @@ test_cmake() pop_directory # BUILD_OBJ_DIR pop_directory # BUILD_SRC_DIR/PROJECT + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + pop_directory + fi msg_success "'${PROJECT}' test complete." } @@ -1035,9 +1079,9 @@ help() msg " Default: OFF" msg "-Denable-shani= Use Intel/ARM SHA Extensions." msg " Default: OFF" - msg "-Dwith-ultrafast= Use shrec/UltrafastSecp256k1." + msg "-Dwith-ultrafast= Use shrec/UltrafastSecp256k1 library." msg " Default: OFF" - msg "-Dwith-secp256k1= Use bitcoin-core/secp256k1." + msg "-Dwith-secp256k1= Use bitcoin-core/secp256k1 library." msg " Default: ON" msg "--build-boost Build Boost libraries" msg "--build-secp256k1 Build libsecp256k1 libraries" diff --git a/AUTHORS b/builds/gnu/AUTHORS similarity index 100% rename from AUTHORS rename to builds/gnu/AUTHORS diff --git a/COPYING b/builds/gnu/COPYING similarity index 100% rename from COPYING rename to builds/gnu/COPYING diff --git a/ChangeLog b/builds/gnu/ChangeLog similarity index 100% rename from ChangeLog rename to builds/gnu/ChangeLog diff --git a/INSTALL b/builds/gnu/INSTALL similarity index 100% rename from INSTALL rename to builds/gnu/INSTALL diff --git a/builds/gnu/Makefile.am b/builds/gnu/Makefile.am new file mode 100644 index 000000000..f1c08fb27 --- /dev/null +++ b/builds/gnu/Makefile.am @@ -0,0 +1,482 @@ +############################################################################### +# Copyright (c) 2014-2026 libbitcoin-database developers (see COPYING). +# +# GENERATED SOURCE CODE, DO NOT EDIT EXCEPT EXPERIMENTALLY +# +############################################################################### + +# Automake settings. +#============================================================================== +# Look for macros in the 'm4' subdirectory. +#------------------------------------------------------------------------------ +ACLOCAL_AMFLAGS = -I m4 + +# Distribute data. +#============================================================================== +# files => ${pkgconfigdir} +#------------------------------------------------------------------------------ +pkgconfig_DATA = \ + libbitcoin-database.pc + +# files => ${docdir} +#------------------------------------------------------------------------------ +doc_DATA = \ + AUTHORS \ + COPYING \ + ChangeLog \ + INSTALL \ + NEWS \ + README + +# Libraries. +#============================================================================== +# Target library 'src/libbitcoin-database.la' +#------------------------------------------------------------------------------ +lib_LTLIBRARIES = src/libbitcoin-database.la + +src_libbitcoin_database_la_LIBS = src/libbitcoin-database.la + +src_libbitcoin_database_la_CPPFLAGS = \ + -I${srcdir}/../../include \ + ${libbitcoin_system_BUILD_CPPFLAGS} + +src_libbitcoin_database_la_LDFLAGS = \ + ${libbitcoin_system_LDFLAGS} + +src_libbitcoin_database_la_LIBADD = \ + ${libbitcoin_system_LIBS} + +src_libbitcoin_database_la_SOURCES = \ + ${srcdir}/../../src/define.cpp \ + ${srcdir}/../../src/error.cpp \ + ${srcdir}/../../src/settings.cpp \ + ${srcdir}/../../src/file/rotator.cpp \ + ${srcdir}/../../src/file/utilities.cpp \ + ${srcdir}/../../src/locks/file_lock.cpp \ + ${srcdir}/../../src/locks/flush_lock.cpp \ + ${srcdir}/../../src/locks/interprocess_lock.cpp \ + ${srcdir}/../../src/memory/mman.cpp \ + ${srcdir}/../../src/memory/utilities.cpp \ + ${srcdir}/../../src/types/history.cpp \ + ${srcdir}/../../src/types/multisig_view.cpp \ + ${srcdir}/../../src/types/unspent.cpp + +include_bitcoindir = \ + ${includedir}/bitcoin + +include_bitcoin_HEADERS = \ + ${srcdir}/../../include/bitcoin/database.hpp + +include_bitcoin_databasedir = \ + ${includedir}/bitcoin/database + +include_bitcoin_database_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/boost.hpp \ + ${srcdir}/../../include/bitcoin/database/define.hpp \ + ${srcdir}/../../include/bitcoin/database/error.hpp \ + ${srcdir}/../../include/bitcoin/database/query.hpp \ + ${srcdir}/../../include/bitcoin/database/settings.hpp \ + ${srcdir}/../../include/bitcoin/database/store.hpp \ + ${srcdir}/../../include/bitcoin/database/version.hpp + +include_bitcoin_database_filedir = \ + ${includedir}/bitcoin/database/file + +include_bitcoin_database_file_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/file/file.hpp \ + ${srcdir}/../../include/bitcoin/database/file/rotator.hpp \ + ${srcdir}/../../include/bitcoin/database/file/utilities.hpp + +include_bitcoin_database_impl_memorydir = \ + ${includedir}/bitcoin/database/impl/memory + +include_bitcoin_database_impl_memory_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/impl/memory/accessor.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/memory/mmap.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/memory/mmap_dispatch.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/memory/mmap_private.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/memory/mmap_storage.ipp + +include_bitcoin_database_impl_primitivesdir = \ + ${includedir}/bitcoin/database/impl/primitives + +include_bitcoin_database_impl_primitives_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/impl/primitives/arrayhead.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/primitives/arraymap.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/primitives/hashhead.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/primitives/hashmap.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/primitives/iterator.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/primitives/keys.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/primitives/linkage.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/primitives/manager.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/primitives/nohead.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/primitives/nomap.ipp + +include_bitcoin_database_impl_querydir = \ + ${includedir}/bitcoin/database/impl/query + +include_bitcoin_database_impl_query_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/impl/query/amounts.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/confirmed.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/extent.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/fee_rate.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/filters.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/height.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/initialize.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/locator.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/merkle.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/properties_block.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/properties_tx.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/query.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/sequences.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/sizes.ipp + +include_bitcoin_database_impl_query_addressdir = \ + ${includedir}/bitcoin/database/impl/query/address + +include_bitcoin_database_impl_query_address_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/impl/query/address/address_balance.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/address/address_history.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/address/address_outpoints.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/address/address_unspent.ipp + +include_bitcoin_database_impl_query_archivedir = \ + ${includedir}/bitcoin/database/impl/query/archive + +include_bitcoin_database_impl_query_archive_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/impl/query/archive/chain_reader.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/archive/chain_writer.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/archive/wire_reader.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/archive/wire_writer.ipp + +include_bitcoin_database_impl_query_consensusdir = \ + ${includedir}/bitcoin/database/impl/query/consensus + +include_bitcoin_database_impl_query_consensus_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/impl/query/consensus/consensus_block.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/consensus/consensus_chain_state.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/consensus/consensus_compact.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/consensus/consensus_forks.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/consensus/consensus_populate.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/consensus/consensus_prevouts.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/consensus/consensus_states.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/consensus/consensus_strong.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/consensus/consensus_transaction.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/consensus/consensus_work.ipp + +include_bitcoin_database_impl_query_navigatedir = \ + ${includedir}/bitcoin/database/impl/query/navigate + +include_bitcoin_database_impl_query_navigate_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/impl/query/navigate/navigate_arraymap.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/navigate/navigate_forward.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/navigate/navigate_hashmap.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/navigate/navigate_natural.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/navigate/navigate_reverse.ipp + +include_bitcoin_database_impl_query_batchdir = \ + ${includedir}/bitcoin/database/impl/query/batch + +include_bitcoin_database_impl_query_batch_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/impl/query/batch/ecdsa.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/batch/prevalid.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/batch/schnorr.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/query/batch/silent.ipp + +include_bitcoin_database_impl_storedir = \ + ${includedir}/bitcoin/database/impl/store + +include_bitcoin_database_impl_store_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/impl/store/store.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/store/store_backup.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/store/store_close.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/store/store_create.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/store/store_dump.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/store/store_events.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/store/store_open.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/store/store_open_load.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/store/store_prune.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/store/store_reload.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/store/store_report.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/store/store_restore.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/store/store_snapshot.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/store/store_tables.ipp \ + ${srcdir}/../../include/bitcoin/database/impl/store/store_unload_close.ipp + +include_bitcoin_database_locksdir = \ + ${includedir}/bitcoin/database/locks + +include_bitcoin_database_locks_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/locks/file_lock.hpp \ + ${srcdir}/../../include/bitcoin/database/locks/flush_lock.hpp \ + ${srcdir}/../../include/bitcoin/database/locks/interprocess_lock.hpp \ + ${srcdir}/../../include/bitcoin/database/locks/locks.hpp + +include_bitcoin_database_memorydir = \ + ${includedir}/bitcoin/database/memory + +include_bitcoin_database_memory_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/memory/accessor.hpp \ + ${srcdir}/../../include/bitcoin/database/memory/finalizer.hpp \ + ${srcdir}/../../include/bitcoin/database/memory/maps.hpp \ + ${srcdir}/../../include/bitcoin/database/memory/memory.hpp \ + ${srcdir}/../../include/bitcoin/database/memory/mman.hpp \ + ${srcdir}/../../include/bitcoin/database/memory/mmap.hpp \ + ${srcdir}/../../include/bitcoin/database/memory/reader.hpp \ + ${srcdir}/../../include/bitcoin/database/memory/streamers.hpp \ + ${srcdir}/../../include/bitcoin/database/memory/utilities.hpp + +include_bitcoin_database_memory_interfacesdir = \ + ${includedir}/bitcoin/database/memory/interfaces + +include_bitcoin_database_memory_interfaces_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/memory/interfaces/memory.hpp \ + ${srcdir}/../../include/bitcoin/database/memory/interfaces/storage.hpp + +include_bitcoin_database_primitivesdir = \ + ${includedir}/bitcoin/database/primitives + +include_bitcoin_database_primitives_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/primitives/arrayhead.hpp \ + ${srcdir}/../../include/bitcoin/database/primitives/arraymap.hpp \ + ${srcdir}/../../include/bitcoin/database/primitives/hashhead.hpp \ + ${srcdir}/../../include/bitcoin/database/primitives/hashmap.hpp \ + ${srcdir}/../../include/bitcoin/database/primitives/iterator.hpp \ + ${srcdir}/../../include/bitcoin/database/primitives/keys.hpp \ + ${srcdir}/../../include/bitcoin/database/primitives/linkage.hpp \ + ${srcdir}/../../include/bitcoin/database/primitives/manager.hpp \ + ${srcdir}/../../include/bitcoin/database/primitives/nohead.hpp \ + ${srcdir}/../../include/bitcoin/database/primitives/nomap.hpp \ + ${srcdir}/../../include/bitcoin/database/primitives/nomaps.hpp \ + ${srcdir}/../../include/bitcoin/database/primitives/primitives.hpp + +include_bitcoin_database_tablesdir = \ + ${includedir}/bitcoin/database/tables + +include_bitcoin_database_tables_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/tables/context.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/event.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/names.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/schema.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/table.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/tables.hpp + +include_bitcoin_database_tables_archivesdir = \ + ${includedir}/bitcoin/database/tables/archives + +include_bitcoin_database_tables_archives_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/tables/archives/header.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/archives/input.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/archives/ins.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/archives/output.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/archives/outs.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/archives/point.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/archives/transaction.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/archives/txs.hpp + +include_bitcoin_database_tables_cachesdir = \ + ${includedir}/bitcoin/database/tables/caches + +include_bitcoin_database_tables_caches_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/tables/caches/duplicate.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/caches/ecdsa.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/caches/prevalid.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/caches/prevout.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/caches/schnorr.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/caches/silent.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/caches/validated_bk.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/caches/validated_tx.hpp + +include_bitcoin_database_tables_indexesdir = \ + ${includedir}/bitcoin/database/tables/indexes + +include_bitcoin_database_tables_indexes_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/tables/indexes/height.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/indexes/strong_tx.hpp + +include_bitcoin_database_tables_optionalsdir = \ + ${includedir}/bitcoin/database/tables/optionals + +include_bitcoin_database_tables_optionals_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/tables/optionals/address.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/optionals/filter_bk.hpp \ + ${srcdir}/../../include/bitcoin/database/tables/optionals/filter_tx.hpp + +include_bitcoin_database_typesdir = \ + ${includedir}/bitcoin/database/types + +include_bitcoin_database_types_HEADERS = \ + ${srcdir}/../../include/bitcoin/database/types/association.hpp \ + ${srcdir}/../../include/bitcoin/database/types/associations.hpp \ + ${srcdir}/../../include/bitcoin/database/types/block_state.hpp \ + ${srcdir}/../../include/bitcoin/database/types/fee_rate.hpp \ + ${srcdir}/../../include/bitcoin/database/types/header_state.hpp \ + ${srcdir}/../../include/bitcoin/database/types/history.hpp \ + ${srcdir}/../../include/bitcoin/database/types/multisig_view.hpp \ + ${srcdir}/../../include/bitcoin/database/types/point_set.hpp \ + ${srcdir}/../../include/bitcoin/database/types/position.hpp \ + ${srcdir}/../../include/bitcoin/database/types/span.hpp \ + ${srcdir}/../../include/bitcoin/database/types/tx_state.hpp \ + ${srcdir}/../../include/bitcoin/database/types/type.hpp \ + ${srcdir}/../../include/bitcoin/database/types/types.hpp \ + ${srcdir}/../../include/bitcoin/database/types/unspent.hpp + +# Tests. +#============================================================================== +# Target test 'test/libbitcoin-database-test' +#------------------------------------------------------------------------------ +if WITH_TESTS + +check_PROGRAMS = test/libbitcoin-database-test + +test_libbitcoin_database_test_CPPFLAGS = \ + ${boost_BUILD_CPPFLAGS} \ + ${boost_unit_test_framework_BUILD_CPPFLAGS} \ + ${src_libbitcoin_database_la_CPPFLAGS} + +test_libbitcoin_database_test_LDFLAGS = \ + ${boost_LDFLAGS} \ + ${boost_unit_test_framework_LDFLAGS} \ + ${src_libbitcoin_database_la_LDFLAGS} + +test_libbitcoin_database_test_LDADD = \ + ${boost_LIBS} \ + ${boost_unit_test_framework_LIBS} \ + ${src_libbitcoin_database_la_LIBS} \ + ${src_libbitcoin_database_la_LIBADD} + +test_libbitcoin_database_test_SOURCES = \ + ${srcdir}/../../test/error.cpp \ + ${srcdir}/../../test/main.cpp \ + ${srcdir}/../../test/settings.cpp \ + ${srcdir}/../../test/test.cpp \ + ${srcdir}/../../test/file/rotator.cpp \ + ${srcdir}/../../test/file/utilities.cpp \ + ${srcdir}/../../test/locks/file_lock.cpp \ + ${srcdir}/../../test/locks/flush_lock.cpp \ + ${srcdir}/../../test/locks/interprocess_lock.cpp \ + ${srcdir}/../../test/memory/accessor.cpp \ + ${srcdir}/../../test/memory/mmap.cpp \ + ${srcdir}/../../test/memory/utilities.cpp \ + ${srcdir}/../../test/mocks/blocks.cpp \ + ${srcdir}/../../test/mocks/chunk_storage.cpp \ + ${srcdir}/../../test/primitives/arrayhead.cpp \ + ${srcdir}/../../test/primitives/arraymap.cpp \ + ${srcdir}/../../test/primitives/hashhead.cpp \ + ${srcdir}/../../test/primitives/hashmap.cpp \ + ${srcdir}/../../test/primitives/iterator.cpp \ + ${srcdir}/../../test/primitives/keys.cpp \ + ${srcdir}/../../test/primitives/linkage.cpp \ + ${srcdir}/../../test/primitives/manager.cpp \ + ${srcdir}/../../test/primitives/nohead.cpp \ + ${srcdir}/../../test/primitives/nomap.cpp \ + ${srcdir}/../../test/query/amounts.cpp \ + ${srcdir}/../../test/query/confirmed.cpp \ + ${srcdir}/../../test/query/extent.cpp \ + ${srcdir}/../../test/query/fee_rate.cpp \ + ${srcdir}/../../test/query/filters.cpp \ + ${srcdir}/../../test/query/height.cpp \ + ${srcdir}/../../test/query/initialize.cpp \ + ${srcdir}/../../test/query/locator.cpp \ + ${srcdir}/../../test/query/merkle.cpp \ + ${srcdir}/../../test/query/properties_block.cpp \ + ${srcdir}/../../test/query/properties_tx.cpp \ + ${srcdir}/../../test/query/sequences.cpp \ + ${srcdir}/../../test/query/sizes.cpp \ + ${srcdir}/../../test/query/address/address_balance.cpp \ + ${srcdir}/../../test/query/address/address_history.cpp \ + ${srcdir}/../../test/query/address/address_outpoints.cpp \ + ${srcdir}/../../test/query/address/address_unspent.cpp \ + ${srcdir}/../../test/query/archive/chain_reader.cpp \ + ${srcdir}/../../test/query/archive/chain_writer.cpp \ + ${srcdir}/../../test/query/archive/wire_reader.cpp \ + ${srcdir}/../../test/query/archive/wire_writer.cpp \ + ${srcdir}/../../test/query/consensus/consensus_block.cpp \ + ${srcdir}/../../test/query/consensus/consensus_chain_state.cpp \ + ${srcdir}/../../test/query/consensus/consensus_compact.cpp \ + ${srcdir}/../../test/query/consensus/consensus_forks.cpp \ + ${srcdir}/../../test/query/consensus/consensus_populate.cpp \ + ${srcdir}/../../test/query/consensus/consensus_prevouts.cpp \ + ${srcdir}/../../test/query/consensus/consensus_states.cpp \ + ${srcdir}/../../test/query/consensus/consensus_strong.cpp \ + ${srcdir}/../../test/query/consensus/consensus_transaction.cpp \ + ${srcdir}/../../test/query/consensus/consensus_work.cpp \ + ${srcdir}/../../test/query/navigate/navigate_arraymap.cpp \ + ${srcdir}/../../test/query/navigate/navigate_forward.cpp \ + ${srcdir}/../../test/query/navigate/navigate_hashmap.cpp \ + ${srcdir}/../../test/query/navigate/navigate_natural.cpp \ + ${srcdir}/../../test/query/navigate/navigate_reverse.cpp \ + ${srcdir}/../../test/query/batch/ecdsa.cpp \ + ${srcdir}/../../test/query/batch/prevalid.cpp \ + ${srcdir}/../../test/query/batch/schnorr.cpp \ + ${srcdir}/../../test/query/batch/silent.cpp \ + ${srcdir}/../../test/tables/archives/header.cpp \ + ${srcdir}/../../test/tables/archives/input.cpp \ + ${srcdir}/../../test/tables/archives/ins.cpp \ + ${srcdir}/../../test/tables/archives/output.cpp \ + ${srcdir}/../../test/tables/archives/outs.cpp \ + ${srcdir}/../../test/tables/archives/point.cpp \ + ${srcdir}/../../test/tables/archives/transaction.cpp \ + ${srcdir}/../../test/tables/archives/txs.cpp \ + ${srcdir}/../../test/tables/caches/duplicate.cpp \ + ${srcdir}/../../test/tables/caches/ecdsa.cpp \ + ${srcdir}/../../test/tables/caches/prevalid.cpp \ + ${srcdir}/../../test/tables/caches/prevout.cpp \ + ${srcdir}/../../test/tables/caches/schnorr.cpp \ + ${srcdir}/../../test/tables/caches/silent.cpp \ + ${srcdir}/../../test/tables/caches/validated_bk.cpp \ + ${srcdir}/../../test/tables/caches/validated_tx.cpp \ + ${srcdir}/../../test/tables/indexes/height.cpp \ + ${srcdir}/../../test/tables/indexes/strong_tx.cpp \ + ${srcdir}/../../test/tables/optional/address.cpp \ + ${srcdir}/../../test/tables/optional/filter_bk.cpp \ + ${srcdir}/../../test/tables/optional/filter_tx.cpp \ + ${srcdir}/../../test/types/history.cpp \ + ${srcdir}/../../test/types/span.cpp \ + ${srcdir}/../../test/types/unspent.cpp \ + ${srcdir}/../../test/store/store.cpp \ + ${srcdir}/../../test/store/store_backup.cpp \ + ${srcdir}/../../test/store/store_close.cpp \ + ${srcdir}/../../test/store/store_create.cpp \ + ${srcdir}/../../test/store/store_dump.cpp \ + ${srcdir}/../../test/store/store_events.cpp \ + ${srcdir}/../../test/store/store_open.cpp \ + ${srcdir}/../../test/store/store_open_load.cpp \ + ${srcdir}/../../test/store/store_prune.cpp \ + ${srcdir}/../../test/store/store_reload.cpp \ + ${srcdir}/../../test/store/store_report.cpp \ + ${srcdir}/../../test/store/store_restore.cpp \ + ${srcdir}/../../test/store/store_snapshot.cpp \ + ${srcdir}/../../test/store/store_tables.cpp \ + ${srcdir}/../../test/store/store_unload_close.cpp + +TESTS = test_runner.sh + +endif WITH_TESTS + +# Binaries. +#============================================================================== +# Target binary 'tools/initchain/initchain' +#------------------------------------------------------------------------------ +if WITH_TOOLS + +noinst_PROGRAMS = tools/initchain/initchain + +tools_initchain_initchain_CPPFLAGS = \ + ${src_libbitcoin_database_la_CPPFLAGS} + +tools_initchain_initchain_LDFLAGS = \ + ${src_libbitcoin_database_la_LDFLAGS} + +tools_initchain_initchain_LDADD = \ + ${src_libbitcoin_database_la_LIBS} \ + ${src_libbitcoin_database_la_LIBADD} + +tools_initchain_initchain_SOURCES = \ + ${srcdir}/../../tools/initchain/initchain.cpp + +target_tools = tools/initchain/initchain + +tools: ${target_tools} + +endif WITH_TOOLS diff --git a/NEWS b/builds/gnu/NEWS similarity index 100% rename from NEWS rename to builds/gnu/NEWS diff --git a/README b/builds/gnu/README similarity index 100% rename from README rename to builds/gnu/README diff --git a/builds/gnu/configure.ac b/builds/gnu/configure.ac new file mode 100644 index 000000000..fb16e9768 --- /dev/null +++ b/builds/gnu/configure.ac @@ -0,0 +1,253 @@ +############################################################################### +# Copyright (c) 2014-2026 libbitcoin-database developers (see COPYING). +# +# GENERATED SOURCE CODE, DO NOT EDIT EXCEPT EXPERIMENTALLY +# +############################################################################### + +# Standard declarations. +#============================================================================== +# Requires Automake 1.14 or newer. + +# Declare the required version of Autoconf. +AC_PREREQ([2.65]) + +# Process command-line arguments and perform initialization and verification. +AC_INIT([libbitcoin-database], [4.0.0], [eric@voskuil.org]) + +# Do compilation tests. +AC_LANG(C++) + +# Specify the temporary directory for build tools. +AC_CONFIG_AUX_DIR([build-aux]) + +# Specify the directory of additional local Autoconf macros. +AC_CONFIG_MACRO_DIR([m4]) + +# Run macros for operation of generated Makefiles, enable non-recursive make. +# Unless [foreign] is specified standard GNU files will be required, +# specifically: AUTHORS, COPYING, INSTALL, NEWS, README and ChangeLog. +AM_INIT_AUTOMAKE([subdir-objects]) + +# Enable C and POSIX extensions that may be disabled on certain platforms. +AC_USE_SYSTEM_EXTENSIONS + +# Enable the archiver. +AM_PROG_AR + +# Initialize libtool. +LT_PREREQ(2.4.2) + +# Enable shared libraries if available, and static if they don't conflict. +LT_INIT +AC_SUBST([LIBTOOL_DEPS]) + +# Determine C++ compiler to use. +AC_PROG_CXX + +# Enable sed for substitution. +AC_PROG_SED + +# Compute the canonical host-system type variable host, including host_os. +AC_CANONICAL_HOST + +# Enable silent rules option. +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +# Check for pkg-config. +PKG_PROG_PKG_CONFIG +AS_IF([test -n "${PKG_CONFIG}"], [], + [AC_MSG_ERROR([pkg-config is required but was not found.])]) + +AS_IF([test "x${enable_static}" != "xno"], + [AC_SUBST([PKG_CONFIG], ["${PKG_CONFIG} --static"])]) + +# Declare environment variables that affect the build. +#------------------------------------------------------------------------------ +AC_ARG_VAR([CC], "C compiler to use, such as gcc or clang") +AC_ARG_VAR([CXX], "C++ compiler to use, such as g++ or clang++") +AC_ARG_VAR([PKG_CONFIG_PATH], "Additional directories for package discovery.") + +repository_root_dir="@abs_top_srcdir@/../.." + +# Check for baseline language coverage in the compiler for the C++20 standard. +#------------------------------------------------------------------------------ +AX_CXX_COMPILE_STDCXX([20], [noext], [mandatory]) + +# Process options. +#============================================================================== +AC_MSG_CHECKING([--enable-isystem option]) +AC_ARG_ENABLE([isystem], + AS_HELP_STRING([--enable-isystem], + [Substitute -isystem for -I in dependencies. @<:@default=no@:>@]), + [enable_isystem=$enableval], + [enable_isystem=no]) +AC_MSG_RESULT([$enable_isystem]) +AM_CONDITIONAL([ENABLE_ISYSTEM], [test "x${enable_isystem}" != "xno"]) + +AC_MSG_CHECKING([--with-pkgconfigdir option]) +AC_ARG_WITH([pkgconfigdir], + AS_HELP_STRING([--with-pkgconfigdir=DIR], + [Path to pkgconfig directory. @<:@default=${libdir}/pkgconfig@:>@]), + [with_pkgconfigdir=$withval], + [with_pkgconfigdir=${libdir}/pkgconfig]) +AC_MSG_RESULT([$with_pkgconfigdir]) +AC_SUBST([pkgconfigdir],[${with_pkgconfigdir}]) + +AC_MSG_CHECKING([--enable-ndebug option]) +AC_ARG_ENABLE([ndebug], + AS_HELP_STRING([--enable-ndebug], + [Compile with NDEBUG assertion. @<:@default=no@:>@]), + [enable_ndebug=$enableval], + [enable_ndebug=no]) +AC_MSG_RESULT([$enable_ndebug]) +AM_CONDITIONAL([ENABLE_NDEBUG], [test "x${enable_ndebug}" != "xno"]) +AS_IF([test "x${enable_ndebug}" != "xno"], [AC_DEFINE([NDEBUG])]) + +AS_IF([test "x${enable_shared}" != "xno"], [AC_DEFINE([BOOST_ALL_DYN_LINK])]) + +AC_MSG_CHECKING([--with-tests option]) +AC_ARG_WITH([tests], + AS_HELP_STRING([--with-tests], + [Compile with unit tests. @<:@default=yes@:>@]), + [with_tests=$withval], + [with_tests=yes]) +AC_MSG_RESULT([$with_tests]) +AM_CONDITIONAL([WITH_TESTS], [test "x${with_tests}" != "xno"]) + +AC_MSG_CHECKING([--with-tools option]) +AC_ARG_WITH([tools], + AS_HELP_STRING([--with-tools], + [Compile with tools. @<:@default=yes@:>@]), + [with_tools=$withval], + [with_tools=yes]) +AC_MSG_RESULT([$with_tools]) +AM_CONDITIONAL([WITH_TOOLS], [test "x${with_tools}" != "xno"]) + +# Set flags. +#============================================================================== +AX_CHECK_COMPILE_FLAG([-Wall], + [ + CFLAGS="${CFLAGS} -Wall"; + CXXFLAGS="${CXXFLAGS} -Wall"; + ]) + +AX_CHECK_COMPILE_FLAG([-Wextra], + [ + CFLAGS="${CFLAGS} -Wextra"; + CXXFLAGS="${CXXFLAGS} -Wextra"; + ]) + +AX_CHECK_COMPILE_FLAG([-Wno-reorder], + [ + CXXFLAGS="${CXXFLAGS} -Wno-reorder"; + ]) + +AX_CHECK_COMPILE_FLAG([-Wno-missing-field-initializers], + [ + CXXFLAGS="${CXXFLAGS} -Wno-missing-field-initializers"; + ]) + +AX_CHECK_COMPILE_FLAG([-Wno-missing-braces], + [ + CXXFLAGS="${CXXFLAGS} -Wno-missing-braces"; + ]) + +AX_CHECK_COMPILE_FLAG([-Wno-comment], + [ + CXXFLAGS="${CXXFLAGS} -Wno-comment"; + ]) + +AX_CHECK_COMPILE_FLAG([-Wno-deprecated-copy], + [ + CXXFLAGS="${CXXFLAGS} -Wno-deprecated-copy"; + ]) + +AS_CASE([${CC}], [*clang*], + [ + AX_CHECK_COMPILE_FLAG([-Wno-mismatched-tags], + [ + CXXFLAGS="${CXXFLAGS} -Wno-mismatched-tags"; + ]) + ]) + +AX_CHECK_COMPILE_FLAG([-fstack-protector-all], + [ + CXXFLAGS="${CXXFLAGS} -fstack-protector-all"; + ]) + +AX_CHECK_COMPILE_FLAG([-Wno-ignored-attributes], + [ + libbitcoin_database_test_CXXFLAGS="${libbitcoin_database_test_CXXFLAGS} -Wno-ignored-attributes"; + libbitcoin_database_tools_CXXFLAGS="${libbitcoin_database_tools_CXXFLAGS} -Wno-ignored-attributes"; + ]) + +AX_CHECK_COMPILE_FLAG([-Wno-long-long], + [ + libbitcoin_database_test_CXXFLAGS="${libbitcoin_database_test_CXXFLAGS} -Wno-long-long"; + libbitcoin_database_tools_CXXFLAGS="${libbitcoin_database_tools_CXXFLAGS} -Wno-long-long"; + ]) + +AS_CASE([${CC}], [*gnu*], + [ + AX_CHECK_COMPILE_FLAG([-fno-var-tracking-assignments], + [ + libbitcoin_database_test_CXXFLAGS="${libbitcoin_database_test_CXXFLAGS} -fno-var-tracking-assignments"; + libbitcoin_database_tools_CXXFLAGS="${libbitcoin_database_tools_CXXFLAGS} -fno-var-tracking-assignments"; + ]) + ]) + +# Check dependencies. +#============================================================================== +PKG_CHECK_MODULES( + [libbitcoin_system], + [libbitcoin-system >= 4.0.0], + [], + [ + AC_MSG_ERROR([libbitcoin-system >= 4.0.0 is required but was not found.]) + ]) +AC_SUBST([libbitcoin_system_PKG], ['libbitcoin-system >= 4.0.0']) +AC_SUBST([libbitcoin_system_CPPFLAGS], [${libbitcoin_system_CFLAGS}]) +AC_SUBST([libbitcoin_system_ISYS_CPPFLAGS], [`echo ${libbitcoin_system_CPPFLAGS} | ${SED} s/^-I/-isystem/g | ${SED} s/' -I'/' -isystem'/g`]) +AC_MSG_NOTICE([libbitcoin_system_CPPFLAGS : ${libbitcoin_system_CPPFLAGS}]) +AC_MSG_NOTICE([libbitcoin_system_ISYS_CPPFLAGS : ${libbitcoin_system_ISYS_CPPFLAGS}]) +AC_MSG_NOTICE([libbitcoin_system_OTHER_CFLAGS : ${libbitcoin_system_OTHER_CFLAGS}]) +AC_MSG_NOTICE([libbitcoin_system_INCLUDEDIR : ${libbitcoin_system_INCLUDEDIR}]) +AC_MSG_NOTICE([libbitcoin_system_LIBS : ${libbitcoin_system_LIBS}]) +AS_IF([test "x${enable_isystem}" != "xno"], + [AC_SUBST([libbitcoin_system_BUILD_CPPFLAGS], [${libbitcoin_system_ISYS_CPPFLAGS}])], + [AC_SUBST([libbitcoin_system_BUILD_CPPFLAGS], [${libbitcoin_system_CPPFLAGS}])]) +AC_MSG_NOTICE([libbitcoin_system_BUILD_CPPFLAGS : ${libbitcoin_system_BUILD_CPPFLAGS}]) + +AX_BOOST_BASE([1.86.0], + [ + AC_SUBST([boost_CPPFLAGS], [${BOOST_CPPFLAGS}]) + AC_SUBST([boost_ISYSTEM_CPPFLAGS], [`echo ${boost_CPPFLAGS} | ${SED} s/^-I/-isystem/g | ${SED} s/' -I'/' -isystem'/g`]) + AC_SUBST([boost_LDFLAGS], [${BOOST_LDFLAGS}]) + AC_MSG_NOTICE([boost_CPPFLAGS : ${boost_CPPFLAGS}]) + AC_MSG_NOTICE([boost_ISYS_CPPFLAGS : ${boost_ISYS_CPPFLAGS}]) + AC_MSG_NOTICE([boost_LDFLAGS : ${boost_LDFLAGS}]) + ], + [ + AC_MSG_ERROR([Boost 1.86.0 or later is required but was not found.]) + ]) + +AS_IF([test "x${enable_isystem}" != "xno"], + [ AC_SUBST([boost_BUILD_CPPFLAGS], [${boost_ISYSTEM_CPPFLAGS}]) ], + [ AC_SUBST([boost_BUILD_CPPFLAGS], [${boost_CPPFLAGS}]) ]) + +AC_MSG_NOTICE([boost_BUILD_CPPFLAGS : ${boost_BUILD_CPPFLAGS}]) + +AS_IF([(test "x${with_tests}" != "xno")], + [ + AX_BOOST_UNIT_TEST_FRAMEWORK + AC_SUBST([boost_unit_test_framework_LIBS], [${BOOST_UNIT_TEST_FRAMEWORK_LIB}]) + AC_MSG_NOTICE([boost_unit_test_framework_LIBS : ${boost_unit_test_framework_LIBS}]) + ]) + +AC_CONFIG_FILES([ + Makefile + libbitcoin-database.pc + ]) + +AC_OUTPUT diff --git a/builds/gnu/install-gnu.sh b/builds/gnu/install-gnu.sh index d6d692b84..1a67860ee 100755 --- a/builds/gnu/install-gnu.sh +++ b/builds/gnu/install-gnu.sh @@ -16,9 +16,9 @@ # Default: --disable-sse41 # ---shani Use Intel/ARM SHA Extensions. # Default: --disable-shani -# ---ultrafast Use shrec/UltrafastSecp256k1. +# ---ultrafast Use shrec/UltrafastSecp256k1 library. # Default: --without-ultrafast -# ---secp256k1 Use bitcoin-core/secp256k1. +# ---secp256k1 Use bitcoin-core/secp256k1 library. # Default: --with-secp256k1 # --build-boost Build Boost libraries # --build-secp256k1 Build libsecp256k1 libraries @@ -516,10 +516,10 @@ main() source_github "${secp256k1_OWNER}" "secp256k1" "${secp256k1_TAG}" local SAVE_CPPFLAGS="${CPPFLAGS}" export CPPFLAGS="${CPPFLAGS} ${secp256k1_FLAGS[@]}" - build_gnu "secp256k1" "." "${PARALLEL}" "${secp256k1_OPTIONS[@]}" "${CONFIGURE_OPTIONS_GNU[@]}" - install_gnu "secp256k1" + build_gnu "secp256k1" "." "." "${PARALLEL}" "${secp256k1_OPTIONS[@]}" "${CONFIGURE_OPTIONS_GNU[@]}" + install_gnu "secp256k1" "." if [[ "${BUILD_POST_INSTALL_CLEAN}" == "yes" ]]; then - clean_gnu "secp256k1" + clean_gnu "secp256k1" "." fi export CPPFLAGS="${SAVE_CPPFLAGS}" fi @@ -528,10 +528,10 @@ main() source_github "${UltrafastSecp256k1_OWNER}" "UltrafastSecp256k1" "${UltrafastSecp256k1_TAG}" local SAVE_CPPFLAGS="${CPPFLAGS}" export CPPFLAGS="${CPPFLAGS} ${UltrafastSecp256k1_FLAGS[@]}" - build_cmake "UltrafastSecp256k1" "." "${PARALLEL}" "${UltrafastSecp256k1_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" - install_cmake "UltrafastSecp256k1" + build_cmake "UltrafastSecp256k1" "." "." "${PARALLEL}" "${UltrafastSecp256k1_OPTIONS[@]}" "${CONFIGURE_OPTIONS_CMAKE[@]}" + install_cmake "UltrafastSecp256k1" "." if [[ "${BUILD_POST_INSTALL_CLEAN}" == "yes" ]]; then - clean_cmake "UltrafastSecp256k1" + clean_cmake "UltrafastSecp256k1" "." fi export CPPFLAGS="${SAVE_CPPFLAGS}" fi @@ -539,23 +539,23 @@ main() source_github "${libbitcoin_system_OWNER}" "libbitcoin-system" "${libbitcoin_system_TAG}" local SAVE_CPPFLAGS="${CPPFLAGS}" export CPPFLAGS="${CPPFLAGS} ${libbitcoin_system_FLAGS[@]}" - build_gnu "libbitcoin-system" "." "${PARALLEL}" "${libbitcoin_system_OPTIONS[@]}" "${CONFIGURE_OPTIONS_GNU[@]}" - install_gnu "libbitcoin-system" + build_gnu "libbitcoin-system" "builds/gnu" "builds/gnu" "${PARALLEL}" "${libbitcoin_system_OPTIONS[@]}" "${CONFIGURE_OPTIONS_GNU[@]}" + install_gnu "libbitcoin-system" "builds/gnu" if [[ "${BUILD_POST_INSTALL_CLEAN}" == "yes" ]]; then - clean_gnu "libbitcoin-system" + clean_gnu "libbitcoin-system" "builds/gnu" fi export CPPFLAGS="${SAVE_CPPFLAGS}" source_github "${libbitcoin_database_OWNER}" "libbitcoin-database" "${libbitcoin_database_TAG}" local SAVE_CPPFLAGS="${CPPFLAGS}" export CPPFLAGS="${CPPFLAGS} ${libbitcoin_database_FLAGS[@]}" - build_gnu "libbitcoin-database" "." "${PARALLEL}" "${libbitcoin_database_OPTIONS[@]}" "${CONFIGURE_OPTIONS_GNU[@]}" + build_gnu "libbitcoin-database" "builds/gnu" "builds/gnu" "${PARALLEL}" "${libbitcoin_database_OPTIONS[@]}" "${CONFIGURE_OPTIONS_GNU[@]}" if ! [[ "${BUILD_SKIP_TESTS}" == "yes" ]]; then - test_gnu "libbitcoin-database" "${PARALLEL}" + test_gnu "libbitcoin-database" "builds/gnu" "${PARALLEL}" fi - install_gnu "libbitcoin-database" + install_gnu "libbitcoin-database" "builds/gnu" if [[ "${BUILD_POST_INSTALL_CLEAN}" == "yes" ]]; then - clean_gnu "libbitcoin-database" + clean_gnu "libbitcoin-database" "builds/gnu" fi export CPPFLAGS="${SAVE_CPPFLAGS}" @@ -773,9 +773,10 @@ build_boost() build_gnu() { local PROJECT="$1" - local RELATIVE_PATH="$2" - local JOBS="$3" - shift 3 + local RELATIVE_SRC_PATH="$2" + local RELATIVE_OBJ_PATH="$3" + local JOBS="$4" + shift 4 local VERBOSITY_GNU="" local VERBOSITY_MAKE="" @@ -790,7 +791,7 @@ build_gnu() # directory rationalization push_directory "${BUILD_SRC_DIR}/${PROJECT}" - push_directory "${RELATIVE_PATH}" + push_directory "${RELATIVE_SRC_PATH}" local BUILD_PATH="$(pwd)" pop_directory @@ -804,6 +805,11 @@ build_gnu() push_directory "${BUILD_OBJ_DIR}/${PROJECT}" fi + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + create_directory_force "${RELATIVE_OBJ_PATH}" + push_directory "${RELATIVE_OBJ_PATH}" + fi + # configuration push_directory "${BUILD_PATH}" autoreconf ${VERBOSITY_GNU} -i @@ -822,6 +828,10 @@ build_gnu() pop_directory # BUILD_OBJ_DIR pop_directory # BUILD_SRC_DIR/PROJECT + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + pop_directory + fi + msg_success "'${PROJECT}' built successfully." } @@ -829,9 +839,10 @@ build_gnu() build_cmake() { local PROJECT="$1" - local RELATIVE_PATH="$2" - local JOBS="$3" - shift 3 + local RELATIVE_SRC_PATH="$2" + local RELATIVE_OBJ_PATH="$3" + local JOBS="$4" + shift 4 local VERBOSITY_CMAKE="" local VERBOSITY_MAKE="" @@ -846,7 +857,7 @@ build_cmake() # directory rationalization push_directory "${BUILD_SRC_DIR}/${PROJECT}" - push_directory "${RELATIVE_PATH}" + push_directory "${RELATIVE_SRC_PATH}" local BUILD_PATH="$(pwd)" pop_directory @@ -860,9 +871,14 @@ build_cmake() push_directory "${BUILD_OBJ_DIR}/${PROJECT}" fi + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + create_directory_force "${RELATIVE_OBJ_PATH}" + push_directory "${RELATIVE_OBJ_PATH}" + fi + display_configure_options "$@" - cmake ${VERBOSITY_CMAKE} -LA "$@" "${BUILD_SRC_DIR}/${PROJECT}/${RELATIVE_PATH}" + cmake ${VERBOSITY_CMAKE} -LA "$@" "${BUILD_SRC_DIR}/${PROJECT}/${RELATIVE_SRC_PATH}" # make if [[ ${JOBS} -gt ${SEQUENTIAL} ]]; then @@ -873,6 +889,10 @@ build_cmake() pop_directory # BUILD_OBJ_DIR pop_directory # BUILD_SRC_DIR/PROJECT + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + pop_directory + fi + msg_success "'${PROJECT}' built successfully." } @@ -880,7 +900,8 @@ build_cmake() clean_cmake() { local PROJECT="$1" - shift 1 + local RELATIVE_OBJ_PATH="$2" + shift 2 msg "Preparing to clean ${PROJECT}" @@ -892,6 +913,10 @@ clean_cmake() push_directory "${BUILD_OBJ_DIR}/${PROJECT}" fi + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + push_directory "${RELATIVE_OBJ_PATH}" + fi + disable_exit_on_error cmake --build . --target clean @@ -905,6 +930,9 @@ clean_cmake() pop_directory # BUILD_OBJ_DIR pop_directory # BUILD_SRC_DIR/PROJECT + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + pop_directory + fi msg_success "'${PROJECT}' clean complete." } @@ -912,7 +940,8 @@ clean_cmake() install_cmake() { local PROJECT="$1" - shift + local RELATIVE_OBJ_PATH="$2" + shift 2 msg "Preparing to install ${PROJECT}" @@ -924,6 +953,10 @@ install_cmake() push_directory "${BUILD_OBJ_DIR}/${PROJECT}" fi + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + push_directory "${RELATIVE_OBJ_PATH}" + fi + cmake --install . if [[ ${OS} == Linux ]] && [[ "${PREFIX}" == "/usr/local" ]]; then @@ -932,6 +965,9 @@ install_cmake() pop_directory # BUILD_OBJ_DIR pop_directory # BUILD_SRC_DIR/PROJECT + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + pop_directory + fi msg_success "'${PROJECT}' installation complete." } @@ -939,8 +975,9 @@ install_cmake() test_cmake() { local PROJECT="$1" - local JOBS="$2" - shift 2 + local RELATIVE_OBJ_PATH="$2" + local JOBS="$3" + shift 3 msg "Preparing to test ${PROJECT}" @@ -952,6 +989,10 @@ test_cmake() push_directory "${BUILD_OBJ_DIR}/${PROJECT}" fi + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + push_directory "${RELATIVE_OBJ_PATH}" + fi + disable_exit_on_error ctest --test-dir . @@ -979,6 +1020,9 @@ test_cmake() pop_directory # BUILD_OBJ_DIR pop_directory # BUILD_SRC_DIR/PROJECT + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + pop_directory + fi msg_success "'${PROJECT}' test complete." } @@ -986,7 +1030,8 @@ test_cmake() clean_gnu() { local PROJECT="$1" - shift 1 + local RELATIVE_OBJ_PATH="$2" + shift 2 msg "Preparing to clean ${PROJECT}" @@ -998,6 +1043,10 @@ clean_gnu() push_directory "${BUILD_OBJ_DIR}/${PROJECT}" fi + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + push_directory "${RELATIVE_OBJ_PATH}" + fi + disable_exit_on_error make clean @@ -1011,6 +1060,9 @@ clean_gnu() pop_directory # BUILD_OBJ_DIR pop_directory # BUILD_SRC_DIR/PROJECT + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + pop_directory + fi msg_success "'${PROJECT}' clean complete." } @@ -1018,7 +1070,8 @@ clean_gnu() install_gnu() { local PROJECT="$1" - shift + local RELATIVE_OBJ_PATH="$2" + shift 2 msg "Preparing to install ${PROJECT}" @@ -1030,6 +1083,10 @@ install_gnu() push_directory "${BUILD_OBJ_DIR}/${PROJECT}" fi + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + push_directory "${RELATIVE_OBJ_PATH}" + fi + make install if [[ ${OS} == Linux ]] && [[ "${PREFIX}" == "/usr/local" ]]; then @@ -1038,6 +1095,9 @@ install_gnu() pop_directory # BUILD_OBJ_DIR pop_directory # BUILD_SRC_DIR/PROJECT + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + pop_directory + fi msg_success "'${PROJECT}' installation complete." } @@ -1045,8 +1105,9 @@ install_gnu() test_gnu() { local PROJECT="$1" - local JOBS="$2" - shift 2 + local RELATIVE_OBJ_PATH="$2" + local JOBS="$3" + shift 3 msg "Preparing to test ${PROJECT}" @@ -1058,6 +1119,10 @@ test_gnu() push_directory "${BUILD_OBJ_DIR}/${PROJECT}" fi + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + push_directory "${RELATIVE_OBJ_PATH}" + fi + disable_exit_on_error if [[ ${JOBS} -gt ${SEQUENTIAL} ]]; then @@ -1089,6 +1154,9 @@ test_gnu() pop_directory # BUILD_OBJ_DIR pop_directory # BUILD_SRC_DIR/PROJECT + if [[ "${RELATIVE_OBJ_PATH}" != "." ]]; then + pop_directory + fi msg_success "'${PROJECT}' test complete." } @@ -1165,9 +1233,9 @@ help() msg " Default: --disable-sse41" msg "---shani Use Intel/ARM SHA Extensions." msg " Default: --disable-shani" - msg "---ultrafast Use shrec/UltrafastSecp256k1." + msg "---ultrafast Use shrec/UltrafastSecp256k1 library." msg " Default: --without-ultrafast" - msg "---secp256k1 Use bitcoin-core/secp256k1." + msg "---secp256k1 Use bitcoin-core/secp256k1 library." msg " Default: --with-secp256k1" msg "--build-boost Build Boost libraries" msg "--build-secp256k1 Build libsecp256k1 libraries" diff --git a/libbitcoin-database.pc.in b/builds/gnu/libbitcoin-database.pc.in similarity index 61% rename from libbitcoin-database.pc.in rename to builds/gnu/libbitcoin-database.pc.in index 64a24cb26..4092c7156 100644 --- a/libbitcoin-database.pc.in +++ b/builds/gnu/libbitcoin-database.pc.in @@ -5,6 +5,7 @@ # ############################################################################### + # Substitutions #============================================================================== prefix=@prefix@ @@ -12,6 +13,7 @@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ + # Metadata #============================================================================== Name: libbitcoin-database @@ -22,15 +24,12 @@ Version: @PACKAGE_VERSION@ # Variables #============================================================================== -# Dependencies that publish package configuration. -#------------------------------------------------------------------------------ -Requires: libbitcoin-system >= 4.0.0 - -# Include directory and any other required compiler flags. -#------------------------------------------------------------------------------ -Cflags: -I${includedir} +Requires: \ + @libbitcoin_system_PKG@ -# Lib directory, lib and any required that do not publish pkg-config. -#------------------------------------------------------------------------------ -Libs: -L${libdir} -lbitcoin-database +Cflags: \ + -I${includedir} +Libs: \ + -L${libdir} \ + -lbitcoin-database diff --git a/m4/.gitignore b/builds/gnu/m4/.gitignore similarity index 100% rename from m4/.gitignore rename to builds/gnu/m4/.gitignore diff --git a/m4/ax_boost_base.m4 b/builds/gnu/m4/ax_boost_base.m4 similarity index 100% rename from m4/ax_boost_base.m4 rename to builds/gnu/m4/ax_boost_base.m4 diff --git a/m4/ax_boost_unit_test_framework.m4 b/builds/gnu/m4/ax_boost_unit_test_framework.m4 similarity index 100% rename from m4/ax_boost_unit_test_framework.m4 rename to builds/gnu/m4/ax_boost_unit_test_framework.m4 diff --git a/m4/ax_check_compile_flag.m4 b/builds/gnu/m4/ax_check_compile_flag.m4 similarity index 100% rename from m4/ax_check_compile_flag.m4 rename to builds/gnu/m4/ax_check_compile_flag.m4 diff --git a/m4/ax_check_link_flag.m4 b/builds/gnu/m4/ax_check_link_flag.m4 similarity index 100% rename from m4/ax_check_link_flag.m4 rename to builds/gnu/m4/ax_check_link_flag.m4 diff --git a/m4/ax_check_preproc_flag.m4 b/builds/gnu/m4/ax_check_preproc_flag.m4 similarity index 100% rename from m4/ax_check_preproc_flag.m4 rename to builds/gnu/m4/ax_check_preproc_flag.m4 diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/builds/gnu/m4/ax_cxx_compile_stdcxx.m4 similarity index 100% rename from m4/ax_cxx_compile_stdcxx.m4 rename to builds/gnu/m4/ax_cxx_compile_stdcxx.m4 diff --git a/libbitcoin-database-test_runner.sh b/builds/gnu/test_runner.sh similarity index 68% rename from libbitcoin-database-test_runner.sh rename to builds/gnu/test_runner.sh index ca2f9960d..29e67663e 100755 --- a/libbitcoin-database-test_runner.sh +++ b/builds/gnu/test_runner.sh @@ -1,6 +1,6 @@ #!/bin/sh ############################################################################### -# Copyright (c) 2014-2026 libbitcoin-database developers (see COPYING). +# Copyright (c) 2014-2026 libbitcoin-database-test developers (see COPYING). # # GENERATED SOURCE CODE, DO NOT EDIT EXCEPT EXPERIMENTALLY # @@ -9,18 +9,16 @@ # Define tests and options. #============================================================================== BOOST_UNIT_TEST_OPTIONS=\ -"--run_test=* "\ -"--log_level=warning "\ -"--show_progress=no "\ -"--detect_memory_leak=0 "\ -"--report_level=no "\ -"--build_info=yes" - + "--log_level=warning "\ + "--show_progress=no "\ + "--detect_memory_leak=0 "\ + "--report_level=no "\ + "--build-info=yes "\ + "--run_tests=*" # Run tests. #============================================================================== -# ALlow CI to send errors to standard output -if [[ $CI == true ]]; then +if [[ ${CI} == true ]]; then ./test/libbitcoin-database-test ${BOOST_UNIT_TEST_OPTIONS} else ./test/libbitcoin-database-test ${BOOST_UNIT_TEST_OPTIONS} > test.log diff --git a/builds/msvc/debug.natvis b/builds/msvc/debug.natvis index c8b81342f..93433dd6c 100644 --- a/builds/msvc/debug.natvis +++ b/builds/msvc/debug.natvis @@ -6,15 +6,10 @@ | --> - - { m_backend } - - { m_data } - diff --git a/configure.ac b/configure.ac deleted file mode 100644 index 029f858c4..000000000 --- a/configure.ac +++ /dev/null @@ -1,276 +0,0 @@ -############################################################################### -# Copyright (c) 2014-2026 libbitcoin-database developers (see COPYING). -# -# GENERATED SOURCE CODE, DO NOT EDIT EXCEPT EXPERIMENTALLY -# -############################################################################### - -# Standard declarations. -#============================================================================== -# Requires Automake 1.14 or newer. - -# Declare the required version of Autoconf. -AC_PREREQ([2.65]) - -# Process command-line arguments and perform initialization and verification. -AC_INIT([libbitcoin-database], [4.0.0], [eric@voskuil.org]) - -# Do compilation tests. -AC_LANG(C++) - -# Specify the temporary directory for build tools. -AC_CONFIG_AUX_DIR([build-aux]) - -# Specify the directory of additional local Autoconf macros. -AC_CONFIG_MACRO_DIR([m4]) - -# Run macros for operation of generated Makefiles, enable non-recursive make. -# Unless [foreign] is specified standard GNU files will be required, -# specifically: AUTHORS, COPYING, INSTALL, NEWS, README and ChangeLog. -AM_INIT_AUTOMAKE([subdir-objects]) - -# Enable C and POSIX extensions that may be disabled on certain platforms. -AC_USE_SYSTEM_EXTENSIONS - -# Enable the archiver. -AM_PROG_AR - -# Initialize libtool. -LT_PREREQ(2.4.2) - -# Enable shared libraries if available, and static if they don't conflict. -LT_INIT -AC_SUBST([LIBTOOL_DEPS]) - -# Determine C++ compiler to use. -AC_PROG_CXX - -# Enable sed for substitution. -AC_PROG_SED - -# Compute the canonical host-system type variable host, including host_os. -AC_CANONICAL_HOST - -# Enable silent rules option. -m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - -# Check for pkg-config. -PKG_PROG_PKG_CONFIG -AS_IF([test -n "$PKG_CONFIG"], [], - [AC_MSG_ERROR([pkg-config is required but was not found.])]) - -AS_CASE([${enable_static}], - [yes], [AC_SUBST([PKG_CONFIG], ["$PKG_CONFIG --static"])], - []) - -# Declare environment variables that affect the build. -#------------------------------------------------------------------------------ -AC_ARG_VAR([CC], "C compiler to use, such as gcc or clang") -AC_ARG_VAR([CXX], "C++ compiler to use, such as g++ or clang++") -AC_ARG_VAR([PKG_CONFIG_PATH], "Additional directories for package discovery.") - -# Check for baseline language coverage in the compiler for the C++20 standard. -#------------------------------------------------------------------------------ -AX_CXX_COMPILE_STDCXX([20], [noext], [mandatory]) - - -# Process options. -#============================================================================== -# Implement --with-pkgconfigdir and output ${pkgconfigdir}. -#------------------------------------------------------------------------------ -AC_MSG_CHECKING([--with-pkgconfigdir option]) -AC_ARG_WITH([pkgconfigdir], - AS_HELP_STRING([--with-pkgconfigdir=DIR], - [Path to pkgconfig directory. @<:@default=${libdir}/pkgconfig@:>@]), - [pkgconfigdir=$withval], - [pkgconfigdir=${libdir}/pkgconfig]) -AC_MSG_RESULT([$pkgconfigdir]) -AC_SUBST([pkgconfigdir]) - -# Implement --with-tests and declare WITH_TESTS. -#------------------------------------------------------------------------------ -AC_MSG_CHECKING([--with-tests option]) -AC_ARG_WITH([tests], - AS_HELP_STRING([--with-tests], - [Compile with unit tests. @<:@default=yes@:>@]), - [with_tests=$withval], - [with_tests=yes]) -AC_MSG_RESULT([$with_tests]) -AM_CONDITIONAL([WITH_TESTS], [test x$with_tests != xno]) - -# Implement --with-tools and declare WITH_TOOLS. -#------------------------------------------------------------------------------ -AC_MSG_CHECKING([--with-tools option]) -AC_ARG_WITH([tools], - AS_HELP_STRING([--with-tools], - [Compile with tools. @<:@default=yes@:>@]), - [with_tools=$withval], - [with_tools=yes]) -AC_MSG_RESULT([$with_tools]) -AM_CONDITIONAL([WITH_TOOLS], [test x$with_tools != xno]) - -# Implement --enable-ndebug and define NDEBUG. -#------------------------------------------------------------------------------ -AC_MSG_CHECKING([--enable-ndebug option]) -AC_ARG_ENABLE([ndebug], - AS_HELP_STRING([--enable-ndebug], - [Compile without debug assertions. @<:@default=yes@:>@]), - [enable_ndebug=$enableval], - [enable_ndebug=yes]) -AC_MSG_RESULT([$enable_ndebug]) -AS_CASE([${enable_ndebug}], [yes], AC_DEFINE([NDEBUG])) - -# Inherit --enable-shared and define BOOST_ALL_DYN_LINK. -#------------------------------------------------------------------------------ -AS_CASE([${enable_shared}], [yes], AC_DEFINE([BOOST_ALL_DYN_LINK])) - -# Implement --enable-isystem. -#------------------------------------------------------------------------------ -AC_MSG_CHECKING([--enable-isystem option]) -AC_ARG_ENABLE([isystem], - AS_HELP_STRING([--enable-isystem], - [Substitute -isystem for -I in dependencies. @<:@default=no@:>@]), - [enable_isystem=$enableval], - [enable_isystem=no]) -AC_MSG_RESULT([$enable_isystem]) - - -# Set flags. -#============================================================================== -# Require c++20 for all c++ products. -#------------------------------------------------------------------------------ -AS_CASE([${CC}], [*], - [AX_CHECK_COMPILE_FLAG([-std=c++20], - [CXXFLAGS="$CXXFLAGS -std=c++20"])]) - -# Warn on all stuff. -#------------------------------------------------------------------------------ -AS_CASE([${CC}], [*], - [AX_CHECK_COMPILE_FLAG([-Wall], - [CFLAGS="$CFLAGS -Wall"])]) - -# Warn on all stuff. -#------------------------------------------------------------------------------ -AS_CASE([${CC}], [*], - [AX_CHECK_COMPILE_FLAG([-Wall], - [CXXFLAGS="$CXXFLAGS -Wall"])]) - -# Warn on extra stuff. -#------------------------------------------------------------------------------ -AS_CASE([${CC}], [*], - [AX_CHECK_COMPILE_FLAG([-Wextra], - [CFLAGS="$CFLAGS -Wextra"])]) - -# Warn on extra stuff. -#------------------------------------------------------------------------------ -AS_CASE([${CC}], [*], - [AX_CHECK_COMPILE_FLAG([-Wextra], - [CXXFLAGS="$CXXFLAGS -Wextra"])]) - -# Disallow warning on style order of declarations. -#------------------------------------------------------------------------------ -AS_CASE([${CC}], [*], - [AX_CHECK_COMPILE_FLAG([-Wno-reorder], - [CXXFLAGS="$CXXFLAGS -Wno-reorder"])]) - -# Suppress warning for incomplete field initialization. -#------------------------------------------------------------------------------ -AS_CASE([${CC}], [*], - [AX_CHECK_COMPILE_FLAG([-Wno-missing-field-initializers], - [CXXFLAGS="$CXXFLAGS -Wno-missing-field-initializers"])]) - -# Conform to style. -#------------------------------------------------------------------------------ -AS_CASE([${CC}], [*], - [AX_CHECK_COMPILE_FLAG([-Wno-missing-braces], - [CXXFLAGS="$CXXFLAGS -Wno-missing-braces"])]) - -# Ignore comments within comments or commenting of backslash extended lines. -#------------------------------------------------------------------------------ -AS_CASE([${CC}], [*], - [AX_CHECK_COMPILE_FLAG([-Wno-comment], - [CXXFLAGS="$CXXFLAGS -Wno-comment"])]) - -# Suppress warning for copy of implicitly generated copy constructor. -#------------------------------------------------------------------------------ -AS_CASE([${CC}], [*], - [AX_CHECK_COMPILE_FLAG([-Wno-deprecated-copy], - [CXXFLAGS="$CXXFLAGS -Wno-deprecated-copy"])]) - -# Conflict in stdlib under clang. Enabled in clang only. -#------------------------------------------------------------------------------ -AS_CASE([${CC}], [*clang*], - [AX_CHECK_COMPILE_FLAG([-Wno-mismatched-tags], - [CXXFLAGS="$CXXFLAGS -Wno-mismatched-tags"])]) - -# Address -undefined dynamic_lookup MacOS error. -#------------------------------------------------------------------------------ -AS_CASE([${CC}], [*], - [AX_CHECK_LINK_FLAG([-no_fixup_chains], - [LDFLAGS="$LDFLAGS -no_fixup_chains"])]) - -# Protect stack. -#------------------------------------------------------------------------------ -AS_CASE([${CC}], [*], - [AX_CHECK_LINK_FLAG([-fstack-protector], - [LDFLAGS="$LDFLAGS -fstack-protector"])]) - -# Protect stack comprehensively. -#------------------------------------------------------------------------------ -AS_CASE([${CC}], [*], - [AX_CHECK_LINK_FLAG([-fstack-protector-all], - [LDFLAGS="$LDFLAGS -fstack-protector-all"])]) - - -# Check dependencies. -#============================================================================== -# Require Boost of at least version 1.86.0 and output ${boost_CPPFLAGS/LDFLAGS}. -#------------------------------------------------------------------------------ -AS_CASE([${CC}], [*], - [AX_BOOST_BASE([1.86.0], - [AC_SUBST([boost_CPPFLAGS], [${BOOST_CPPFLAGS}]) - AC_SUBST([boost_ISYS_CPPFLAGS], [`echo ${BOOST_CPPFLAGS} | $SED s/^-I/-isystem/g | $SED s/' -I'/' -isystem'/g`]) - AC_SUBST([boost_LDFLAGS], [${BOOST_LDFLAGS}]) - AC_MSG_NOTICE([boost_CPPFLAGS : ${boost_CPPFLAGS}]) - AC_MSG_NOTICE([boost_ISYS_CPPFLAGS : ${boost_ISYS_CPPFLAGS}]) - AC_MSG_NOTICE([boost_LDFLAGS : ${boost_LDFLAGS}])], - [AC_MSG_ERROR([Boost 1.86.0 or later is required but was not found.])])]) - -AS_CASE([${enable_isystem}],[yes], - [AC_SUBST([boost_BUILD_CPPFLAGS], [${boost_ISYS_CPPFLAGS}])], - [AC_SUBST([boost_BUILD_CPPFLAGS], [${boost_CPPFLAGS}])]) - -AC_MSG_NOTICE([boost_BUILD_CPPFLAGS : ${boost_BUILD_CPPFLAGS}]) - -AS_CASE([${with_tests}], [yes], - [AX_BOOST_UNIT_TEST_FRAMEWORK - AC_SUBST([boost_unit_test_framework_LIBS], [${BOOST_UNIT_TEST_FRAMEWORK_LIB}]) - AC_MSG_NOTICE([boost_unit_test_framework_LIBS : ${boost_unit_test_framework_LIBS}])], - [AC_SUBST([boost_unit_test_framework_LIBS], [])]) - -# Require bitcoin-system of at least version 4.0.0 and output ${bitcoin_system_CPPFLAGS/LIBS/PKG}. -#------------------------------------------------------------------------------ -PKG_CHECK_MODULES([bitcoin_system], [libbitcoin-system >= 4.0.0], [], - [ - AC_MSG_ERROR([libbitcoin-system >= 4.0.0 is required but was not found.]) - ]) -AC_SUBST([bitcoin_system_PKG], ['libbitcoin-system >= 4.0.0']) -AC_SUBST([bitcoin_system_CPPFLAGS], [${bitcoin_system_CFLAGS}]) -AC_SUBST([bitcoin_system_ISYS_CPPFLAGS], [`echo ${bitcoin_system_CPPFLAGS} | $SED s/^-I/-isystem/g | $SED s/' -I'/' -isystem'/g`]]) -AC_MSG_NOTICE([bitcoin_system_CPPFLAGS : ${bitcoin_system_CPPFLAGS}]) -AC_MSG_NOTICE([bitcoin_system_ISYS_CPPFLAGS : ${bitcoin_system_ISYS_CPPFLAGS}]) -AC_MSG_NOTICE([bitcoin_system_OTHER_CFLAGS : ${bitcoin_system_OTHER_CFLAGS}]) -AC_MSG_NOTICE([bitcoin_system_INCLUDEDIR : ${bitcoin_system_INCLUDEDIR}]) -AC_MSG_NOTICE([bitcoin_system_LIBS : ${bitcoin_system_LIBS}]) - -AS_CASE([${enable_isystem}],[yes], - [AC_SUBST([bitcoin_system_BUILD_CPPFLAGS], [${bitcoin_system_ISYS_CPPFLAGS}])], - [AC_SUBST([bitcoin_system_BUILD_CPPFLAGS], [${bitcoin_system_CPPFLAGS}])]) - -AC_MSG_NOTICE([bitcoin_system_BUILD_CPPFLAGS : ${bitcoin_system_BUILD_CPPFLAGS}]) - - -# Process outputs into templates. -#============================================================================== -AC_CONFIG_FILES([Makefile libbitcoin-database.pc]) -AC_OUTPUT