X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=scripts%2Flttng-ust%2Fbuild.sh;h=3b890c28d362a4bd6138e8915ce68ba4bbb1c772;hb=221450b6653154d154fdad4080ee2870a21c078d;hp=3d52a4965c1e03e4ab9a451204d5d2c9bad6dddf;hpb=8a67d4900aa6758edac048c9b4681614ea76133e;p=lttng-ci.git diff --git a/scripts/lttng-ust/build.sh b/scripts/lttng-ust/build.sh index 3d52a49..3b890c2 100755 --- a/scripts/lttng-ust/build.sh +++ b/scripts/lttng-ust/build.sh @@ -1,49 +1,134 @@ +#!/bin/bash -exu +# +# Copyright (C) 2015 - Jonathan Rajotte-Julien +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + # Create build directory rm -rf $WORKSPACE/build mkdir -p $WORKSPACE/build # liburcu -URCU_INCS="$WORKSPACE/dependencies/liburcu/build/include/" -URCU_LIBS="$WORKSPACE/dependencies/liburcu/build/lib/" +URCU_INCS="$WORKSPACE/deps/liburcu/build/include/" +URCU_LIBS="$WORKSPACE/deps/liburcu/build/lib/" -export CPPFLAGS="-I$URCU_INCS" -export LDFLAGS="-L$URCU_LIBS" -export LD_LIBRARY_PATH="$URCU_LIBS:$LD_LIBRARY_PATH" PREFIX="$WORKSPACE/build" -./bootstrap +# Set platform variables +case "$arch" in +*) + MAKE=make + TAR=tar + NPROC=nproc + BISON="bison" + YACC="$BISON -y" + CFLAGS="" + ;; +esac + +# Export build flags +export CPPFLAGS="-I$URCU_INCS" +export LDFLAGS="-L$URCU_LIBS" +export LD_LIBRARY_PATH="$URCU_LIBS:${LD_LIBRARY_PATH:-}" -CONF_OPTS="" +# Set configure options for each build configuration +CONF_OPTS="" case "$conf" in -# Unsupported! liblttng-ust can't pull in it's static (.a) dependencies. -#static) -# echo "Static build" -# CONF_OPTS="--enable-static --disable-shared" -# ;; +static) + # Unsupported! liblttng-ust can't pull in it's static (.a) dependencies. + echo "Static build" + CONF_OPTS="--enable-static --disable-shared" + ;; + java-agent) echo "Java agent build" export CLASSPATH="/usr/share/java/log4j-1.2.jar" CONF_OPTS="--enable-java-agent-all" ;; + +python-agent) + echo "Python agent build" + CONF_OPTS="--enable-python-agent" + ;; + *) echo "Standard build" CONF_OPTS="" ;; esac -./configure --prefix=$PREFIX $CONF_OPTS -make V=1 -make install + +# Run bootstrap prior to configure +./bootstrap + + +# Build type +# oot : out-of-tree build +# dist: build via make dist +# * : normal tree build +# +# Make sure to move to the build_path and configure +# before continuing +BUILD_PATH=$WORKSPACE +case "$build" in +oot) + echo "Out of tree build" + BUILD_PATH=$WORKSPACE/oot + mkdir -p $BUILD_PATH + cd $BUILD_PATH + $WORKSPACE/configure --prefix=$PREFIX $CONF_OPTS + ;; + +dist) + echo "Distribution out of tree build" + BUILD_PATH=`mktemp -d` + + # Initial configure and generate tarball + ./configure + $MAKE dist + + mkdir -p $BUILD_PATH + cp *.tar.* $BUILD_PATH/ + cd $BUILD_PATH + + # Ignore level 1 of tar + $TAR xvf *.tar.* --strip 1 + + $BUILD_PATH/configure --prefix=$PREFIX $CONF_OPTS + ;; + +*) + BUILD_PATH=$WORKSPACE + echo "Standard tree build" + $WORKSPACE/configure --prefix=$PREFIX $CONF_OPTS + ;; +esac + +# BUILD! +$MAKE -j `$NPROC` V=1 +$MAKE install # Run tests rm -rf $WORKSPACE/tap mkdir -p $WORKSPACE/tap/unit -cd $WORKSPACE/tests +cd $BUILD_PATH/tests -prove --merge --exec '' - < $WORKSPACE/tests/unit_tests --archive $WORKSPACE/tap/unit/ || true +prove --merge --exec '' - < $BUILD_PATH/tests/unit_tests --archive $WORKSPACE/tap/unit/ || true # TAP plugin is having a hard time with .yml files. rm -f $WORKSPACE/tap/unit/meta.yml @@ -52,8 +137,18 @@ rm -f $WORKSPACE/tap/unit/meta.yml find $WORKSPACE/tap/unit/ -type f -exec mv {} {}.tap \; # Cleanup -make clean +$MAKE clean -# Cleanup rpath and libtool .la files +# Cleanup rpath in executables and shared libraries find $WORKSPACE/build/lib -name "*.so" -exec chrpath --delete {} \; + +# Remove libtool .la files find $WORKSPACE/build/lib -name "*.la" -exec rm -f {} \; + +# Clean temp dir for dist build +if [ "$build" = "dist" ]; then + cd $WORKSPACE + rm -rf $BUILD_PATH +fi + +# EOF