Skip to content
Browse files

Updates the build script to add configuration options and supplies a …

…sample config file. Most of the most common config items can now be set in the config file to allow the maven build to be customized for CI builds.

git-svn-id: https://svn.apache.org/repos/asf/activemq/activemq-cpp/trunk@782148 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information...
1 parent d3bb039 commit 6151417ccf9404f365fa2be7ccc6d7d3bd135f95 Timothy A. Bish committed
Showing with 124 additions and 15 deletions.
  1. +61 −0 activemq-cpp/build.conf
  2. +61 −13 activemq-cpp/build.sh
  3. +2 −2 activemq-cpp/m4/find_cppunit.m4
View
61 activemq-cpp/build.conf
@@ -0,0 +1,61 @@
+# ------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ------------------------------------------------------------------------
+
+# ------------------------------------------------------------------------
+# Build Configuration File, used by the Build.sh script to configure how
+# the Library is built, where it is installed, etc. This file is used in
+# combination with the build.sh script included with ActiveMQ-CPP. The
+# values in the conf file can be overridden by a user by creating a user
+# specific conf file in the user's home folder named ".activemqcpprc".
+# ------------------------------------------------------------------------
+
+# Defines the location where the code is built and the configuration data
+# is stored, this location is deleted any time that the clean option is
+# passed to the build.sh script so don't set this to a directory like ./src
+# AMQCPP_BUILD_DIR="${PWD}/build"
+
+# Defines the install location for the ActiveMQ-CPP library and its headers
+# AMQCPP_INSTALL_PREFIX=/usr
+
+# Defines the library directory where the ActiveMQ-CPP library is placed.
+# This is normally set to AMQCPP_INSTALL_PREFIX/lib on a 64bit Fedora OS
+# for instance set this to AMQCPP_INSTALL_PREFIX/lib64 to place the 64bit
+# library in the correct library dir to match the architecture.
+# AMQCPP_LIBDIR=/usr/lib64
+
+# Defines the location of the APR distribution you wish to build and link
+# against. (Defines the value of --with-apr for the configure script).
+# AMQCPP_APR_DIST=/usr
+
+# Defines the location of the APR-Util distribution you wish to build and link
+# against. (Defines the value of --with-apr-util for the configure script).
+# AMQCPP_APU_DIST=/usr
+
+# Defines the location of the CPPUnit distribution you wish to build and link
+# against. (Defines the value of --with-cppunit for the configure script).
+# AMQCPP_CPPUNIT_DIST=/usr
+
+# Defines the location of the CPPUnit script cppunit-config is located, this
+# script can tell us where everything else for CPPUnit is installed.
+# (Defines the value of --with-cppunit-exec for the configure script).
+# AMQCPP_CPPUNIT_EXECDIR=/usr
+
+# Disable Shared library builds
+# AMQCPP_DISABLE_SHARED=true
+
+# Disable Static library builds
+# AMQCPP_DISABLE_STATIC=true
View
74 activemq-cpp/build.sh
@@ -27,8 +27,8 @@ if [ -f "$HOME/.activemqcpprc" ] ; then
fi
# This is where we run all the build steps, configure, make, etc.
-if [ -n builddir ] ; then
- builddir="./build"
+if [ -z "$AMQCPP_BUILD_DIR" ] ; then
+ AMQCPP_BUILD_DIR="$PWD/build"
fi
check_Configure() {
@@ -40,7 +40,7 @@ check_Configure() {
# even if we have a configure script, if the template has been updated we should
# run it again to account for the changes, which also means we need to run a autogen
# to create the actual script and associated autoconf artifacts.
- if [ "./configure.ac" -ot "./configure" ] && [ -d $builddir ] ; then
+ if [ "./configure.ac" -ot "./configure" ] && [ -d $AMQCPP_BUILD_DIR ] ; then
runconfigure=false
else
runconfigure=true
@@ -48,33 +48,81 @@ check_Configure() {
fi
- if [ "true" = $runconfigure ] ; then
+ if [ "x$runconfigure" -ne x ] ; then
run_Configure
fi
}
run_Configure() {
- ./autogen.sh
- if ! [ -d $builddir ] ; then
- mkdir -p $builddir
+ if [ -z "$AMQCPP_DISABLE_SHARED" ] ; then
+ AMQCPP_DISABLE_SHARED=false;
+ fi
+ if [ -z "$AMQCPP_DISABLE_STATIC" ] ; then
+ AMQCPP_DISABLE_STATIC=false;
+ fi
+
+# ./autogen.sh
+
+ local args
+
+ if ! [ -d "$AMQCPP_BUILD_DIR" ] ; then
+ mkdir -p $AMQCPP_BUILD_DIR
+ fi
+
+ if [ -n "$AMQCPP_INSTALL_PREFIX" ] ; then
+ args="$args --prefix=$AMQCPP_INSTALL_PREFIX"
+ fi
+
+ if [ -n "$AMQCPP_LIBDIR" ] ; then
+ args="$args --libdir=$AMQCPP_LIBDIR"
+ fi
+
+ if [ -n "$AMQCPP_APR_DIST" ] ; then
+ args="$args --with-apr=$AMQCPP_APR_DIST"
+ fi
+
+ if [ -n "$AMQCPP_APU_DIST" ] ; then
+ args="$args --with-aprutil=$AMQCPP_APU_DIST"
+ fi
+
+ if [ -n "$AMQCPP_CPPUNIT_DIST" ] ; then
+ args="$args --with-cppunit=$AMQCPP_CPPUNIT_DIST"
+ fi
+
+ if [ -n "$AMQCPP_CPPUNIT_EXECDIR" ] ; then
+ args="$args --with-cppunit-exec=$AMQCPP_CPPUNIT_EXECDIR"
+ fi
+
+ if $AMQCPP_DISABLE_SHARED && $AMQCPP_DISABLE_STATIC ; then
+ echo "AMQCPP_DISABLE_SHARED and $AMQCPP_DISABLE_STATIC can't both be set to true."
+ exit 1
+ fi
+
+ if $AMQCPP_DISABLE_SHARED ; then
+ args="$args --enable-shared=no"
+ fi
+
+ if $AMQCPP_DISABLE_STATIC ; then
+ args="$args --enable-static=no"
fi
- pushd $builddir
- ../configure
+ pushd $AMQCPP_BUILD_DIR
+ echo "../configure $args"
+ ../configure $args
popd
exit
}
run_Clean() {
- rm -rf $builddir
+ rm -rf $AMQCPP_BUILD_DIR
exit
}
run_Make() {
check_Configure
- pushd $builddir
+ pushd $AMQCPP_BUILD_DIR
make
popd
exit
@@ -82,7 +130,7 @@ run_Make() {
run_Check() {
check_Configure
- pushd $builddir
+ pushd $AMQCPP_BUILD_DIR
make check
popd
exit
@@ -90,7 +138,7 @@ run_Check() {
run_Doxygen() {
check_Configure
- pushd $builddir
+ pushd $AMQCPP_BUILD_DIR
make doxygen-run
popd
exit
View
4 activemq-cpp/m4/find_cppunit.m4
@@ -21,9 +21,9 @@ dnl
AC_DEFUN([AMQ_FIND_CPPUNIT],
[
-AC_ARG_WITH(cppunit-prefix,[ --with-cppunit-prefix=PFX Prefix where CppUnit is installed (optional)],
+AC_ARG_WITH(cppunit-prefix,[ --with-cppunit=PFX Prefix where CppUnit is installed (optional)],
cppunit_config_prefix="$withval", cppunit_config_prefix="")
-AC_ARG_WITH(cppunit-exec-prefix,[ --with-cppunit-exec-prefix=PFX Exec prefix where CppUnit is installed (optional)],
+AC_ARG_WITH(cppunit-exec-prefix,[ --with-cppunit-exec=PFX Exec prefix where CppUnit is installed (optional)],
cppunit_config_exec_prefix="$withval", cppunit_config_exec_prefix="")
if test x$cppunit_config_exec_prefix != x ; then

0 comments on commit 6151417

Please sign in to comment.
Something went wrong with that request. Please try again.