name: build

on: [push]

jobs:
  build-linux-ubuntu:
    runs-on: ubuntu-latest
    steps:
    - name: install dependencies
      run: |
          sudo apt-get install cython3
    - uses: actions/checkout@v2
    - name: autogen
      run: |
          export PYTHON=python3
          ./autogen.sh
    - name: make
      run: make
    - name: make check
      run: make check
  build-macOS:
    runs-on: macOS-latest
    steps:
    - name: install dependencies
      run: |
          if test -x "`which port`"; then
            sudo port install libtool autoconf automake
          else
            brew install libtool autoconf automake
          fi
          pip3 install cython
      shell: bash
    - uses: actions/checkout@v2
    - name: autogen
      run: |
          SDKDIR=`xcrun --sdk macosx --show-sdk-path`
          TESTARCHS="arm64 x86_64"
          USEARCHS=
          for ARCH in $TESTARCHS; do
            if echo "int main(int argc, char **argv) { return 0; }" |clang -arch $ARCH -o /dev/null -isysroot $SDKDIR -x c - 2>/dev/null; then
              USEARCHS="$USEARCHS -arch $ARCH"
            fi
          done
          export CFLAGS="$USEARCHS -isysroot $SDKDIR"
          echo "Using CFLAGS: $CFLAGS"
          PYTHON3_BIN=`xcrun -f python3`
          if test -x $PYTHON3_BIN; then
            export PYTHON=$PYTHON3_BIN
            PYTHON_VER=`$PYTHON3_BIN -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('VERSION'))"`
            PYTHON_EXEC_PREFIX=`$PYTHON3_BIN -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('exec_prefix'))"`
            PYTHON_LIBS_PATH=$PYTHON_EXEC_PREFIX/lib
            PYTHON_FRAMEWORK_PATH=$PYTHON_EXEC_PREFIX/Python3
            export PYTHON_LIBS="-L$PYTHON_LIBS_PATH -lpython$PYTHON_VER"
            export PYTHON_EXTRA_LDFLAGS="-Wl,-stack_size,1000000  -framework CoreFoundation $PYTHON_FRAMEWORK_PATH"
          else
            export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/2.7/bin"
            export LIBS="-L/Library/Frameworks/Python.framework/Versions/2.7/lib"
            export PYTHON_EXTRA_LDFLAGS="-u _PyMac_Error /System/Library/Frameworks/Python.framework/Versions/2.7/Python"
          fi
          ./autogen.sh
    - name: make
      run: make
    - name: make check
      run: make check
  build-windows:
    runs-on: windows-latest
    defaults:
      run:
        shell: msys2 {0}
    strategy:
      fail-fast: false
      matrix:
        include: [
          { msystem: MINGW64, arch: x86_64 },
          { msystem: MINGW32, arch: i686   }
        ]
    steps:
    - uses: msys2/setup-msys2@v2
      with:
        msystem: ${{ matrix.msystem }}
        release: false
        update: false
        install: >-
          base-devel
          git
          mingw-w64-${{ matrix.arch }}-gcc
          make
          libtool
          autoconf
          automake-wrapper
          cython
    - uses: actions/checkout@v2
    - name: autogen
      run: ./autogen.sh CC=gcc CXX=g++
    - name: make
      run: make
    - name: make check
      run: make check
    - name: print test logs
      run: |
          for I in test/*.trs; do
            RES=`grep ":test-result" $I |cut -d ":" -f 3`
            if test $RES != PASS; then
              TESTNAME=`basename $I .trs`
              echo $TESTNAME:
              cat test/$TESTNAME.log
              echo
            fi
          done
      shell: bash
