dist: trusty
sudo: required

osx_image: xcode9.3

language: c
cache: ccache
git:
    submodules: false

before_install:
    - if [ -n "$COVERALLS" ]; then
          pip install --user cpp-coveralls;
      fi;
    - if expr "$CONFIG_OPTS" ":" ".*enable-external-tests" > /dev/null; then
          git submodule update --init --recursive;
      fi;

os:
    - linux
    - osx

compiler:
    - clang
    - gcc

env:
    - CONFIG_OPTS="" DESTDIR="_install"
    - CONFIG_OPTS="no-asm -Werror --debug no-afalgeng no-shared enable-crypto-mdebug enable-rc5 enable-md2"
    - CONFIG_OPTS="no-asm no-makedepend --strict-warnings" BUILDONLY="yes" CHECKDOCS="yes" GENERATE="yes"

matrix:
    include:
        - os: linux-ppc64le
          sudo: false
          compiler: clang
          env: CONFIG_OPTS="--strict-warnings -D__NO_STRING_INLINES"
        - os: linux
          addons:
              apt:
                  packages:
                      - gcc-5
                      - g++-5
                  sources:
                      - ubuntu-toolchain-r-test
          compiler: gcc-5
          env: CONFIG_OPTS="--strict-warnings" COMMENT="Move to the BORINGTEST build when interoperable"
        - os: linux
          compiler: clang
          env: CONFIG_OPTS="--strict-warnings -D__NO_STRING_INLINES no-deprecated" BUILDONLY="yes"
        - os: linux
          addons:
              apt:
                  packages:
                      - binutils-mingw-w64
                      - gcc-mingw-w64
          compiler: i686-w64-mingw32-gcc
          env: CONFIG_OPTS="no-stdio" BUILDONLY="yes"
        # Uncomment if there is reason to believe that PPC-specific problem
        # can be diagnosed with this possibly >30 mins sanitizer build...
        #- os: linux-ppc64le
        #  sudo: false
        #  compiler: gcc
        #  env: EXTENDED_TEST="yes" CONFIG_OPTS="no-asm enable-asan enable-ubsan no-shared -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -D__NO_STRING_INLINES"
        - os: linux
          addons:
              apt:
                  packages:
                      - gcc-5
                      - g++-5
                      - golang-1.6
                  sources:
                      - ubuntu-toolchain-r-test
          compiler: gcc-5
          env:  EXTENDED_TEST="yes" CONFIG_OPTS="--debug --coverage no-asm enable-rc5 enable-md2 enable-ec_nistp_64_gcc_128 enable-ssl3 enable-ssl3-method enable-nextprotoneg enable-weak-ssl-ciphers no-shared -DPEDANTIC -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION" COVERALLS="yes" BORINGSSL_TESTS="yes" CXX="g++-5"
        - os: linux
          addons:
              apt:
                  packages:
                      - gcc-5
                      - g++-5
                      - golang-1.6
                  sources:
                      - ubuntu-toolchain-r-test
          compiler: gcc-5
          env:  EXTENDED_TEST="yes" CONFIG_OPTS="--debug enable-ssl3 enable-ssl3-method enable-weak-ssl-ciphers enable-external-tests" BORINGSSL_TESTS="yes" CXX="g++-5" TESTS=95
        - os: linux
          compiler: clang
          env: EXTENDED_TEST="yes" CONFIG_OPTS="enable-msan -D__NO_STRING_INLINES -Wno-unused-command-line-argument"
        - os: linux
          compiler: clang
          env:  EXTENDED_TEST="yes" CONFIG_OPTS="no-asm enable-ubsan enable-rc5 enable-md2 enable-ssl3 enable-ssl3-method enable-nextprotoneg no-shared -fno-sanitize=alignment -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -D__NO_STRING_INLINES -Wno-unused-command-line-argument"
        - os: linux
          compiler: clang
          env: EXTENDED_TEST="yes" CONFIG_OPTS="no-asm enable-asan enable-rc5 enable-md2 no-shared -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -D__NO_STRING_INLINES -Wno-unused-command-line-argument"
        - os: linux
          addons:
              apt:
                  packages:
                      - gcc-5
                      - g++-5
                  sources:
                      - ubuntu-toolchain-r-test
          compiler: gcc-5
          env: UBUNTU_GCC_HACK="yes" EXTENDED_TEST="yes" CONFIG_OPTS="--debug no-asm enable-ubsan enable-rc5 enable-md2 -DPEDANTIC" OPENSSL_TEST_RAND_ORDER=0
        - os: linux
          addons:
              apt:
                  packages:
                      - binutils-mingw-w64
                      - gcc-mingw-w64
          compiler: i686-w64-mingw32-gcc
          env: EXTENDED_TEST="yes" CONFIG_OPTS="no-pic"
        - os: linux
          addons:
              apt:
                  packages:
                      - binutils-mingw-w64
                      - gcc-mingw-w64
          compiler: x86_64-w64-mingw32-gcc
          env: EXTENDED_TEST="yes" CONFIG_OPTS="no-pic"
    exclude:
        - os: linux
          compiler: clang
        - os: osx
          compiler: gcc

