summaryrefslogtreecommitdiff
path: root/qpid/cpp/INSTALL
diff options
context:
space:
mode:
authorJustin Ross <jross@apache.org>2016-04-20 00:02:02 +0000
committerJustin Ross <jross@apache.org>2016-04-20 00:02:02 +0000
commita835fb2724824dcd8a470fb51424cedeb6b38f62 (patch)
tree48e5d8591c0029ac500330bf87b78bf9a99ed238 /qpid/cpp/INSTALL
parentda7718ef463775acc7d6fbecf2d64c1bbfc39fd8 (diff)
downloadqpid-python-a835fb2724824dcd8a470fb51424cedeb6b38f62.tar.gz
QPID-7207: Rename and relocate files inside the cpp subtree
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1740034 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/INSTALL')
-rw-r--r--qpid/cpp/INSTALL327
1 files changed, 0 insertions, 327 deletions
diff --git a/qpid/cpp/INSTALL b/qpid/cpp/INSTALL
deleted file mode 100644
index 717c9b0908..0000000000
--- a/qpid/cpp/INSTALL
+++ /dev/null
@@ -1,327 +0,0 @@
- Installing Qpid/C++
- ===================
-
-Table of Contents
-=================
-1. Introduction
-2. How to Build and Install Qpid from a Source Distribution
-3. Building a Repository Working Copy
-4. Tests
-
-5. Prerequisites
- 5.1. What Prerequisite Libraries to Install
- 5.2. How to Install Prerequisite Libraries
- 5.2.1. Using Package Management Tools
- 5.2.2. Building Prerequisites From Source
- 5.3. Important Environment Variable Settings
-
-
-1. Introduction
-===============
-This document describes how to build the Qpid/C++ broker and client, either
-from a checkout of the source or from a source distribution, on Linux/UNIX.
-
-Please see INSTALL-WINDOWS for information on building on Windows.
-
-There are a number of prerequisite libraries that may need to be installed.
-If this is the first time that you have built Qpid please check the prerequisites
-section 5. below and/or check the output from running cmake for any errors.
-
-As of Qpid 0.26 cmake (versions 2.6 or 2.8) is the only way to build Qpid.
-
-
-2. How to Build and Install Qpid from a Source Distribution
-===========================================================
-It is strongly recommended that you use a separate build directory and do not try to
-build in the source directory. You may use a build directory in any convenient place.
-These instructions use a build directory inside the source tree but this isn't essential.
-
-In the cpp distribution directory (<qpid>/cpp), build the code with:
-
- # mkdir bld # This is just a suggested name for the build directory
- # cd bld
- # cmake .. # ".." is the path to the distribution directory
-
- # make all
-
-To run the tests:
-
- # make test
-
-To install (you may need to be root/sudo to do this):
-
- # make install
-
-To uninstall (you may need to be root/sudo to do this):
-
- # make uninstall
-
-
-The daemon and client API may be built separately if so desired:
-
- # make qpidbroker
-
- # make qpidclient
-
-The available make targets can be listed using:
-
- # make help
-
-
-You can have multiple builds which use the same working copy with different
-configuration. For example you can do the following to build twice, once for
-debug, the other with optimization:
-
- # mkdir BLD-dbg BLD-opt
- # (cd BLD-dbg; cmake -DCMAKE_BUILD_TYPE=Debug .. && make )
- # (cd BLD-opt; cmake -DCMAKE_BUILD_TYPE=Release .. && make)
-
-Note that there are 4 different predefined cmake build types:
-Debug, Release, MinSizeRel, DebWithRelInfo: They each correspond to a different
-set of build flags for respectively debug; release; minimum size release; release
-with debug information.
-
-To see and edit all the available cmake options:
-
- # cmake-gui .. # ".." is the path to the source directory
-
-Or if you have only have a command line environment available
-
- # ccmake .. # ".." is the path to the source directory
-
-2.1 Building as C++11 (Experimental)
-====================================
-Currently the Qpid project uses C++ that conforms to the C++03 standard, as currently
-this is the C++ standard that is supported the most widely, so any new code must also
-compile as C++03. As an experiment (and to support a few extra platforms) the Qpid code
-will also now build as C++11.
-
-This will work under both gcc and clang. However when compiled under gcc you will hit some
-depracation watrnings which will need to be suppressed.
-
-To compile as C++11 under gcc configure using cmake like this:
-
- # cmake -DCMAKE_CXX_FLAGS="-std=c++11 -Wno-error=deprecated-declarations" ..
-
-To compile as C++11 under clang configure using cmake like this:
-
- # CXX=clang++ CC=clang cmake -DBUILD_PROBES=no -DCMAKE_CXX_FLAGS=-std=c++11 ..
-
-2.2 Building with the clang C++ compiler
-========================================
-Qpid will build with the clang compiler as well as gcc. When compiling using clang the probe
-code will not compile so will need to be turned off.
-
-To compile using clang configure with cmake as follows:
-
- # CXX=clang++ CC=clang cmake -DBUILD_PROBES=no ..
-
-2.3 Building on FreeBSD
-=======================
-Qpid will build (and run) under FreeBSD using the clang compiler, compiling on FreeBSD using gcc
-is not being worked on, and indeed from FreeBSD 10 and onwards the system compiler is clang.
-
-Under FreeBSD 10 the C++ standard library is provided by libc++ rather than libstdc++ (which is the
-norm under Linux). There seems to be a bug in boost::lexical_cast which exhibits when compiling Qpid
-under C++03 with libc++ but not C++11 with libc++. This means that you have to compile Qpid as C++11
-under FreeBSD 10.
-
- # cmake -DCMAKE_CXX_FLAGS=-std=c++11 -DBUILD_BINDING_PERL=no ..
-
-It is not necessary to specify CXX=clang++ because it is the system compiler under FreeBSD 10;
-similarly we don't try to build the probe code on FreeBSD at this point because it doesn't work
-there yet, so it doesn't need to be explicitly turned off.
-
-We turn building the PERL bindings off because the perl header file is incompatible with C++11 currently.
-
-If you want to use the ports version of cyrus-sasl then you should also add:
-
- -DCMAKE_REQUIRED_FLAGS=-L/usr/local/lib -DCMAKE_REQUIRED_INCLUDES=/usr/local/include
-
-Which will allow cmake to find libraries installed in /usr/local (which is where cyrus-sasl gets
-installed by ports).
-
-2.4 Building on AIX
-===================
-Qpid has been tested on AIX 7.1 with XL C++ 13.1 and Boost 1.55.0. The
-thread-using variant of the compiler must be used but it isn't the default
-picked up by cmake. Thus, the compiler must be specified at cmake time.
-For example (assuming PATH includes the compiler binaries):
-
- # CXX=xlC_r CC=cc_r cmake ..
-
-Warnings from Boost header files are expected and can be ignored.
-
-It is normal to see (lots of) multiply-defined symbol warnings when linking
-the shared libraries built as part of Qpid.
-
-The mktemp package must be installed separately in order to execute the
-Qpid test suite.
-
-3. Building a Repository Working Copy
-=====================================
-To get the source code from the subversion repository (trunk) do:
-
- # svn checkout http://svn.apache.org/repos/asf/qpid/trunk/qpid/.
-
-To build, cd to <qpid>/cpp subdirectory and then follow the instructions for building
-from a Source Distribution in step (2).
-
-
-4. Tests
-========
-See <qpid>/cpp/src/tests/README.txt for details.
-
-
-======================================================================================
-
-
-5. Prerequisites
-================
-We prefer to avoid spending time accommodating older versions of these
-packages, so please make sure that you have the latest stable versions.
-Known version numbers for a succesful build are given in brackets, take
-these as a recommended minimum version.
-
-
-5.1. What Prerequisite Libraries to Install
-===========================================
-The following libraries and header files must be installed to build
-a source distribution:
- * boost <http://www.boost.org> (1.41) (*)
- * libuuid <http://kernel.org/~kzak/util-linux/> (2.19)
- * pkgconfig <http://pkgconfig.freedesktop.org/wiki/> (0.21)
-
-(*) Boost 1.33 will also work.
-
-Optional support for AMQP 1.0 requires (see AMQP_1.0 for details):
-* Qpid proton-c <http://qpid.apache.org/proton> (0.5)
-Note: If Proton is installed in a non-standard location, there are two ways to locate it:
-1. Recommended: use proton 0.7 or later and use the same install prefix
- for both Proton and Qpid.
-2. Using pkg-config: set the PKG_CONFIG_PATH environment variable to
- <proton-prefix>/lib[64]/pkgconfig before running cmake.
-
-Optional XML exchange requires:
- * xqilla <http://xqilla.sourceforge.net/HomePage> (2.0.0)
- * xerces-c <http://xerces.apache.org/xerces-c/> (2.7.0)
-
-Optional SSL support requires:
-* nss <http://www.mozilla.org/projects/security/pki/nss/>
-* nspr <http://www.mozilla.org/projects/nspr/>
-
-Optional RDMA transport protocol requires:
-* libibverbs <http://www.openfabrics.org/> (1.1)
-* librdmacm <http://www.openfabrics.org/> (1.0)
-
-Optional binding support for ruby requires:
-* ruby and ruby devel <http://www.ruby-lang.org/en/>
-* swig <http://www.swig.org/>
-
-Qpid has been built using the GNU C++ compiler:
- * gcc <http://gcc.gnu.org/> (4.1.2)
-
-If you want to build directly from the SVN repository you will need
-all of the above plus:
-
- * Cmake <http://www.cmake.org/> (2.6.4)
- * GNU make <http://www.gnu.org/software/make/> (3.8.0)
- * help2man <http://www.gnu.org/software/help2man/> (1.36.4)
- * doxygen <ftp://ftp.stack.nl/pub/users/dimitri/> (1.5.1)
- * graphviz <http://www.graphviz.org/> (2.12)
- * ruby 1.8 <http://www.ruby-lang.org> (1.8.4)
- * python 2.x <http://www.python.org> (2.4.3)
-
-NOTE: make sure to install the related '-devel' packages also!!!!
-
-NOTE: Python 3.x is known to NOT work - please use 2.7 or earlier.
-
-To build the QMF (Qpid Management Framework) bindings for Ruby and Python,
-the following must also be installed:
-
- * ruby-devel
- * python-devel
- * swig <http://www.swig.org> (1.3.35)
-
-UUID problems:
-
-In some earlier Linux releases (such as Fedora 11), the uuid/uuid.h
-file is located in the e2fsprogs-devel package instead of
-libuuid-devel. If you are using an older Linux release and run into a
-problem during configure in which uuid.h cannot be found, install the
-e2fsprogs-devel package.
-
-5.2. How to Install Prerequisite Libraries
-==========================================
-
-5.2.1. Using Package Management Tools
-=====================================
-On linux most packages can be installed using your distribution's
-package management tool. For example on Fedora:
-
- # yum install cmake boost-devel libuuid-devel pkgconfig gcc-c++ make ruby help2man doxygen graphviz
-
-For SASL and SSL, include
- # yum install cyrus-sasl-devel nss-devel nspr-devel
-
-For the XML Exchange, include:
-
- # yum install xqilla-devel xerces-c-devel
-
-Optional ruby binding support include:
- # yum install ruby ruby-devel swig
-
-Optional legacystore store module.
-# yum install libdb-cxx-devel libaio-devel
-
-Follow the manual installation instruction below for any packages not
-available through your distributions packaging tool.
-
-5.2.2. Building Prerequisites From Source
-=========================================
-Required dependencies can be installed and built from source distributions.
-It is recommended that you create a directory to install them to, for example,
-~/qpid-tools.
-
- To build and install the dependency packages:
-
- 1. Unzip and untar them and cd to the untared directory.
- 2. do:
- # ./configure --prefix=~/qpid-tools
- # make install
-
-The exception is boost.
-
-boost
-=====
- 1. Unpack boost-jam.
- 2. Add bjam in the unpacked directory to your path.
- 3. Unpack boost and cd to the boost untarred directory.
- 4. do:
-
- # bjam toolset=gcc variant=release threading=single link=shared \
- --layout=system --prefix=~/qpid-tools install
-
-
-5.3. Important Environment Variable Settings
-============================================
-Note that the following is generally not necessary if dependency packages have been
-installed using Package Management Tools such as yum or apt.
-
-Ensure that all the build tools are available on your path, when they are
-manually installed to non-standard locations. For example:
-
- # export PATH=~/qpid-tools/bin:$PATH
-
-Ensure that pkg-config is set up correctly. This is especially important
-if you have built the dependencies from source, as they may not be installed
-in the default system location. For example:
-
- # export PKG_CONFIG_PATH=~/qpid-tools/lib/pkgconfig:/usr/local/lib/pkgconfig
- # export PKG_CONFIG=~/qpid-tools/bin/pkg-config
-
-Ensure that the boost libraries are made available on the gcc library path.
-For example:
-
- # export CXXFLAGS=-I~/qpid-tools/include/boost-1_33_1
-