| -------------------------------------------------------------------------- |
| ActiveMQ CPP Library |
| -------------------------------------------------------------------------- |
| |
| ActiveMQ CPP is a messaging library that can use multiple protocols to |
| talk to a MOM (e.g. ActiveMQ). |
| |
| |
| 1 Dependencies |
| -------------------------------------------------------------------------- |
| |
| 1.1 libuuid |
| -------------------------------------------------------------------------- |
| |
| The build requires the *libuuid* library that is part of the e2fsprogs |
| package and is available from http://e2fsprogs.sourceforge.net/ which is |
| not always installed by default. |
| |
| On Fedora, type the following: |
| |
| sudo yum install e2fsprogs-devel |
| |
| On Debian/Ubuntu, type the following: |
| |
| sudo apt-get install uuid-dev |
| |
| |
| 1.2 CppUnit |
| -------------------------------------------------------------------------- |
| |
| The package contains a complete set of CppUnit tests. In order for you to |
| build an run the tests, you will need to download and install the CppUnit |
| suite. See http://cppunit.sourceforge.net/cppunit-wiki |
| |
| On Fedora, type the following: |
| |
| sudo yum install cppunit |
| |
| On Debian/Ubuntu, type the following: |
| |
| sudo apt-get install libcppunit-dev |
| |
| Make sure that the paths to the installed CppUnit library and includes are |
| visible in your current shell before you try building the tests. |
| |
| Windows users will need to build the CppUnit library using the CPPUnit |
| MSVC project files. A discussion of the build process can be found |
| on the CPPUnit wiki under |
| http://cppunit.sourceforge.net/cppunit-wiki/BuildingCppUnit1 this covers |
| both MSVC along with many other platforms and tool suites. |
| |
| |
| 1.3 GNU Build System (for building on Unix/Linux/OS X/Cygwin) |
| -------------------------------------------------------------------------- |
| |
| To Generate the ./configure script use to create the Makefiles, you need |
| the following software installed: |
| |
| Tool Recommended Version |
| ------------------------------- |
| autoconf >= 2.59 |
| automake >= 1.9.6 |
| libtool >= 1.5.22 |
| |
| On Debian/Ubuntu, multiple versions of autoconf and automake are available |
| in separate packages. If you have multiple versions of autoconf or automake |
| installed on your system, you may have to configure the versions to use |
| using /usr/sbin/update-alternatives. |
| |
| 2 Building on Unix/Linux/OS X/Cygwin |
| -------------------------------------------------------------------------- |
| |
| This assumes you have all of the project dependencies installed. We're |
| now ready to create the configure script. To do this, run: |
| |
| ./autogen.sh |
| |
| ----------------------------------------------------------------------- |
| |NOTE: You may see the following warnings when running this command: | |
| | | |
| | src/test-integration/Makefile.am:44: `CXXFLAGS' is a user variable,| |
| |you should not override it; | |
| | src/test-integration/Makefile.am:44: use `AM_CXXFLAGS' instead. | |
| | src/test/Makefile.am:104: `CXXFLAGS' is a user variable, you | |
| |should not override it; | |
| | src/test/Makefile.am:104: use `AM_CXXFLAGS' instead. | |
| | | |
| |These can be ignored. We override CXXFLAGS in the makefiles for | |
| |the unit and integration tests in order to suppress compiler | |
| |warnings. | |
| ----------------------------------------------------------------------- |
| |
| This should be run the first time and anytime you change configure.ac or |
| any of the Makefile.am files. |
| |
| ----------------------------------------------------------------------- |
| |Solaris 10 Note: CppUnit might not build until you correct the file | |
| | libstdc++.la to contain the correct data, see this discussion: | |
| | http://forum.sun.com/jive/thread.jspa?threadID=73150 | |
| ----------------------------------------------------------------------- |
| |
| The configure script will customize the way the software is built and |
| installed into your system along with detecting the available libraries |
| that have been installed. To use the default configuration just run: |
| |
| ./configure |
| |
| For more help on how to customize the build configuration, run: |
| |
| ./configure --help |
| |
| Once the configure script has run successfully, you are ready to build. |
| Run: |
| |
| make |
| |
| This will build all of the core ActiveMQ CPP source code. To build and |
| install the code into the system directories, run: |
| |
| make install |
| |
| You will have to become the superuser in order to be able to install the |
| files. |
| |
| 3 Doxygen |
| -------------------------------------------------------------------------- |
| |
| To generate the doxygen documentation for the project, just run: |
| |
| make doxygen-run |
| |
| |
| 4 Running Tests |
| -------------------------------------------------------------------------- |
| |
| 4.1 Unit Tests |
| -------------------------------------------------------------------------- |
| In order to build and run the suite of unit tests, run: |
| |
| make check |
| |
| This will verify that the library is functioning correctly on the target |
| platform. In addition, it will generate the integration tests binary. |
| |
| 4.2 Integration Tests |
| -------------------------------------------------------------------------- |
| The library also contains a set of tests that are run against a real AMQ |
| broker. These allow you to validate this distribution of ActiveMQ CPP |
| against your broker. Running these without a broker will result in failed |
| tests. The tests currently hard-code the broker url to be |
| tcp://localhost:61613 for stomp and tcp://localhost:61616 for openwire. |
| |
| The integration tests are built via "make check". To run them, first |
| start a broker and then |
| |
| cd src/test-integration |
| ./activemq-test-integration |
| |
| This will take quite some time to complete, so be patient. |
| |
| 5 Example |
| -------------------------------------------------------------------------- |
| There is an example application that ships with the distribution in |
| src/examples. The example is compiled by default with the "make" |
| command, but can easily be compiled manually using the command: |
| |
| g++ -o main -pthread -I ../main main.cpp ../../out/libactivemq-cpp-2_0.a -luuid |
| |
| 6 Notes for Windows users |
| -------------------------------------------------------------------------- |
| We support using the GNU compiler on Windows, using the Cygwin package. |
| However we also support using the MSVC compiler on Windows. |
| |
| There are a couple or things that you will need to setup to ensure that |
| the MSVC compile succeeds. |
| |
| * You need to download and install the Platform SDK if you don't have it |
| installed already. |
| |
| * Ensure that the path to you MSVC install is set in the PATH env variable. |
| You can test this by typing cl.exe at the command line, if you get an |
| error complaining that its not found, then you'll need to fix your PATH. |
| * Set the INCLUDE env variable to include the path to your MSVC includes, |
| and the platform SDK includes. For example: |
| |
| INCLUDE = D:\Program Files\Microsoft Visual Studio 8\VC\include;D:\Program Files\Microsoft Platform SDK\Include\* |
| |
| * Set the LIB env variable to include the path to your MSVC libs, and the |
| Platform SDK libs. For example: |
| |
| LIB = D:\Program Files\Microsoft Visual Studio 8\VC\lib;D:\Program Files\Microsoft Platform SDK\Lib |
| |
| * The Project files reference the CPPUnit libraries for the Integration and |
| Unit tests builds. In order for these to build correctly you must |
| either place the CPPUnit libraries in a directory listed in the project |
| settings, or add a new location for your install of CPPUnit. |
| |