diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..83525f7f --- /dev/null +++ b/.travis.yml @@ -0,0 +1,35 @@ +sudo: false +language: cpp + +branches: + only: + - devel + - travis + +install: + - DEPS_DIR="$TRAVIS_BUILD_DIR/deps" + - mkdir -p "$DEPS_DIR" && cd "$DEPS_DIR" + - wget --no-check-certificate -q -O - https://download.freenas.org/distfiles/ucl-1.03.tar.gz | tar -xz + +os: + - linux +# - osx + +compiler: + - clang + - gcc + +env: + global: + - B= + matrix: + - B=make/debug + - B=make/release +# - B=make/scan-build + +before_script: + - export BUILD_DIR="$TRAVIS_BUILD_DIR/build" + - export BUILD_METHOD_AND_BUILD_TYPE="$B" + - export UPX_UCLDIR="$TRAVIS_BUILD_DIR/deps/ucl-1.03" +script: + - bash "$TRAVIS_BUILD_DIR/.travis_build.sh" diff --git a/.travis_build.sh b/.travis_build.sh new file mode 100644 index 00000000..721a471f --- /dev/null +++ b/.travis_build.sh @@ -0,0 +1,47 @@ +#! /bin/bash +## vim:set ts=4 sw=4 et: +set -e; set -o pipefail + +echo "BUILD_METHOD_AND_BUILD_TYPE='$BUILD_METHOD_AND_BUILD_TYPE'" +echo "CC='$CC'" +echo "CXX='$CXX'" +echo "CPPFLAGS='$CPPFLAGS'" +echo "CFLAGS='$CFLAGS'" +echo "CXXFLAGS='$CXXFLAGS'" +echo "LDFLAGS='$LDFLAGS'" +echo "LIBS='$LIBS'" +echo "BUILD_DIR='$BUILD_DIR'" +echo "UPX_UCLDIR='$UPX_UCLDIR'" +#env | LC_ALL=C sort + +# build UCL +cd / +set -x +cd "$UPX_UCLDIR" +./configure --enable-static --disable-shared +make + +cd / +set -x +mkdir -p "$BUILD_DIR" +cd "$BUILD_DIR" + +case $BUILD_METHOD_AND_BUILD_TYPE in +make/debug) + make -f "$TRAVIS_BUILD_DIR/src/Makefile" USE_DEBUG=1 + ;; +make/release) + make -f "$TRAVIS_BUILD_DIR/src/Makefile" + ;; +make/scan-build) + if test "$CC" = "clang"; then + scan-build make -f "$TRAVIS_BUILD_DIR/src/Makefile" + else + make -f "$TRAVIS_BUILD_DIR/src/Makefile" USE_SANITIZE=1 + fi + ;; +*) + echo "ERROR: invalid build '$BUILD_METHOD_AND_BUILD_TYPE'" + exit 1 + ;; +esac