sudo: required
dist: trusty

os: linux

language: c

compiler:
  - gcc

env:
  global:
    - JOBS=3
    - PREFIX="${HOME}/opt"
    - TAP_WINDOWS_VERSION=9.21.2
    - LZO_VERSION=2.10
    - PKCS11_HELPER_VERSION=1.11
    - MBEDTLS_VERSION="2.4.0"
    - MBEDTLS_CFLAGS="-I${PREFIX}/include"
    - MBEDTLS_LIBS="-L${PREFIX}/lib -lmbedtls -lmbedx509 -lmbedcrypto"
    - OPENSSL_VERSION="1.0.2k"
    - OPENSSL_CFLAGS="-I${PREFIX}/include"
    - OPENSSL_LIBS="-L${PREFIX}/lib -lssl -lcrypto"

matrix:
  include:
    - env: SSLLIB="openssl"
      os: linux
      compiler: gcc
    - env: SSLLIB="openssl"
      os: linux
      compiler: clang
    - env: SSLLIB="mbedtls"
      os: linux
      compiler: gcc
    - env: SSLLIB="mbedtls"
      os: linux
      compiler: clang
    - env: SSLLIB="openssl" EXTRA_CONFIG="--disable-crypto" EXTRA_SCRIPT="make distcheck"
      os: linux
      compiler: clang
    - env: SSLLIB="openssl" EXTRA_CONFIG="--disable-lzo"
      os: linux
      compiler: clang
    - env: SSLLIB="openssl" EXTRA_CONFIG="--enable-small"
      os: linux
      compiler: clang
    - env: SSLLIB="openssl"
      os: osx
      osx_image: xcode7.3
      compiler: clang
    - env: SSLLIB="mbedtls"
      os: osx
      osx_image: xcode7.3
      compiler: clang
    - env: SSLLIB="openssl" CHOST=x86_64-w64-mingw32
      os: linux
      compiler: ": Win64 build only"
    - env: SSLLIB="openssl" CHOST=i686-w64-mingw32
      os: linux
      compiler: ": Win32 build only"
  exclude:
    - compiler: gcc

addons:
  apt:
    packages:
      - liblzo2-dev
      - libpam0g-dev
      - liblz4-dev
      - linux-libc-dev
      - man2html

cache:
  ccache: true
  directories:
  - download-cache
  - ${HOME}/opt

before_install:
  - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew update     ; fi
  - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew install lzo; fi

install:
  - if [ ! -z "${CHOST}" ]; then unset CC; fi
  - .travis/build-deps.sh > build-deps.log 2>&1 || (cat build-deps.log && exit 1)

script:
  - .travis/build-check.sh