|
|
@@ -0,0 +1,86 @@ |
|
|
|
name: Autoconf |
|
|
|
|
|
|
|
on: |
|
|
|
workflow_dispatch: |
|
|
|
push: |
|
|
|
branches: [ master ] |
|
|
|
pull_request: |
|
|
|
branches: [ master ] |
|
|
|
|
|
|
|
jobs: |
|
|
|
build: |
|
|
|
runs-on: ${{ matrix.os }}-${{ matrix.osver }} |
|
|
|
|
|
|
|
name: "${{ matrix.os }} ${{ matrix.arch }}: ${{ matrix.compiler }}" |
|
|
|
strategy: |
|
|
|
fail-fast: false |
|
|
|
matrix: |
|
|
|
os: [ubuntu, macos] |
|
|
|
arch: [amd64, i386] |
|
|
|
compiler: [gcc, clang] |
|
|
|
|
|
|
|
include: |
|
|
|
- os: ubuntu |
|
|
|
osver: 22.04 |
|
|
|
- os: macos |
|
|
|
osver: 12 |
|
|
|
|
|
|
|
- arch: i386 |
|
|
|
archcflags: "-m32 -msse2 -mfpmath=sse" |
|
|
|
|
|
|
|
exclude: |
|
|
|
- os: macos |
|
|
|
arch: i386 |
|
|
|
|
|
|
|
steps: |
|
|
|
|
|
|
|
# Linux - dependencies |
|
|
|
- name: apt-build-deps |
|
|
|
if: matrix.os == 'ubuntu' |
|
|
|
run: | |
|
|
|
sudo dpkg --add-architecture ${{ matrix.arch }} |
|
|
|
sudo apt-get update |
|
|
|
sudo apt-get install ronn kramdown python3 |
|
|
|
- name: apt-arch-deps |
|
|
|
if: matrix.os == 'ubuntu' |
|
|
|
run: "sudo apt-get install libtool-bin valgrind g++-12-multilib linux-libc-dev:${{ matrix.arch }} libpcaudio-dev:${{ matrix.arch }} libsonic-dev:${{ matrix.arch }}" |
|
|
|
- name: apt-compile-clang |
|
|
|
if: matrix.os == 'ubuntu' && matrix.compiler == 'clang' |
|
|
|
run: sudo apt-get install clang |
|
|
|
|
|
|
|
# MacOS - dependencies |
|
|
|
- name: brew-deps |
|
|
|
if: matrix.os == 'macos' |
|
|
|
run: brew install libtool automake ronn OJFord/homebrew-formulae/kramdown |
|
|
|
- name: brew-compile-deps |
|
|
|
if: matrix.os == 'macos' && matrix.compiler == 'gcc' |
|
|
|
run: brew install gcc@12 |
|
|
|
|
|
|
|
# Checkout code |
|
|
|
- uses: actions/checkout@v3 |
|
|
|
|
|
|
|
# Configure |
|
|
|
- name: configure |
|
|
|
run: | |
|
|
|
./autogen.sh |
|
|
|
chmod -x INSTALL m4/*.m4 |
|
|
|
[ 'x${{ matrix.compiler }}' = 'xgcc' ] && export CC="gcc-12" |
|
|
|
[ 'x${{ matrix.compiler }}' = 'xgcc' ] && export CXX="g++-12" |
|
|
|
[ 'x${{ matrix.compiler }}' = 'xclang' ] && export CC="clang" |
|
|
|
[ 'x${{ matrix.compiler }}' = 'xclang' ] && export CXX="clang++" |
|
|
|
export CFLAGS="-g -Og -fno-omit-frame-pointer ${{ matrix.archcflags }}" |
|
|
|
export CXXFLAGS="-g -Og -fno-omit-frame-pointer ${{ matrix.archcflags }}" |
|
|
|
./configure |
|
|
|
|
|
|
|
- name: config-failed-upload |
|
|
|
if: ${{ failure() }} |
|
|
|
uses: actions/upload-artifact@v3 |
|
|
|
with: |
|
|
|
name: config-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.compiler }}.log |
|
|
|
path: config.log |
|
|
|
|
|
|
|
# Build and test |
|
|
|
- name: build |
|
|
|
run: make all-am |
|
|
|
- name: test |
|
|
|
run: make check |