#!/bin/sh # This script is used for testing the build, primarily for use # with travis, but may be used by hand as well. # Library versions to use ZSTD_VER=1.4.4 WEBP_VER=1.1.0 set -e set -x # Test autoconf build autoconf_build() { autoreconf -ivf mkdir autoconf-build cd autoconf-build echo "Running ../configure --prefix=$(pwd)/../autoconf-install) ${opts}" ../configure --prefix=$(pwd)/../autoconf-install --with-zstd-include-dir=/tmp/include --with-zstd-lib-dir=/tmp/lib --with-webp-include-dir=/tmp/include --with-webp-lib-dir=/tmp/lib ${opts} make make install make check make distcheck } # Test cmake build cmake_build() { PATH="$(pwd)/tools/bin:$PATH" if [ "$(uname -s)" = "Darwin" ]; then PATH="$(pwd)/tools/CMake.app/Contents/bin:$PATH" fi mkdir cmake-build cd cmake-build echo "Running cmake -G "$1" -DCMAKE_BUILD_TYPE="$2" -DCMAKE_INSTALL_PREFIX=../autoconf-install -DZSTD_INCLUDE_DIR=/tmp/include -DZSTD_LIBRARY=/tmp/lib/libzstd.so -DWEBP_INCLUDE_DIR=/tmp/include -DZWEBP_LIBRARY=/tmp/lib/libwebp.so ${opts} .." cmake -G "$1" -DCMAKE_BUILD_TYPE="$2" -DCMAKE_INSTALL_PREFIX=../autoconf-install -DZSTD_INCLUDE_DIR=/tmp/include -DZSTD_LIBRARY=/tmp/lib/libzstd.so -DWEBP_INCLUDE_DIR=/tmp/include -DWEBP_LIBRARY=/tmp/lib/libwebp.so ${opts} .. cmake --build . cmake --build . --target install ctest -V } build=$1 shift # Build zstd wget https://github.com/facebook/zstd/archive/v${ZSTD_VER}.tar.gz tar xvzf v${ZSTD_VER}.tar.gz cd zstd-${ZSTD_VER}/lib # Faster build make -j3 PREFIX=/tmp ZSTD_LEGACY_SUPPORT=0 CFLAGS=-O1 make install PREFIX=/tmp ZSTD_LEGACY_SUPPORT=0 CFLAGS=-O1 cd ../.. rm -rf zstd-${ZSTD_VER} # Build webp wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VER}.tar.gz tar xvzf libwebp-${WEBP_VER}.tar.gz cd libwebp-${WEBP_VER} ./configure --prefix=/tmp make && make install cd .. rm -rf libwebp-${WEBP_VER} export LD_LIBRARY_PATH=/tmp/lib case $build in autoconf) echo "Testing Autoconf build" autoconf_build "$@" ;; cmake) echo "Testing CMake build" cmake_build "$@" ;; *) echo "Invalid argument: \"$arg\"" >&2 exit 1 ;; esac exit 0