before_script:
    - env
    - if [ "$TRAVIS_PULL_REQUEST" != "false" -a -n "$EXTENDED_TEST" ]; then
          (git log -1 $TRAVIS_COMMIT_RANGE | grep '\[extended tests\]' > /dev/null) || exit 0;
      fi
    - if [ -n "$DESTDIR" ]; then
          sh .travis-create-release.sh $TRAVIS_OS_NAME;
          tar -xzf _srcdist.tar.gz;
          mkdir _build;
          cd _build;
          srcdir=../_srcdist;
          top=..;
      else
          srcdir=.;
          top=.;
      fi
    - if [ -n "$UBUNTU_GCC_HACK" ]; then
          $CC -dumpspecs | sed "s/--push-state//g; s/--pop-state/--as-needed/g" > gcc-specs.txt;
          CC="$CC -specs=gcc-specs.txt";
      fi
    - if [ "$CC" = i686-w64-mingw32-gcc ]; then
          export CROSS_COMPILE=${CC%%gcc}; unset CC;
          $srcdir/Configure mingw $CONFIG_OPTS -Wno-pedantic-ms-format;
      elif [ "$CC" = x86_64-w64-mingw32-gcc ]; then
          export CROSS_COMPILE=${CC%%gcc}; unset CC;
          $srcdir/Configure mingw64 $CONFIG_OPTS -Wno-pedantic-ms-format;
      else
          if [ "$CC" = clang-3.9 ]; then
              sudo cp .travis-apt-pin.preferences /etc/apt/preferences.d/no-ubuntu-clang;
              curl -sSL "http://apt.llvm.org/llvm-snapshot.gpg.key" | sudo -E apt-key add -;
              echo "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.9 main" | sudo tee -a /etc/apt/sources.list > /dev/null;
              sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test";
              sudo -E apt-get -yq update;
              sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install clang-3.9;
          elif which ccache >/dev/null; then
              CC="ccache $CC";
          fi;
          $srcdir/config -v $CONFIG_OPTS;
      fi
    - ./configdata.pm --dump
    - cd $top

