name: C
on: [push,pull_request]

jobs:
  linux:
    runs-on: ubuntu-latest
    env:
      PYTHON: python3
    strategy:
      matrix:
        choiceL: [--disable-silent-rules, --enable-frenchlib, --enable-pylib]
    steps:
      - uses: actions/checkout@v4
      - name: Create configure
        run: |
          sudo apt-get update -y
          sudo apt-get install autoconf automake libtool gcc
          autoreconf -i
          automake
      - name: Choose configure
        run: ./configure ${{ matrix.choiceL }}
      - name: Make library
        run: make
      - name: Test library
        run: make check
      - name: Test make distcheck
        if: matrix.choiceL == '--disable-silent-rules'
        run: make distcheck
  macos:
    runs-on: macos-latest
    env:
      PYTHON: python3
    strategy:
      matrix:
        choiceM: [--disable-silent-rules, --enable-frenchlib, --enable-pylib]
    steps:
      - uses: actions/checkout@v4
      - name: Create configure
        run: |
          brew install autoconf automake libtool gcc python-setuptools
          autoreconf -i
          automake
      - name: Choose configure
        run: ./configure ${{ matrix.choiceM }}
      - name: Make library
        run: make
      - name: Test library
        run: make check
  windows:
    runs-on: windows-latest
    env:
      PYTHON: python3
    strategy:
      matrix:
        include: [
          { msystem: MINGW64, tools: mingw-w64-x86_64 },
          { msystem: UCRT64, tools: mingw-w64-ucrt-x86_64 },
          { msystem: CLANG64, tools: mingw-w64-clang-x86_64 },
      ]
    name: ${{ matrix.msystem }}
    defaults:
      run:
        shell: msys2 {0}
    steps:
      - uses: actions/checkout@v4
      - uses: msys2/setup-msys2@v2
        with:
          msystem: ${{ matrix.msystem }}
          update: true
          install: autotools base-devel git ${{matrix.tools}}-toolchain ${{matrix.tools}}-python-setuptools ${{matrix.tools}}-python-pip-tools ${{matrix.tools}}-python-wheel
      - name: Create configure
        run: |
          python --version
          autoreconf -i
          automake
      - name: Choose configure
        run: ./configure --enable-pylib
      - name: Make library
        run: make
      - name: Test library
        run: make check
