mirror of
https://github.com/open-simh/simh.git
synced 2026-01-11 23:53:30 +00:00
- Nuke and reinstall HomeBrew for macOS builds. Gets around the whole problem of stale links and conflicting packages installed in the GitHub macOS images. - macOS 12 and Ubuntu 20.04 officially deprecated. Ubuntu 20.04 will be removed from GitHub's runner images on 01 APR 2025. - .travis/deps.sh: Add mingw32 as a dependency target, enable MinGW64 32-bit builds. - Work around LTO bug on Ubuntu and macOS compilers, where LTO appears to miscalculate the number of bytes stored when using the default byte swapping 'for' loop. This is a workaround that uses compiler swapping intrinsics for well known sizes that appeases LTO. The alternative is to wait for a compiler fix, which is infeasible.
66 lines
2.3 KiB
YAML
66 lines
2.3 KiB
YAML
name: Build
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- '*'
|
|
tags:
|
|
- '!v*'
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
jobs:
|
|
cmake-builds:
|
|
uses: ./.github/workflows/cmake-builds.yml
|
|
|
|
makefile:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
#-
|
|
# The makefile builds DO NOT produce artifacts (*). Using the "-latest"
|
|
# runner images is sufficient.
|
|
#
|
|
# (*) "artefact" for the rest of the Anglosphere
|
|
#-
|
|
|
|
matrix:
|
|
os: [macos-latest, ubuntu-latest]
|
|
|
|
simulators:
|
|
# These are supposed to match ALL in makefile.
|
|
# Each job builds ~15 simulators.
|
|
- pdp1 pdp4 pdp6 pdp7 pdp8 pdp9 pdp10 pdp10-ka pdp10-ki pdp10-kl pdp10-ks pdp11 pdp15 vax
|
|
- microvax2 vax730 vax750 vax780 vax8200 vax8600 microvax2000 infoserver100 infoserver150vxt microvax3100 microvax3100e vaxstation3100m30 vaxstation3100m38
|
|
- microvax3100m80 vaxstation4000vlc infoserver1000 nova eclipse hp2100 hp3000 i1401 i1620 s3 altair altairz80 gri i7094
|
|
- id16 id32 sds lgp h316 cdc1700 swtp6800mp-a swtp6800mp-a2 tx-0 ssem b5500 sage pdq3 alpha
|
|
- besm6 imlac tt2500 microvax3900 microvax1 rtvax1000 vaxstation3100m76 vaxstation4000m60
|
|
- scelbi 3b2 i701 i704 i7010 i7070 i7080 i7090 sigma uc15 i650 sel32 intel-mds ibm1130
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
## Nuke homebrew and start with a clean instance:
|
|
- name: Reinstall HomeBrew (macOS)
|
|
if: ${{runner.os == 'macOS'}}
|
|
run: |
|
|
/usr/bin/sudo /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"
|
|
[ -d /opt/homebrew ] && ( sudo rm -rf /opt/homebrew/* || true )
|
|
[ -d /usr/local ] && ( sudo rm -rf /usr/local/* || true )
|
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
|
|
|
|
## Install our regular dependencies.
|
|
- name: Install dependencies (macOS)
|
|
if: ${{runner.os == 'macOS'}}
|
|
run: |
|
|
sh -ex .travis/deps.sh osx
|
|
|
|
- name: Install dependencies (Linux)
|
|
if: ${{runner.os == 'Linux'}}
|
|
run: sh -ex .travis/deps.sh linux
|
|
- name: makefile build
|
|
env:
|
|
SIM: ${{matrix.simulators}}
|
|
run: make LTO=1 OPTIMIZE=-O3 $SIM
|