#! /usr/bin/env bash # Test build2 distribution. # # Usage: test # usage="usage: $0" owd=`pwd` trap "{ cd $owd; exit 1; }" ERR set -o errtrace # Trap in functions. function info () { echo "$*" 1>&2; } function error () { info "$*"; exit 1; } # Calculate versions. # tcv=`cat build2-toolchain/version` v=`echo $tcv | sed -e 's/^\(.*\)\.\(.*\)\..*$/\1.\2/' -` if [ -z "$v" ]; then error "unable to extract version from `cat build2-toolchain/version`" fi src=build2-$v # Update the development build. # info "making sure everythings is up to date..." b build2/ bpkg/ # Test repository with the earliest and latest (development build via # /usr/local links) toolchains. # for t in etc1/install/0.1.0 /usr/local; do cppget.org/test -t $t -n \ -c cxx \ -c config.cxx.coptions="-W -Wall -Wno-unknown-pragmas" \ -c config.cxx.poptions="-I/usr/include/apache2 -I/usr/include/apr-1.0" \ -c config.cxx.loptions=-L/usr/local/lib \ cppget.org/repository/1/ done # Test the build2-toolchain INSTALL procedure (plus brep) with the earliest # compiler versions we claim to support and the latest available. # # Note: Clang 3.4 and 3.7 are tested on FreeBSD below (3.4 cannot coexist # with newer versions on Ubuntu). # for c in g++-4.9 g++-5; do etc/install \ --cxx $c \ --cppflags "-I/usr/include/apache2 -I/usr/include/apr-1.0" \ $src/build2-toolchain-$tcv.tar.gz \ https://pkg.cppget1/1/alpha done # This doesn't work since libodb, etc are using libstdc++. # if false; then for c in clang++-3.5 clang++-3.6; do etc/install \ --cxx $c \ --cppflags "-I/usr/include/apache2 -I/usr/include/apr-1.0" \ --cxxflags --stdlib=libc++ \ $src/build2-toolchain-$tcv.tar.gz \ https://pkg.cppget1/1/alpha done fi # Test installation requiring sudo. # etc/install -t -i /opt/build2 -s $src/build2-toolchain-$tcv.tar.gz \ https://pkg.cppget1/1/alpha # Test on FreeBSD with Clang 3.4 (default) and Clang 3.7. # scp etc/install $src/build2-toolchain-$tcv.tar.gz freebsd:/tmp/ for c in clang++ clang++37; do ssh freebsd cd /tmp ';' ./install \ --cxx $c \ --cppflags '"-I/usr/local/include/apr-1 -I/usr/local/include/apache24"' \ build2-toolchain-$tcv.tar.gz https://pkg.cppget1/1/alpha done