Return-Path: X-Original-To: apmail-qpid-users-archive@www.apache.org Delivered-To: apmail-qpid-users-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BCAA71010C for ; Tue, 14 Jan 2014 21:30:34 +0000 (UTC) Received: (qmail 87419 invoked by uid 500); 14 Jan 2014 21:30:33 -0000 Delivered-To: apmail-qpid-users-archive@qpid.apache.org Received: (qmail 87374 invoked by uid 500); 14 Jan 2014 21:30:33 -0000 Mailing-List: contact users-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@qpid.apache.org Delivered-To: mailing list users@qpid.apache.org Received: (qmail 87364 invoked by uid 99); 14 Jan 2014 21:30:33 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Jan 2014 21:30:33 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of robbie.gemmell@gmail.com designates 209.85.214.41 as permitted sender) Received: from [209.85.214.41] (HELO mail-bk0-f41.google.com) (209.85.214.41) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Jan 2014 21:30:28 +0000 Received: by mail-bk0-f41.google.com with SMTP id u12so289908bkz.28 for ; Tue, 14 Jan 2014 13:30:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=P6MtQla8gFeX3+thvL5J9McaNvzIWRvnJsOj9F6UPYM=; b=xWQJqp+uduMKViHbyeMoOp/IVoyuDnW6os5yDk0izSqEMa6cgyDmdMUgKveYVmbcSH WFcVqrcnVpcb7vynFyIag/KyEcrn35nd1JLjL2P/1FPBG76iA1BfBdcXcj7qxFrELxn5 0+eJ5nBskCUHLQG27hR+K0ilNPVzMp3Eb3F/A3Qgd6kICGyx4wOevKKKhWR7ei8lxeih tJdVn5ErgYrNEK6f0Q0q8LfhUKC6nvzMVjHPKcWZU1ChCmpQjetzKvgiLzZFpiNfaJd8 tQgcscXNMx2ibepjyVvWIef2SjOZgkD24p13JBwctIxMnadwG9k1SC+YPOLo2dyfNY8W aOxg== MIME-Version: 1.0 X-Received: by 10.205.47.73 with SMTP id ur9mr1016115bkb.116.1389735007402; Tue, 14 Jan 2014 13:30:07 -0800 (PST) Received: by 10.205.20.138 with HTTP; Tue, 14 Jan 2014 13:30:07 -0800 (PST) In-Reply-To: References: Date: Tue, 14 Jan 2014 21:30:07 +0000 Message-ID: Subject: Re: How to build qpid with proton v0.5, boost v1.55.0 statically on fedora19 From: Robbie Gemmell To: "users@qpid.apache.org" Content-Type: multipart/alternative; boundary=bcaec529945d72eb3304eff4e51d X-Virus-Checked: Checked by ClamAV on apache.org --bcaec529945d72eb3304eff4e51d Content-Type: text/plain; charset=ISO-8859-1 Hi Davin, I am completely the wrong person to answer your actual question I'm afraid, but just to say... The vote to release RC3 as Proton 0.6 passed earlier today, so if you wanted to try with that before it is properly distributed you can currently find it here: http://people.apache.org/~rhs/qpid-proton-0.6rc3/ Hopefully someone who can actually help will be along next... Robbie On 14 January 2014 20:56, Shearer, Davin wrote: > Want to create all libraries statically and boost statically, so updated > the CMakeLists.txt to make that happen (I'm not an expert on cmake, so let > me know if this is the wrong way to build static libraries): > > ----- > diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt > index c77b753..22f72f0 100644 > --- a/qpid/cpp/src/CMakeLists.txt > +++ b/qpid/cpp/src/CMakeLists.txt > @@ -306,7 +306,7 @@ endif (BUILD_TESTING) > # Boost on Windows can use automatic linking to pick up the correct > # Boost libs based on compile-time touching of the headers. Since we don't > # really need to add them to the link lines, set the names to blanks. > -option(QPID_LINK_BOOST_DYNAMIC "Link with dynamic Boost libs (OFF to link > static)" ON) > +option(QPID_LINK_BOOST_DYNAMIC "Link with dynamic Boost libs (OFF to link > static)" OFF) > mark_as_advanced(QPID_LINK_BOOST_DYNAMIC) > > if (MSVC) > @@ -912,7 +912,7 @@ set (qpidcommon_SOURCES > ) > add_msvc_version (qpidcommon library dll) > > -add_library (qpidcommon SHARED ${qpidcommon_SOURCES}) > +add_library (qpidcommon STATIC ${qpidcommon_SOURCES}) > > target_link_libraries (qpidcommon qpidtypes > ${qpidcommon_platform_LIBS} > @@ -943,7 +943,7 @@ set_source_files_properties( > COMPILE_FLAGS "${HIDE_SYMBOL_FLAGS}") > > add_msvc_version (qpidtypes library dll) > -add_library(qpidtypes SHARED ${qpidtypes_SOURCES}) > +add_library(qpidtypes STATIC ${qpidtypes_SOURCES}) > target_link_libraries(qpidtypes ${qpidtypes_platform_LIBS}) > set_target_properties (qpidtypes PROPERTIES > LINK_FLAGS "${HIDE_SYMBOL_FLAGS} > ${LINK_VERSION_SCRIPT_FLAG}" > @@ -999,7 +999,7 @@ set (qpidclient_SOURCES > ) > add_msvc_version (qpidclient library dll) > > -add_library (qpidclient SHARED ${qpidclient_SOURCES}) > +add_library (qpidclient STATIC ${qpidclient_SOURCES}) > > target_link_libraries (qpidclient qpidcommon > ${Boost_PROGRAM_OPTIONS_LIBRARY} > @@ -1070,7 +1070,7 @@ set (qpidmessaging_SOURCES > > add_msvc_version (qpidmessaging library dll) > > -add_library (qpidmessaging SHARED ${qpidmessaging_SOURCES}) > +add_library (qpidmessaging STATIC ${qpidmessaging_SOURCES}) > target_link_libraries (qpidmessaging qpidtypes qpidclient qpidcommon > "${Boost_PROGRAM_OPTIONS_LIBRARY}" ${PROTON_LIB > set_target_properties (qpidmessaging PROPERTIES > LINK_FLAGS "${HIDE_SYMBOL_FLAGS} > ${LINK_VERSION_SCRIPT_FLAG}" > @@ -1092,7 +1092,7 @@ if (MSVC) > set(qpidxarm_SOURCES > ${AMQP_WCF_DIR}/src/Apache/Qpid/DtcPlugin/DtcPlugin.cpp) > if (EXISTS ${qpidxarm_SOURCES}) > add_msvc_version (qpidxarm library dll) > - add_library (qpidxarm SHARED ${qpidxarm_SOURCES}) > + add_library (qpidxarm STATIC ${qpidxarm_SOURCES}) > target_link_libraries (qpidxarm qpidclient qpidcommon) > install (TARGETS qpidxarm > RUNTIME DESTINATION ${QPID_INSTALL_BINDIR} > @@ -1203,7 +1203,7 @@ set (qpidbroker_SOURCES > qpid/sys/TCPIOPlugin.cpp > ) > add_msvc_version (qpidbroker library dll) > -add_library (qpidbroker SHARED ${qpidbroker_SOURCES}) > +add_library (qpidbroker STATIC ${qpidbroker_SOURCES}) > > target_link_libraries (qpidbroker qpidcommon qpidtypes > "${Boost_PROGRAM_OPTIONS_LIBRARY}" > @@ -1322,7 +1322,7 @@ endif (NOT WIN32) > ) > > add_msvc_version (qmf2 library dll) > - add_library (qmf2 SHARED ${qmf2_SOURCES}) > + add_library (qmf2 STATIC ${qmf2_SOURCES}) > target_link_libraries (qmf2 qpidmessaging qpidtypes qpidclient > qpidcommon) > set_target_properties (qmf2 PROPERTIES > VERSION ${qmf2_version} > ----- > > Want to link proton 0.50 static library > (/home/davin/external/proton-0.5/lib64/libqpid-proton.a): > > $ export > PKG_CONFIG_PATH=$HOME/external/proton-0.5/lib64/pkgconfig:$PKG_CONFIG_PATH > $ pkg-config --cflags libqpid-proton > -I/home/davin/external/proton-0.5/include -I/usr/include/uuid > $ pkg-config --libs libqpid-proton > -L/home/davin/external/proton-0.5/lib64 -lqpid-proton -lssl -lcrypto -luuid > > Want to link PIC, link boost v1.55.0 static libraries and enable AMQP 1.0 > (via proton): > > $ rm -rf build-cpp > $ mkdir build-cpp > $ cd build-cpp > $ cmake \ > -DBoost_LIBRARY_DIR:PATH="/home/davin/external/boost-1.55.0/boost/lib" \ > > -DBoost_INCLUDE_DIR:PATH="/home/davin/external/boost-1.55.0/boost/include" > \ > -DCMAKE_CXX_FLAGS:STRING="-Wno-unused-local-typedefs > -Wno-ignored-qualifiers -fPIC -DPIC -DQMF_USE_DEPRECATED_API" \ > -DBUILD_AMQP:BOOL="1" ../qpid/cpp > > $ make all && make DESTDIR=$(readlink -e ..)/qpid-install install > > OS is fedora19, compiler is gcc 4.8.2. qpid is from SCM (git-svn-id: > https://svn.apache.org/repos/asf/qpid/trunk@1558037). The static boost > and > proton libraries are all built with -fPIC -DPIC. gcc 4.8 and boost 1.55.0 > generate many unused local typedef warnings with are suppressed with > -Wno-unused-local-typedefs and there is a warning about a qualifier being > ignored in boost, so we suppress that also with -Wno-ignored-qualifiers. > The QMF build is warning about using a deprecated API, so we suppress that > with -DPIC -DQMF_USE_DEPRECATED_API. > > I get this far: > > [ 78%] Building CXX object src/CMakeFiles/ha.dir/qpid/ha/types.cpp.o > [ 78%] Building CXX object src/CMakeFiles/ha.dir/qpid/ha/TxReplicator.cpp.o > Linking CXX shared module ha.so > /usr/bin/ld: cannot find -lqpid-proton > collect2: error: ld returned 1 exit status > make[2]: *** [src/ha.so] Error 1 > make[1]: *** [src/CMakeFiles/ha.dir/all] Error 2 > make: *** [all] Error 2 > > The build of ha.so should be using the LDFLAGS from pkg-config --libs (in > this case -L/home/davin/external/proton-0.5/lib64 -lqpid-proton -lssl > -lcrypto -luuid), but obviously it is not working correctly. > > $ ls -l /home/davin/external/proton-0.5/lib64/libqpid-proton.a > -rw-r--r-- 1 davin davin 553474 Dec 30 16:47 > /home/davin/external/proton-0.5/lib64/libqpid-proton.a > > Are the build scripts not using pkg-config correctly or am I not using > cmake correctly? > > -- > Davin Shearer > --bcaec529945d72eb3304eff4e51d--