name: autotools-macos

# autotools build and unit tests of Leptonica on macOS Homebrew.

on:
  pull_request:
    branches: [ master ]
    paths:
      - '**.c'
      - '**.h'
      - 'm4/*.m4'
      - 'Makefile.am'
      - 'autogen.sh'
      - 'configure.ac'

  push:

  # Trigger workflow in GitHub web frontend or from API.
  workflow_dispatch:

jobs:

  brew:
    runs-on: ${{ matrix.config.os }}
    strategy:
      fail-fast: false
      matrix:
        config:
          - { os: macos-12, cc: clang }
          - { os: macos-13, cc: clang }

    steps:
    - uses: actions/checkout@v4

    - name: Display compiler version and latest Git history
      run: |
           ${{ matrix.config.cc }} --version
           git log -3 --pretty=format:'%h %ad %s | %an'

    - name: Clean Homebrew installation
      run: |
           brew uninstall aws-sam-cli azure-cli bazelisk
           brew uninstall geckodriver firefox google-chrome microsoft-edge
           brew info python3

    - name: Install dependencies
      run: |
           brew install automake gnuplot || true

    - name: Setup Leptonica
      run: |
           ./autogen.sh

    - name: Configure Leptonica
      run: |
           ./configure 'CC=${{ matrix.config.cc }}'

    - name: Make and install Leptonica
      run: |
           make
           sudo make install

    - name: Make and run unit tests
      run: |
           make check
