| #! /usr/bin/env bash |
| |
| # 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. |
| |
| # |
| # Basic regression test script. |
| # |
| # Verify that the source tree builds and that out of tree builds work. We don't use root for any of this because |
| # it should not be required (that would be a bug). Then run the automake regression tests and the traffic_server |
| # regression tests. |
| # |
| |
| set -e # exit on error |
| |
| TMPDIR=${TMPDIR:-/tmp} |
| BUILDID="org.apache.trafficserver.$$" |
| |
| SRCROOT=${SRCROOT:-$(cd $(dirname $0)/.. && pwd)} # where the source lives |
| OBJROOT=${OBJROOT:-"$TMPDIR/$BUILDID/obj"} # where we are building |
| DSTROOT=${DSTROOT:-"$TMPDIR/$BUILDID/dst"} # where we are installing |
| |
| export CCACHE_BASEDIR="$SRCROOT" |
| |
| # Force low make parallelization so that the build can complete in a VM with |
| # only a small amount of memory. |
| NPROCS=${NPROCS:-2} |
| |
| mkdir -p $SRCROOT |
| mkdir -p $OBJROOT |
| mkdir -p $DSTROOT |
| |
| prog() { |
| case $1 in |
| cc) |
| case $(uname -v) in |
| Darwin*) echo clang ;; |
| omnios*) echo /opt/gcc-4.6.3/bin/gcc ;; |
| *) echo ccache cc ;; |
| esac |
| ;; |
| cxx) |
| case $(uname -v) in |
| Darwin*) echo clang++ ;; |
| omnios*) echo /opt/gcc-4.6.3/bin/g++ ;; |
| *) echo ccache c++ ;; |
| esac |
| ;; |
| make) |
| case $(uname) in |
| FreeBSD) echo gmake ;; |
| *) echo make ;; |
| esac |
| ;; |
| esac |
| } |
| |
| extras() { |
| case $(uname -v) in |
| omnios*) echo --with-tcl=/opt/omni/lib/amd64 ;; |
| esac |
| } |
| |
| autogen() { |
| [[ -e "$SRCROOT/configure" ]] || ( cd $SRCROOT && autoreconf -fi ) |
| } |
| |
| configure() { |
| [[ -e "$SRCROOT/Makefile" ]] && ( cd $SRCROOT && make distclean) |
| |
| ( |
| cd $OBJROOT |
| $SRCROOT/configure \ |
| --prefix=$DSTROOT \ |
| --enable-debug \ |
| --enable-wccp \ |
| --enable-experimental-plugins \ |
| $(extras) \ |
| CC="$CC" \ |
| CXX="$CXX" |
| ) |
| } |
| |
| build() { |
| ( cd $OBJROOT && $MAKE -j $NPROCS ) |
| ( cd $OBJROOT && $MAKE install ) |
| } |
| |
| regress() { |
| ( cd $OBJROOT && $MAKE check ) && \ |
| $DSTROOT/bin/traffic_server -R 1 |
| } |
| |
| CC=${CC:-$(prog cc)} |
| CXX=${CXX:-$(prog cxx)} |
| MAKE=${MAKE:-$(prog make)} |
| export CC CXX MAKE |
| |
| autogen |
| configure "$@" |
| build |
| regress |