merge #130 - doc change around native build and a few pom changes on the native build

This commit is contained in:
Andy Taylor 2015-03-02 17:40:31 +00:00
commit df99aa673d
2 changed files with 20 additions and 79 deletions

View File

@ -41,51 +41,6 @@
<directory>${basedir}/target/output/</directory> <directory>${basedir}/target/output/</directory>
</resource> </resource>
</resources> </resources>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<!-- We don't currently have a 32-bit shared object in the repo which means if this is enabled the 64-bit
shared object won't be copied properly. -->
<!--execution>
<id>copy-resources-32</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/output/lib/linux-i686/</outputDirectory>
<resources>
<resource>
<directory>bin/</directory>
<includes>
<include>libactiveMQAIO32.so</include>
</includes>
</resource>
</resources>
</configuration>
</execution-->
<execution>
<id>copy-resources-64</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/output/lib/linux-x86_64/</outputDirectory>
<resources>
<resource>
<directory>bin/</directory>
<includes>
<include>libactivemqAIO64.so</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build> </build>

View File

@ -34,21 +34,12 @@ those platforms with the release.
> At the moment the native layer is only available on Linux. If you are > At the moment the native layer is only available on Linux. If you are
> in a platform other than Linux the native compilation will not work > in a platform other than Linux the native compilation will not work
The native library uses These are the required linux packages to be installed for the compilation to work:
[autoconf](http://en.wikipedia.org/wiki/Autoconf) what makes the
compilation process easy, however you need to install extra packages as
a requirement for compilation:
- gcc - C Compiler - gcc - C Compiler
- gcc-c++ or g++ - Extension to gcc with support for C++ - gcc-c++ or g++ - Extension to gcc with support for C++
- autoconf - Tool for automating native build process
- make - Plain old make
- automake - Tool for automating make generation
- libtool - Tool for link editing native libraries - libtool - Tool for link editing native libraries
- libaio - library to disk asynchronous IO kernel functions - libaio - library to disk asynchronous IO kernel functions
@ -58,14 +49,13 @@ a requirement for compilation:
- A full JDK installed with the environment variable JAVA\_HOME set to - A full JDK installed with the environment variable JAVA\_HOME set to
its location its location
To perform this installation on RHEL or Fedora, you can simply type this To perform this installation on RHEL or Fedora, you can simply type this at a command line:
at a command line:
sudo yum install automake libtool autoconf gcc-c++ gcc libaio libaio-devel make sudo yum install libtool gcc-c++ gcc libaio libaio-devel make
Or on Debian systems: Or on Debian systems:
sudo apt-get install automake libtool autoconf gcc-g++ gcc libaio libaio-dev make sudo apt-get install libtool gcc-g++ gcc libaio libaio-dev make
> **Note** > **Note**
> >
@ -75,30 +65,26 @@ Or on Debian systems:
## Invoking the compilation ## Invoking the compilation
In the distribution, in the `native-src` directory, execute the shell In the source distribution or git clone, in the `activemq-native` directory, execute the shell
script `bootstrap`. This script will invoke `automake` and `make` what script `compile-native.sh`. This script will invoke the proper maven profile to perform the native build.
will create all the make files and the native library.
someUser@someBox:/messaging-distribution/native-src$ ./bootstrap
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
...
configure: creating ./config.status
config.status: creating Makefile
config.status: creating ./src/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
someUser@someBox:/checkout-dir/activemq-native$ ./compile-native.sh
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building ActiveMQ6 Native POM 6.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- nar-maven-plugin:3.0.0:nar-validate (default-nar-validate) @ activemq-native ---
[INFO] Using AOL: amd64-Linux-gpp
[INFO]
[INFO] --- maven-enforcer-plugin:1.4:enforce (enforce-java) @ activemq-native ---
... ...
The produced library will be at The produced library will be at
`./native-src/src/.libs/libActiveMQAIO.so`. Simply move that file over `./target/nar/activemq-native-RELEASE-amd64-Linux-gpp-jni/lib/amd64-Linux-gpp/jni/
`bin` on the distribution or the place you have chosen on the [library libactivemq-native-RELEASE.so`. Simply move that file over
`bin` with the proper rename [library
path](#using-server.library.path). path](#using-server.library.path).
If you want to perform changes on the ActiveMQ libaio code, you could If you want to perform changes on the ActiveMQ libaio code, you could