diff --git a/src/Makefile.am b/src/Makefile.am index bbd2ac12a..d0c5b4b85 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -39,15 +39,22 @@ BITCOIN_INCLUDES += -I$(srcdir)/univalue/include BITCOIN_INCLUDES += -I$(srcdir)/leveldb/include if TARGET_WINDOWS -LIBBITCOIN_SERVER=libbitcoin_server.a -lcurl +LIBBITCOIN_SERVER=libbitcoin_server.a endif if TARGET_DARWIN -LIBBITCOIN_SERVER=libbitcoin_server.a -lcurl +LIBBITCOIN_SERVER=libbitcoin_server.a endif if TARGET_LINUX -LIBBITCOIN_SERVER=libbitcoin_server.a -lcurl +LIBBITCOIN_SERVER=libbitcoin_server.a endif +# libcurl is a linker flag, not a buildable library file. It must NOT live inside +# LIBBITCOIN_SERVER, which is also fed into EXTRA_LIBRARIES (a list of files automake +# builds) where a -l flag is illegal and triggers a portability error. Keep it as its +# own variable, added to each binary's _LDADD after libbitcoin_server.a (whose objects +# reference curl symbols) so static link order stays correct. +LIBCURL = -lcurl + LIBBITCOIN_WALLET=libbitcoin_wallet.a LIBBITCOIN_COMMON=libbitcoin_common.a LIBBITCOIN_CLI=libbitcoin_cli.a @@ -464,6 +471,7 @@ endif dragonxd_LDADD = \ $(LIBBITCOIN_SERVER) \ + $(LIBCURL) \ $(LIBBITCOIN_COMMON) \ $(LIBUNIVALUE) \ $(LIBBITCOIN_UTIL) \ diff --git a/src/Makefile.gtest.include b/src/Makefile.gtest.include index d73df92fe..c8fac764a 100644 --- a/src/Makefile.gtest.include +++ b/src/Makefile.gtest.include @@ -21,6 +21,7 @@ hush_gtest_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) # $(LIBBITCOIN_UNIVALUE) so univalue was never linked, and omitted LIBHUSH/LIBRANDOMX/libcc). hush_gtest_LDADD = -lgtest -lgmock \ $(LIBBITCOIN_SERVER) \ + $(LIBCURL) \ $(LIBBITCOIN_COMMON) \ $(LIBUNIVALUE) \ $(LIBBITCOIN_UTIL) \ diff --git a/src/Makefile.test.include b/src/Makefile.test.include index 775cda32a..7518342e6 100644 --- a/src/Makefile.test.include +++ b/src/Makefile.test.include @@ -112,13 +112,13 @@ endif test_test_bitcoin_SOURCES = $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES) test_test_bitcoin_CPPFLAGS = $(AM_CPPFLAGS) -fopenmp $(BITCOIN_INCLUDES) -I$(builddir)/test/ $(TESTDEFS) $(EVENT_CFLAGS) -test_test_bitcoin_LDADD = $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \ +test_test_bitcoin_LDADD = $(LIBBITCOIN_SERVER) $(LIBCURL) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \ $(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) test_test_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) if ENABLE_WALLET test_test_bitcoin_LDADD += $(LIBBITCOIN_WALLET) endif -test_test_bitcoin_LDADD += $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) \ +test_test_bitcoin_LDADD += $(LIBBITCOIN_SERVER) $(LIBCURL) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) \ $(LIBLEVELDB) $(LIBMEMENV) $(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1) $(EVENT_LIBS) $(EVENT_PTHREADS_LIBS) test_test_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)