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 | 8e56cf3fca209d7c2858b5ccb326330f42ebf5d5 (patch) | |
| tree | 85530eb6111eb6aab19268c16c2c8a1679ed8fba /qpid/cpp/INSTALL | |
| parent | ff5323d8a0ab9bca96152896337f498335f0c4b3 (diff) | |
| download | qpid-python-8e56cf3fca209d7c2858b5ccb326330f42ebf5d5.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@1457098 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/INSTALL')
| -rw-r--r-- | qpid/cpp/INSTALL | 127 |
1 files changed, 12 insertions, 115 deletions
diff --git a/qpid/cpp/INSTALL b/qpid/cpp/INSTALL index 770a16f72f..47af4a3b3e 100644 --- a/qpid/cpp/INSTALL +++ b/qpid/cpp/INSTALL @@ -10,16 +10,12 @@ Table of Contents 2.2. How to Install 2.2.1. Using Package Management Tools 2.2.2. From Source - b. boost - c. autotools 2.3. Important Environment Variable Settings 3. Building from a Source Distribution 4. Building a Repository Working Copy 5. Portability 6. Tests -7. Doxygen -8. Troubleshooting 1. Introduction @@ -38,8 +34,7 @@ This also explains how to install the required prerequisites for Qpid/C++. 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. Older unix versions, for example, -Redhat Linux 3, will almost certainly require some packages to be upgraded. +these as a recommended minimum version. 2.1. What to Install @@ -72,11 +67,9 @@ Qpid has been built using the GNU C++ compiler: 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) - * autoconf <http://www.gnu.org/software/autoconf/> (2.61) - * automake <http://www.gnu.org/software/automake/> (1.9.6) * help2man <http://www.gnu.org/software/help2man/> (1.36.4) - * libtool <http://www.gnu.org/software/libtool/> (1.5.22) * 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) @@ -92,6 +85,7 @@ the following must also be installed: * 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 @@ -107,7 +101,7 @@ e2fsprogs-devel package. On linux most packages can be installed using your distribution's package management tool. For example on Fedora: - # yum install boost-devel libuuid-devel pkgconfig gcc-c++ make autoconf automake ruby libtool help2man doxygen graphviz + # 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 @@ -150,39 +144,6 @@ boost # bjam toolset=gcc variant=release threading=single link=shared \ --layout=system --prefix=~/qpid-tools install -c. autotools -============ -If you don't have sufficiently up-to-date autotools you can get the -latest by running the script qpid-autotools-install. - -1. Decide where you would like to install the tools. It should be in a - local directory so that you do not need root privileges. (Suggest - $HOME/qpid-tools.) Create an empty directory. -2. Modify your environment variable PATH to ensure that the bin directory - within this directory comes first in the PATH string: - PATH=$HOME/qpid-tools/bin:$PATH -3. Set PKG_CONFIG_PATH=$HOME/qpid-tools/lib/pkgconfig:/usr/lib/pkgconfig - (or if it already exists, make sure that the above path to your - qpid-tools directory is first). -4. Run the install utility from the cpp directory: - ./qpid-autotools-install --prefix=$HOME/qpid-tools --skip-check - (Note that --prefix will only accept an absolute path, so don't use - ~/qpid-tools.) The utility will download, compile and install the - required tools into the qpid-tools directory (this may take a little - time). Watch for any notices about paths at the end of the install - - this means that your environment is not correct - see steps 2 and 3 - above. - NOTE: If you omit the --skip-check option, the check of the build - can add up to an hour to what is normally a few minutes of install - time. -5. Perform a check: from the command-line run "which automake" and - ensure that it finds the automake in your qpid-tools directory. If not, - check that the build completed normally and your environment. -6. (Optional) If having the build artifacts lying around bothers you, delete - the (hidden) build directory cpp/.build-auto-tools. - -To see help, run ./qpid-autotools-install --help. - 2.3. Important Environment Variable Settings ============================================ @@ -191,11 +152,6 @@ manually installed to non-standard locations. For example: # export PATH=~/qpid-tools/bin:$PATH -Ensure that pkg-config is set up correctly. For example: - - # export PKG_CONFIG_PATH=~/qpid-tools/lib/pkgconfig:/usr/local/pkgconfig - # export PKG_CONFIG=~/qpid-tools/bin/pkg-config - Ensure that the boost libraries are made available on the gcc library path. For example: @@ -204,65 +160,36 @@ For example: 3. Building from a Source Distribution ====================================== -In the distribution directory - -Build and install with: +In the distribution directory, build and install with: - # ./configure --prefix=<install_location> + # cmake . # Note "." for the current directory # make all # make install To build and test everything: # make - # make check + # 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: - # make distclean # mkdir .build-dbg .build-opt - # (cd .build-opt ../configure --prefix=/tmp/x && make && make check) - # (cd .build-dbg ../configure CXXFLAGS=-g --prefix=/tmp/x \ - && make && make check) + # (cd .build-dbg; cmake -DCMAKE_CXX_FLAGS=-g .. && make ) # Note ".." for parent dir + # (cd .build-dbg; 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 a fresh checkout: - -Cd to qpid/cpp subdirectory. Before running make on a fresh checkout do: - - # ./bootstrap - -This generates config, makefiles and the like - check the script for -details. You only need to do this once, "make" will keep everything up -to date thereafter (including re-generating configuration & Makefiles -if the automake templates change etc.) - -If you are developing code yourself, or if you want to help -us keep the code as tight and robust as possible, consider enabling -the use of valgrind. If you configure like this: - - # ./configure --enable-valgrind - -That will arrange (assuming you have valgrind installed) for "make check" -to run tests via valgrind. That makes the tests run more slowly, but -helps detect certain types of bugs, as well as memory leaks. If you run -"make check" and valgrind detects a leak that is not listed as being -"ignorable-for-now", the test script in question will fail. However, -recording whether a leak is ignorable is not easy, when the stack -signature, libraries, compiler, O/S, architecture, etc., may all vary, -so if you see a new leak, try to figure out if it's one you can fix -before adding it to the list. - -Now follow instruction for building from a source distribution in step (3). +To build, cd to qpid/cpp subdirectory and then follow instruction for building +from a source distribution in step (3). 5. Portability @@ -274,37 +201,7 @@ code. These wrappers are mainly inline by-value classes so they impose no run-time penalty compared do direct system calls. -Initially we will have a full linux implementation and a portable -implementation sufficient for the client using the APR portability -library. The implementations may change in future but the interface -for qpid code outside the qpid/sys namespace should remain stable. - - 6. Tests ======== See src/tests/README.txt for details. - -7. Doxygen -========== -Doxygen generates documentation in several formats from source code -using special comments. You can use javadoc style comments if you know -javadoc, if you don't or want to know the fully story on doxygen -markup see http://www.stack.nl/~dimitri/doxygen/ - -Even even if the code is completely uncommented, doxygen generates -UML-esque dependency diagrams that are ''extremely'' useful in navigating -around the code, especially for newcomers. - -To try it out "make doxygen" then open doxygen/html/index.html. - - -8. Troubleshooting -================== -When building, get the following on configure - configure: error: Package requirements (apr-1 >= 1.2.2) were not met: - - No package 'apr-1' found - -The following has not been set - export PKG_CONFIG_PATH=$HOME/qpid-tools/lib/pkgconfig:/usr/lib/pkgconfig |
