diff options
| author | Alan Conway <aconway@apache.org> | 2013-03-15 20:27:37 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2013-03-15 20:27:37 +0000 |
| commit | 021836b659be167b93f00bd76043a3fff53819eb (patch) | |
| tree | 52e19f97f967568a7de304fb867e2a5288c6e47a /cpp/INSTALL-AUTOTOOLS | |
| parent | 9bdb24353d5eaf69ebf2c741ef6160d09fd90597 (diff) | |
| download | qpid-python-021836b659be167b93f00bd76043a3fff53819eb.tar.gz | |
QPID-4640: Deprecate autotools build system.
This patch does the following:
- Update INSTALL and README files to refer to the cmake build.
- configure script prints a deprecation notice.
The autotools instructions are still available in INSTALL-AUTOTOOLS,
which also has a deprecation notice.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1457098 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/INSTALL-AUTOTOOLS')
| -rw-r--r-- | cpp/INSTALL-AUTOTOOLS | 224 |
1 files changed, 224 insertions, 0 deletions
diff --git a/cpp/INSTALL-AUTOTOOLS b/cpp/INSTALL-AUTOTOOLS new file mode 100644 index 0000000000..20461cb609 --- /dev/null +++ b/cpp/INSTALL-AUTOTOOLS @@ -0,0 +1,224 @@ + + + ============================== DEPRECATED ============================== + + This file describes how to use the autotools build system to build Qpid. + The autotools build system is *deprecated* and will be removed in a + future release. Use the cmake build system instead as described in the + INSTALL file. + + You can continue using the autoconf build system until you switch to + cmake. Run configure with --enable-deprecated=yes to enable it. + + ======================================================================== + + Installing Qpid/C++ + =================== + +Table of Contents +================= +1. Introduction + +2. Prerequisites + 2.1. What to Install + 2.2. How to Install + 2.2.1. Using Package Management Tools + 2.2.2. From Source + 2.3. Important Environment Variable Settings + +3. Building from a Source Distribution +4. Building a Repository Working Copy +5. Portability +6. Tests + + +1. Introduction +=============== +Note that the daemon and client API can be installed separately. + +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. + +This also explains how to install the required prerequisites for Qpid/C++. + + +2. 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 succesfull build are given in brackets, take +these as a recommended minimum version. + + +2.1. What to Install +==================== +The following libraries and header files must be installed to build +a source distribution: + * boost <http://www.boost.org> (1.35)(*) + * libuuid <http://kernel.org/~kzak/util-linux/> (2.19) + * pkgconfig <http://pkgconfig.freedesktop.org/wiki/> (0.21) + +(*) earlier versions of boost e.g. 1.33 also work and there is a patch +to get 1.32 working in the svn tree though that is only recommended as +a last resort. + +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 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/> (3.4.6) + +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) + + +NOTE: make sure to install the related '-devel' packages also! + +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. + +2.2. How to Install +=================== + +2.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. + +2.2.2. 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 pakcages: + + 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 + + +2.3. Important Environment Variable Settings +============================================ +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 the boost libraries are made available on the gcc library path. +For example: + + # export CXXFLAGS=-I~/qpid-tools/include/boost-1_33_1 + + +3. Building from a Source Distribution +====================================== +In the distribution directory + +Build and install with: + + # mkdir build + # cd build + # cmake .. + # make all + # make install + +To build and test everything: + + # make + # make test + +This builds in the source tree. You can have multiple builds in 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 .build-dbg .build-opt + # (cd .build-dbg; cmake cmake -DCMAKE_CXX_FLAGS=-g .. && make ) + # (cd .build-dbg; cmake cmake -DCMAKE_CXX_FLAGS=-O3 .. && make) + + +4. 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 instruction for building +from a source distribution in step (3). + + +5. Portability +============== +All system calls are abstracted by classes under lib/common/sys. This +provides an object-oriented C++ API and contains platform-specific +code. + +These wrappers are mainly inline by-value classes so they impose no +run-time penalty compared do direct system calls. + +6. Tests +======== +See src/tests/README.txt for details. + |
