mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 14:59:39 -04:00
build: Create .la library for crc32c
Libtool will yell at you if you try to link a shared library against static ones. This change creates a libtool archive library for crc32c and allows a shared library to be linked against it portably. Also specify -static in both: - ..._la_CXXFLAGS so that libtool will avoid building two versions of each object (one PIC, one non-PIC). We just need the one that is suitable for static linking. - ..._la_LDFLAGS so that libtool will create a static library. [META] This change is done in preparation for a future commit where we link the libbitcoinkernel library against this one.
This commit is contained in:
parent
64caf94479
commit
05d1525b6d
1 changed files with 34 additions and 26 deletions
|
@ -2,9 +2,9 @@
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
LIBCRC32C_INT = crc32c/libcrc32c.a
|
LIBCRC32C_INT = crc32c/libcrc32c.la
|
||||||
|
|
||||||
EXTRA_LIBRARIES += $(LIBCRC32C_INT)
|
noinst_LTLIBRARIES += $(LIBCRC32C_INT)
|
||||||
|
|
||||||
LIBCRC32C = $(LIBCRC32C_INT)
|
LIBCRC32C = $(LIBCRC32C_INT)
|
||||||
|
|
||||||
|
@ -33,41 +33,49 @@ else
|
||||||
CRC32C_CPPFLAGS_INT += -DBYTE_ORDER_BIG_ENDIAN=0
|
CRC32C_CPPFLAGS_INT += -DBYTE_ORDER_BIG_ENDIAN=0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
crc32c_libcrc32c_a_CPPFLAGS = $(AM_CPPFLAGS) $(CRC32C_CPPFLAGS_INT) $(CRC32C_CPPFLAGS)
|
crc32c_libcrc32c_la_CPPFLAGS = $(AM_CPPFLAGS) $(CRC32C_CPPFLAGS_INT) $(CRC32C_CPPFLAGS)
|
||||||
crc32c_libcrc32c_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
||||||
|
|
||||||
crc32c_libcrc32c_a_SOURCES =
|
# Specify -static in both CXXFLAGS and LDFLAGS so libtool will only build a
|
||||||
crc32c_libcrc32c_a_SOURCES += crc32c/include/crc32c/crc32c.h
|
# static version of this library. We don't need a dynamic version, and a dynamic
|
||||||
crc32c_libcrc32c_a_SOURCES += crc32c/src/crc32c_arm64.h
|
# version can't be used on windows anyway because the library doesn't currently
|
||||||
crc32c_libcrc32c_a_SOURCES += crc32c/src/crc32c_arm64_check.h
|
# export DLL symbols.
|
||||||
crc32c_libcrc32c_a_SOURCES += crc32c/src/crc32c_internal.h
|
crc32c_libcrc32c_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static
|
||||||
crc32c_libcrc32c_a_SOURCES += crc32c/src/crc32c_prefetch.h
|
crc32c_libcrc32c_la_LDFLAGS = $(AM_LDFLAGS) -static
|
||||||
crc32c_libcrc32c_a_SOURCES += crc32c/src/crc32c_read_le.h
|
|
||||||
crc32c_libcrc32c_a_SOURCES += crc32c/src/crc32c_round_up.h
|
|
||||||
crc32c_libcrc32c_a_SOURCES += crc32c/src/crc32c_sse42_check.h
|
|
||||||
crc32c_libcrc32c_a_SOURCES += crc32c/src/crc32c_sse42.h
|
|
||||||
|
|
||||||
crc32c_libcrc32c_a_SOURCES += crc32c/src/crc32c.cc
|
crc32c_libcrc32c_la_SOURCES =
|
||||||
crc32c_libcrc32c_a_SOURCES += crc32c/src/crc32c_portable.cc
|
crc32c_libcrc32c_la_SOURCES += crc32c/include/crc32c/crc32c.h
|
||||||
|
crc32c_libcrc32c_la_SOURCES += crc32c/src/crc32c_arm64.h
|
||||||
|
crc32c_libcrc32c_la_SOURCES += crc32c/src/crc32c_arm64_check.h
|
||||||
|
crc32c_libcrc32c_la_SOURCES += crc32c/src/crc32c_internal.h
|
||||||
|
crc32c_libcrc32c_la_SOURCES += crc32c/src/crc32c_prefetch.h
|
||||||
|
crc32c_libcrc32c_la_SOURCES += crc32c/src/crc32c_read_le.h
|
||||||
|
crc32c_libcrc32c_la_SOURCES += crc32c/src/crc32c_round_up.h
|
||||||
|
crc32c_libcrc32c_la_SOURCES += crc32c/src/crc32c_sse42_check.h
|
||||||
|
crc32c_libcrc32c_la_SOURCES += crc32c/src/crc32c_sse42.h
|
||||||
|
|
||||||
|
crc32c_libcrc32c_la_SOURCES += crc32c/src/crc32c.cc
|
||||||
|
crc32c_libcrc32c_la_SOURCES += crc32c/src/crc32c_portable.cc
|
||||||
|
|
||||||
if ENABLE_SSE42
|
if ENABLE_SSE42
|
||||||
LIBCRC32C_SSE42_INT = crc32c/libcrc32c_sse42.a
|
LIBCRC32C_SSE42_INT = crc32c/libcrc32c_sse42.la
|
||||||
EXTRA_LIBRARIES += $(LIBCRC32C_SSE42_INT)
|
noinst_LTLIBRARIES += $(LIBCRC32C_SSE42_INT)
|
||||||
LIBCRC32C += $(LIBCRC32C_SSE42_INT)
|
LIBCRC32C += $(LIBCRC32C_SSE42_INT)
|
||||||
|
|
||||||
crc32c_libcrc32c_sse42_a_CPPFLAGS = $(crc32c_libcrc32c_a_CPPFLAGS)
|
crc32c_libcrc32c_sse42_la_CPPFLAGS = $(crc32c_libcrc32c_la_CPPFLAGS)
|
||||||
crc32c_libcrc32c_sse42_a_CXXFLAGS = $(crc32c_libcrc32c_a_CXXFLAGS) $(SSE42_CXXFLAGS)
|
crc32c_libcrc32c_sse42_la_CXXFLAGS = $(crc32c_libcrc32c_la_CXXFLAGS) $(SSE42_CXXFLAGS)
|
||||||
|
crc32c_libcrc32c_sse42_la_LDFLAGS = $(crc32c_libcrc32c_la_LDFLAGS)
|
||||||
|
|
||||||
crc32c_libcrc32c_sse42_a_SOURCES = crc32c/src/crc32c_sse42.cc
|
crc32c_libcrc32c_sse42_la_SOURCES = crc32c/src/crc32c_sse42.cc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if ENABLE_ARM_CRC
|
if ENABLE_ARM_CRC
|
||||||
LIBCRC32C_ARM_CRC_INT = crc32c/libcrc32c_arm_crc.a
|
LIBCRC32C_ARM_CRC_INT = crc32c/libcrc32c_arm_crc.la
|
||||||
EXTRA_LIBRARIES += $(LIBCRC32C_ARM_CRC_INT)
|
noinst_LTLIBRARIES += $(LIBCRC32C_ARM_CRC_INT)
|
||||||
LIBCRC32C += $(LIBCRC32C_ARM_CRC_INT)
|
LIBCRC32C += $(LIBCRC32C_ARM_CRC_INT)
|
||||||
|
|
||||||
crc32c_libcrc32c_arm_crc_a_CPPFLAGS = $(crc32c_libcrc32c_a_CPPFLAGS)
|
crc32c_libcrc32c_arm_crc_la_CPPFLAGS = $(crc32c_libcrc32c_la_CPPFLAGS)
|
||||||
crc32c_libcrc32c_arm_crc_a_CXXFLAGS = $(crc32c_libcrc32c_a_CXXFLAGS) $(ARM_CRC_CXXFLAGS)
|
crc32c_libcrc32c_arm_crc_la_CXXFLAGS = $(crc32c_libcrc32c_la_CXXFLAGS) $(ARM_CRC_CXXFLAGS)
|
||||||
|
crc32c_libcrc32c_arm_crc_la_LDFLAGS = $(crc32c_libcrc32c_la_LDFLAGS)
|
||||||
|
|
||||||
crc32c_libcrc32c_arm_crc_a_SOURCES = crc32c/src/crc32c_arm64.cc
|
crc32c_libcrc32c_arm_crc_la_SOURCES = crc32c/src/crc32c_arm64.cc
|
||||||
endif
|
endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue