Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 28 additions & 38 deletions .github/workflows/build-test-and-artifact.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ on: [push, pull_request]
jobs:

linux-x86-clang:
runs-on: "ubuntu-20.04"
runs-on: "ubuntu-24.04"

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%dT%H%M')"
run: echo "name=date::$(date +'%Y-%m-%dT%H%M')" >> $GITHUB_OUTPUT

- name: Install build dependencies
run: sudo apt -y update && sudo apt -y install libpcap-dev libsdl-dev netcat-openbsd
Expand All @@ -38,33 +38,36 @@ jobs:
run: ${{runner.workspace}}/axpbox/test/run

- name: Upload AXPbox binary
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: AXPbox-linux-x86-clang-${{ env.BUILD_DATE }}
path: ${{runner.workspace}}/build/axpbox
env:
BUILD_DATE: ${{ steps.date.outputs.date }}

linux-x86-gcc:
runs-on: "ubuntu-20.04"
runs-on: "ubuntu-24.04"

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%dT%H%M')"
run: echo "name=date::$(date +'%Y-%m-%dT%H%M')" >> $GITHUB_OUTPUT

- name: Install gcovr
run: pip install gcovr

- name: Install build dependencies
run: sudo apt -y update && sudo apt -y install libpcap-dev libsdl-dev netcat-openbsd
run: sudo apt -y update && sudo apt -y install libpcap-dev libsdl1.2-dev netcat-openbsd

- name: Create build environment
run: cmake -E make_directory ${{runner.workspace}}/build

- name: Configure CMake
shell: bash
working-directory: ${{runner.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Wall"
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Wall" -DCMAKE_EXPORT_COMPILE_COMMANDS=1

- name: Build
working-directory: ${{runner.workspace}}/build
Expand All @@ -79,35 +82,34 @@ jobs:
run: ${{runner.workspace}}/axpbox/test/run

- name: Upload AXPbox binary
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: AXPbox-linux-x86-gcc-${{ env.BUILD_DATE }}
path: ${{runner.workspace}}/build/axpbox
env:
BUILD_DATE: ${{ steps.date.outputs.date }}

linux-arm-gcc-crosscompile:
runs-on: "ubuntu-20.04"
runs-on: "ubuntu-24.04"
continue-on-error: true

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%dT%H%M')"

- name: Install build dependencies
run: sudo apt -y update && sudo apt -y install netcat-openbsd qemu-user-binfmt qemu-user g++-multilib-arm-linux-gnueabihf gcc-arm-linux-gnueabihf

run: sudo apt -y update && sudo apt -y install netcat-openbsd qemu-user qemu-user-binfmt gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libc6-dev-armhf-cross

- name: Create build environment
run: cmake -E make_directory ${{runner.workspace}}/build

- name: Configure CMake
shell: bash
working-directory: ${{runner.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DSTATIC_COMPILE=yes -DDISABLE_PCAP=yes -DDISABLE_SDL=yes -DDISABLE_X11=yes -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Wall" -DCMAKE_C_COMPILER="arm-linux-gnueabihf-gcc-9" -DCMAKE_CXX_COMPILER="arm-linux-gnueabihf-g++-9" -DCMAKE_CXX_FLAGS="-O3 -march=armv7ve"
run: cmake $GITHUB_WORKSPACE -DSTATIC_COMPILE=yes -DDISABLE_PCAP=yes -DDISABLE_SDL=yes -DDISABLE_X11=yes -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Wall" -DCMAKE_C_COMPILER=arm-linux-gnueabihf-gcc -DCMAKE_CXX_COMPILER=arm-linux-gnueabihf-g++ -DCMAKE_CXX_FLAGS="-O3 -mcpu=cortex-a7 -mfpu=neon -mfloat-abi=hard -mno-unaligned-access"

- name: Build
working-directory: ${{runner.workspace}}/build
Expand All @@ -116,30 +118,28 @@ jobs:
env:
MAKEFLAGS: "-j2"

- name: Binary info
- name: Run binary
working-directory: ${{runner.workspace}}/axpbox
shell: bash
run: file ${{runner.workspace}}/build/axpbox
run: ${{runner.workspace}}/build/axpbox

- name: Run test scripts
- name: Binary info
working-directory: ${{runner.workspace}}/axpbox
shell: bash
run: ${{runner.workspace}}/axpbox/test/run
run: file ${{runner.workspace}}/build/axpbox

- name: Upload AXPbox binary
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: AXPbox-linux-ARM-gcc-${{ env.BUILD_DATE }}
path: ${{runner.workspace}}/build/axpbox
env:
BUILD_DATE: ${{ steps.date.outputs.date }}

windows-x86-msvc:
runs-on: windows-2019
runs-on: windows-2025
steps:
- uses: actions/checkout@v2


- uses: actions/checkout@v4

- name: Create npcap sdk folder
working-directory: ${{runner.workspace}}\
Expand Down Expand Up @@ -176,28 +176,18 @@ jobs:
working-directory: ${{runner.workspace}}\build
run: ${{runner.workspace}}\build\Release\axpbox.exe

- name: install netcat
uses: crazy-max/ghaction-chocolatey@v3
with:
args: install netcat

- name: Run rom tests script
working-directory: ${{runner.workspace}}\axpbox\test\rom\
run: ${{runner.workspace}}\axpbox\test\rom\test.ps1


- name: Upload AXPbox Binary
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: AXPbox-windows-x86-msvc-${{ env.BUILD_DATE }}.exe
path: ${{runner.workspace}}\build\Release\axpbox.exe
env:
BUILD_DATE: ${{ steps.date.outputs.date }}

osx-x86-appleclang:
runs-on: "macos-12"
runs-on: macos-15"
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Get current date
id: date
Expand All @@ -222,7 +212,7 @@ jobs:
MAKEFLAGS: "-j2"

- name: Upload AXPbox Binary
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: AXPbox-osx-x86-12-appleclang-${{ env.BUILD_DATE }}
path: ${{runner.workspace}}/build/axpbox
Expand Down
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Please read the [Installation Guide](https://github.com/lenticularis39/axpbox/wi
- OpenVMS host support was dropped
- es40 and es40_cfg were merged into one executable (axpbox)
- The code was cleaned to compile without warnings on most compilers
- Code modernizing, replacing POCO framework parts by native C++ counterparts not available in 2008 (std::threads, etc)
- Code modernizing, replacing POCO framework parts by native C++11 counterparts not available in 2008 (std::threads, etc)
- Incorporate various patches from other es40 forks, for example, added MC146818 periodic interrupt to allow netbsd to boot and install, skip_memtest for faster booting.
- Bug fixes, less segfaults, overall less crashes.
- [More](https://github.com/lenticularis39/axpbox/wiki/) documentation and usage information on the various features and operating systems
Expand All @@ -48,5 +48,4 @@ Please read the [Installation Guide](https://github.com/lenticularis39/axpbox/wi
- Multiple CPU system emulation
- Running on big endian platforms
- Some SCSI and IDE commands
- Networking for a longer time (breaks after a couple minutes)
- Copying large files between IDE CD-ROM to IDE hard drive (this usually doesn't affect OpenVMS installation)
16 changes: 16 additions & 0 deletions sonar-project.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
sonar.projectKey=rve_axpbox
sonar.organization=rve

# This is the name and version displayed in the SonarCloud UI.
sonar.projectName=AXPBox
sonar.projectVersion=1.1.3


# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
sonar.sources=src/

# use complation database
sonar.cfamily.compile-commands=../build/compile_commands.json

# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8
Loading