script:
    - if [ -z "$BUILDONLY" ]; then
          make="make -s";
      else
          make="make";
      fi
    - if [ -n "$GENERATE" ]; then
          make2="$make PERL=no-perl";
      else
          make2="$make";
      fi
    - top=${PWD}
    - if [ -n "$DESTDIR" ]; then
          cd _build;
      fi
    - if $make update; then
          echo -e '+\057 MAKE UPDATE OK';
      else
          echo -e '+\057 MAKE UPDATE FAILED'; false;
      fi;
      git diff --exit-code
    - if [ -n "$CHECKDOCS" ]; then
          if $make doc-nits; then
              echo -e '+\057\057 MAKE DOC-NITS OK';
          else
              echo -e '+\057\057 MAKE DOC-NITS FAILED'; false;
          fi;
      fi
    - if [ -n "$GENERATE" ]; then
          if $make build_all_generated; then
              echo -e '+\057\057\057 MAKE BUILD_ALL_GENERATED OK';
          else
              echo -e '+\057\057\057 MAKE BUILD_ALL_GENERATED FAILED'; false;
          fi;
      fi
    - if $make2; then
          echo -e '+\057\057\057\057 MAKE OK';
      else
          echo -e '+\057\057\057\057 MAKE FAILED'; false;
      fi;
    - if [ -z "$BUILDONLY" ]; then
          if [ -n "$CROSS_COMPILE" ]; then
              sudo dpkg --add-architecture i386;
              sudo apt-get update;
              sudo apt-get -yq --no-install-suggests --no-install-recommends --force-yes install wine;
              export EXE_SHELL="wine" WINEPREFIX=`pwd`;
          fi;
          if [ -e krb5/src ]; then
              sudo apt-get -yq install bison dejagnu gettext keyutils ldap-utils libldap2-dev libkeyutils-dev python-cjson python-paste python-pyrad slapd tcl-dev tcsh;
          fi;
          if HARNESS_VERBOSE=yes BORING_RUNNER_DIR=$top/boringssl/ssl/test/runner make test; then
              echo -e '+\057\057\057\057\057 MAKE TEST OK';
          else
              echo -e '+\057\057\057\057\057 MAKE TEST FAILED'; false;
          fi;
      else
          if $make build_tests >~/build.log 2>&1; then
              echo -e '+\057\057\057\057\057\057 MAKE BUILD_TESTS OK';
          else
              echo -e '+\057\057\057\057\057\057 MAKE BUILD_TESTS FAILED';
              cat ~/build.log
              false;
          fi;
      fi
    - if [ -n "$DESTDIR" ]; then
          mkdir "$top/$DESTDIR";
          if $make install DESTDIR="$top/$DESTDIR" >~/install.log 2>&1 ; then
              echo -e '+\057\057\057\057\057\057\057 MAKE INSTALL OK';
          else
              echo -e '+\057\057\057\057\057\057\057 MAKE INSTALL FAILED';
              cat ~/install.log;
              false;
          fi;
      fi
    - cd $top

after_success:
    - if [ -n "$COVERALLS" ]; then
          coveralls -b . --gcov gcov-5 --gcov-options '\-lpbc';
      fi;

notifications:
    email:
        secure: "xeGNgWO7aoaDgRvcZubposqMsj36aU8c6F0oHfw+rUqltCQ14IgYCUwzocmR2O+Pa7B3Cx5VjMfBFHbQaajZsfod8vu7g+aGq/zkjwbhsr/SR4dljJjFJXLGZjIalm9KgP6KInmVDuINfCqP+MHIY5lZkNI7DMcyHDhVc5nSKvCXV7xTDNgmstvh8rB/z51WfHDqGqfBtiuK5FDNxmvYK8OFJ5W94Lu9LDlizcxwK3GAj7arOui7Z5w8bQ6p4seUE3IvJL1Zbj0pZHxvNb6Zeb2Pn8QF1qLlN8YmBktD4aiw0ce4wYRiL87uLgcOxZY7SVXtv2XYFIYWapU/FKjCqa6vK93V/H9eZWEIYNMKnN3wXm2beqVdnKek3OeGJ8v0y7MbSfuLfRtBqbTSNYnpU1Zuo4MQAvHvEPuwCAYkYQajOSRplMH5sULFKptuVqNtOMfjL8jHb8AEoL1acYIk43ydxeYrzzas4fqgCDJ52573/u0RNdF1lkQBLkuM365OB8VRqtpnoxcdEIY/qBc/8TzZ24fxyrs5qdHFcxGSgpN2EP6cJMqpvkemnCNSdhxUqfzm22N7a3O8+4LFSBGOnHto/PwdsvF/01yGYL0LoZTnoO1i6x7AMJPBh+eyDU0ZjGhj/msjmqeb9C8vRqQ+1WjHrIS1iqCD0Czib8tUPD4="
