Skip to content

Merge pull request #4996 from jaakristioja/nullptr-fixes #796

Merge pull request #4996 from jaakristioja/nullptr-fixes

Merge pull request #4996 from jaakristioja/nullptr-fixes #796

Workflow file for this run

name: 32-bit MinGW builds
on:
push:
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
MinGW32_CI_build:
permissions:
actions: write # for styfle/cancel-workflow-action to cancel/stop running workflows
contents: write # for actions/checkout to fetch code and softprops/action-gh-release
if: github.event_name == 'push' || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- name: Cancel previous runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
- uses: actions/checkout@v4
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
update: true
install: git make base-devel mingw-w64-i686-toolchain mingw-w64-i686-libtool mingw-w64-i686-nasm autoconf automake mingw-w64-i686-ncurses mingw-w64-i686-binutils mingw-w64-i686-libslirp
- name: Install libslirp
if: false
run: |
# Run this job when MinGW drops 32-bit library support (Other libraries can be built as well)
top=`pwd`
mkdir pkg
cd pkg
git clone https://github.com/msys2/MINGW-packages.git
pwd
cd MINGW-packages
#ls -lg
cd mingw-w64-libslirp
#ls -lg
sed -i -e "s/^mingw_arch=\(.*\)/mingw_arch=(\'mingw32\')/" PKGBUILD
MINGW_ARCH=MINGW32 makepkg-mingw -sCLf --noconfirm
#ls -lg
pacman --noconfirm -U mingw-w64-*-any.pkg.tar.zst
- name: Update build info
shell: bash
run: |
echo "timestamp=`git show -s --format=%at | xargs -I# date -d @# +%Y%m%d%H%M%S`" >> $GITHUB_ENV
export shortsha=`echo ${GITHUB_SHA} | cut -c1-7`
export copyrightyear=`git show -s --format=%at | xargs -I# date -d @# +'%Y'`
export updatestr=`git show -s --format=%at | xargs -I# date -d @# +'%b %d, %Y %I:%M:%S%P'`
echo '/* auto generated */' > include/build_timestamp.h
echo "#define UPDATED_STR \"${updatestr}\"" >> include/build_timestamp.h
echo "#define GIT_COMMIT_HASH \"${shortsha}\"" >> include/build_timestamp.h
echo "#define COPYRIGHT_END_YEAR \"${copyrightyear}\"" >> include/build_timestamp.h
cat include/build_timestamp.h
- name: Build MinGW32 SDL1
run: |
top=`pwd`
export "MSYSTEM_PREFIX=/d/a/_temp/msys64/mingw32"
# cp $top/build-scripts/mingw/lowend-bin/make.exe ${MSYSTEM_PREFIX}/bin/make.exe
./build-mingw
strip -s $top/src/dosbox-x.exe
- name: Package MinGW32 SDL1
run: |
top=`pwd`
mkdir -p $top/package/mingw-build/mingw/drivez
mkdir -p $top/package/mingw-build/mingw/scripts
mkdir -p $top/package/mingw-build/mingw/shaders
mkdir -p $top/package/mingw-build/mingw/glshaders
mkdir -p $top/package/mingw-build/mingw/languages
sed -e 's/^\(output[ ]*=[ ]*\)default$/\1ttf/;s/^\(windowposition[ ]*=\)[ ]*-/\1 /;s/^\(file access tries[ ]*=[ ]*\)0$/\13/;s/^\(printoutput[ ]*=[ ]*\)png$/\1printer/;s/\(drive data rate limit[ ]*=[ ]*\)-1$/\10/' $top/dosbox-x.reference.conf>$top/package/mingw-build/mingw/dosbox-x.conf
cp $top/src/dosbox-x.exe $top/package/mingw-build/mingw/dosbox-x.exe
cp $top/CHANGELOG $top/package/mingw-build/mingw/CHANGELOG.txt
cp $top/dosbox-x.reference.conf $top/package/mingw-build/mingw/dosbox-x.reference.conf
cp $top/dosbox-x.reference.full.conf $top/package/mingw-build/mingw/dosbox-x.reference.full.conf
cp $top/contrib/windows/installer/readme.txt $top/package/mingw-build/mingw/README.txt
cp $top/contrib/windows/installer/inpout32.dll $top/package/mingw-build/mingw/inpout32.dll
cp $top/contrib/fonts/FREECG98.BMP $top/package/mingw-build/mingw/FREECG98.BMP
cp $top/contrib/fonts/wqy_1?pt.bdf $top/package/mingw-build/mingw/
cp $top/contrib/fonts/Nouveau_IBM.ttf $top/package/mingw-build/mingw/Nouveau_IBM.ttf
cp $top/contrib/fonts/SarasaGothicFixed.ttf $top/package/mingw-build/mingw/SarasaGothicFixed.ttf
cp $top/contrib/windows/installer/drivez_readme.txt $top/package/mingw-build/mingw/drivez/readme.txt
cp $top/contrib/windows/installer/windows_explorer_context_menu*.bat $top/package/mingw-build/mingw/scripts/
cp $top/contrib/windows/shaders/* $top/package/mingw-build/mingw/shaders/
cp $top/contrib/glshaders/* $top/package/mingw-build/mingw/glshaders/
cp $top/contrib/translations/*/*.lng $top/package/mingw-build/mingw/languages/
- name: Build MinGW32 SDL2
run: |
top=`pwd`
export "MSYSTEM_PREFIX=/d/a/_temp/msys64/mingw32"
./build-mingw-sdl2
strip -s $top/src/dosbox-x.exe
- name: Package MinGW32 SDL2
run: |
top=`pwd`
mkdir -p $top/package/mingw-build/mingw-sdl2/drivez
mkdir -p $top/package/mingw-build/mingw-sdl2/scripts
mkdir -p $top/package/mingw-build/mingw-sdl2/shaders
mkdir -p $top/package/mingw-build/mingw-sdl2/glshaders
mkdir -p $top/package/mingw-build/mingw-sdl2/languages
sed -e 's/^\(output[ ]*=[ ]*\)default$/\1ttf/;s/^\(windowposition[ ]*=\)[ ]*-/\1 /;s/^\(file access tries[ ]*=[ ]*\)0$/\13/;s/^\(printoutput[ ]*=[ ]*\)png$/\1printer/;s/\(drive data rate limit[ ]*=[ ]*\)-1$/\10/' $top/dosbox-x.reference.conf>$top/package/mingw-build/mingw-sdl2/dosbox-x.conf
cp $top/src/dosbox-x.exe $top/package/mingw-build/mingw-sdl2/dosbox-x.exe
cp $top/CHANGELOG $top/package/mingw-build/mingw-sdl2/CHANGELOG.txt
cp $top/dosbox-x.reference.conf $top/package/mingw-build/mingw-sdl2/dosbox-x.reference.conf
cp $top/dosbox-x.reference.full.conf $top/package/mingw-build/mingw-sdl2/dosbox-x.reference.full.conf
cp $top/contrib/windows/installer/readme.txt $top/package/mingw-build/mingw-sdl2/README.txt
cp $top/contrib/windows/installer/inpout32.dll $top/package/mingw-build/mingw-sdl2/inpout32.dll
cp $top/contrib/fonts/FREECG98.BMP $top/package/mingw-build/mingw-sdl2/FREECG98.BMP
cp $top/contrib/fonts/wqy_1?pt.bdf $top/package/mingw-build/mingw-sdl2/
cp $top/contrib/fonts/Nouveau_IBM.ttf $top/package/mingw-build/mingw-sdl2/Nouveau_IBM.ttf
cp $top/contrib/fonts/SarasaGothicFixed.ttf $top/package/mingw-build/mingw-sdl2/SarasaGothicFixed.ttf
cp $top/contrib/windows/installer/drivez_readme.txt $top/package/mingw-build/mingw-sdl2/drivez/readme.txt
cp $top/contrib/windows/installer/windows_explorer_context_menu*.bat $top/package/mingw-build/mingw-sdl2/scripts/
cp $top/contrib/windows/shaders/* $top/package/mingw-build/mingw-sdl2/shaders/
cp $top/contrib/glshaders/* $top/package/mingw-build/mingw-sdl2/glshaders/
cp $top/contrib/translations/*/*.lng $top/package/mingw-build/mingw-sdl2/languages/
cp $top/COPYING $top/package/COPYING
cd $top/package/
$top/vs/tool/zip.exe -r -9 $top/dosbox-x-mingw-win32-${{ env.timestamp }}.zip *
cd $top
- name: Upload preview package
uses: actions/[email protected]
with:
name: dosbox-x-mingw-win32-${{ env.timestamp }}
path: ${{ github.workspace }}/package/
- name: Upload release package
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: dosbox-x-mingw-win32-${{ env.timestamp }}.zip
MinGW32_CI_lowend_build:
permissions:
actions: write # for styfle/cancel-workflow-action to cancel/stop running workflows
contents: write # for actions/checkout to fetch code and softprops/action-gh-release
if: github.event_name == 'push' || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- name: Cancel previous runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
- uses: actions/checkout@v4
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
update: true
install: git make mingw-w64-i686-libtool autoconf automake p7zip
- name: Update build info
shell: bash
run: |
echo "timestamp=`git show -s --format=%at | xargs -I# date -d @# +%Y%m%d%H%M%S`" >> $GITHUB_ENV
export shortsha=`echo ${GITHUB_SHA} | cut -c1-7`
export copyrightyear=`git show -s --format=%at | xargs -I# date -d @# +'%Y'`
export updatestr=`git show -s --format=%at | xargs -I# date -d @# +'%b %d, %Y %I:%M:%S%P'`
echo '/* auto generated */' > include/build_timestamp.h
echo "#define UPDATED_STR \"${updatestr}\"" >> include/build_timestamp.h
echo "#define GIT_COMMIT_HASH \"${shortsha}\"" >> include/build_timestamp.h
echo "#define COPYRIGHT_END_YEAR \"${copyrightyear}\"" >> include/build_timestamp.h
cat include/build_timestamp.h
sed -i -e "s/#define OS_PLATFORM \"MinGW\"/#define OS_PLATFORM \"MinGWLE\"/" include/version_string.h
sed -i -e "s/#define OS_PLATFORM_LONG \"MinGW\"/#define OS_PLATFORM_LONG \"MinGW Low-end\"/" include/version_string.h
- name: setup lowend build environment
run: |
top=`pwd`
echo "${top}"
export "MSYSTEM_PREFIX=/d/a/_temp/msys64/mingw32"
echo "path=$PATH"
cd ${MSYSTEM_PREFIX}/..
rm -rf /d/a/_temp/msys64/mingw32
mkdir mingw32
7z x $top/build-scripts/mingw/lowend-bin/i686-7.3.0-release-posix-dwarf-rt_v5-rev0+nasm.7z -o${MSYSTEM_PREFIX}
# cp $top/build-scripts/mingw/lowend-bin/make.exe ${MSYSTEM_PREFIX}/bin/make.exe
echo "MSYSTEM_PREFIX=${MSYSTEM_PREFIX}"
chmod +x ${MSYSTEM_PREFIX}/bin/*.*
chmod +x ${MSYSTEM_PREFIX}/i686-w64-mingw32/bin/*.*
chmod +x ${MSYSTEM_PREFIX}/opt/bin/*.*
- name: Build MinGW32 SDL1
run: |
top=`pwd`
export "MSYSTEM_PREFIX=/d/a/_temp/msys64/mingw32"
./build-mingw
strip -s $top/src/dosbox-x.exe
- name: Package MinGW32 lowend SDL1
run: |
top=`pwd`
mkdir -p $top/package/mingw-build/mingw/drivez
mkdir -p $top/package/mingw-build/mingw/scripts
mkdir -p $top/package/mingw-build/mingw/shaders
mkdir -p $top/package/mingw-build/mingw/glshaders
mkdir -p $top/package/mingw-build/mingw/languages
sed -e 's/^\(output[ ]*=[ ]*\)default$/\1ttf/;s/^\(windowposition[ ]*=\)[ ]*-/\1 /;s/^\(file access tries[ ]*=[ ]*\)0$/\13/;s/^\(printoutput[ ]*=[ ]*\)png$/\1printer/;s/\(drive data rate limit[ ]*=[ ]*\)-1$/\10/' $top/dosbox-x.reference.conf>$top/package/mingw-build/mingw/dosbox-x.conf
cp $top/src/dosbox-x.exe $top/package/mingw-build/mingw/dosbox-x.exe
cp $top/CHANGELOG $top/package/mingw-build/mingw/CHANGELOG.txt
cp $top/dosbox-x.reference.conf $top/package/mingw-build/mingw/dosbox-x.reference.conf
cp $top/dosbox-x.reference.full.conf $top/package/mingw-build/mingw/dosbox-x.reference.full.conf
cp $top/contrib/windows/installer/readme.txt $top/package/mingw-build/mingw/README.txt
cp $top/contrib/windows/installer/inpout32.dll $top/package/mingw-build/mingw/inpout32.dll
cp $top/contrib/fonts/FREECG98.BMP $top/package/mingw-build/mingw/FREECG98.BMP
cp $top/contrib/fonts/wqy_1?pt.bdf $top/package/mingw-build/mingw/
cp $top/contrib/fonts/Nouveau_IBM.ttf $top/package/mingw-build/mingw/Nouveau_IBM.ttf
cp $top/contrib/fonts/SarasaGothicFixed.ttf $top/package/mingw-build/mingw/SarasaGothicFixed.ttf
cp $top/contrib/windows/installer/drivez_readme.txt $top/package/mingw-build/mingw/drivez/readme.txt
cp $top/contrib/windows/installer/windows_explorer_context_menu*.bat $top/package/mingw-build/mingw/scripts/
cp $top/contrib/windows/shaders/* $top/package/mingw-build/mingw/shaders/
cp $top/contrib/glshaders/* $top/package/mingw-build/mingw/glshaders/
cp $top/contrib/translations/*/*.lng $top/package/mingw-build/mingw/languages/
- name: Build MinGW32 lowend SDL2
run: |
top=`pwd`
export "MSYSTEM_PREFIX=/d/a/_temp/msys64/mingw32"
./build-mingw-sdl2
strip -s $top/src/dosbox-x.exe
- name: Package MinGW32 lowend SDL2
run: |
top=`pwd`
mkdir -p $top/package/mingw-build/mingw-sdl2/drivez
mkdir -p $top/package/mingw-build/mingw-sdl2/scripts
mkdir -p $top/package/mingw-build/mingw-sdl2/shaders
mkdir -p $top/package/mingw-build/mingw-sdl2/glshaders
mkdir -p $top/package/mingw-build/mingw-sdl2/languages
sed -e 's/^\(output[ ]*=[ ]*\)default$/\1ttf/;s/^\(windowposition[ ]*=\)[ ]*-/\1 /;s/^\(file access tries[ ]*=[ ]*\)0$/\13/;s/^\(printoutput[ ]*=[ ]*\)png$/\1printer/;s/\(drive data rate limit[ ]*=[ ]*\)-1$/\10/' $top/dosbox-x.reference.conf>$top/package/mingw-build/mingw-sdl2/dosbox-x.conf
cp $top/src/dosbox-x.exe $top/package/mingw-build/mingw-sdl2/dosbox-x.exe
cp $top/CHANGELOG $top/package/mingw-build/mingw-sdl2/CHANGELOG.txt
cp $top/dosbox-x.reference.conf $top/package/mingw-build/mingw-sdl2/dosbox-x.reference.conf
cp $top/dosbox-x.reference.full.conf $top/package/mingw-build/mingw-sdl2/dosbox-x.reference.full.conf
cp $top/contrib/windows/installer/readme.txt $top/package/mingw-build/mingw-sdl2/README.txt
cp $top/contrib/windows/installer/inpout32.dll $top/package/mingw-build/mingw-sdl2/inpout32.dll
cp $top/contrib/fonts/FREECG98.BMP $top/package/mingw-build/mingw-sdl2/FREECG98.BMP
cp $top/contrib/fonts/wqy_1?pt.bdf $top/package/mingw-build/mingw-sdl2/
cp $top/contrib/fonts/Nouveau_IBM.ttf $top/package/mingw-build/mingw-sdl2/Nouveau_IBM.ttf
cp $top/contrib/fonts/SarasaGothicFixed.ttf $top/package/mingw-build/mingw-sdl2/SarasaGothicFixed.ttf
cp $top/contrib/windows/installer/drivez_readme.txt $top/package/mingw-build/mingw-sdl2/drivez/readme.txt
cp $top/contrib/windows/installer/windows_explorer_context_menu*.bat $top/package/mingw-build/mingw-sdl2/scripts/
cp $top/contrib/windows/shaders/* $top/package/mingw-build/mingw-sdl2/shaders/
cp $top/contrib/glshaders/* $top/package/mingw-build/mingw-sdl2/glshaders/
cp $top/contrib/translations/*/*.lng $top/package/mingw-build/mingw-sdl2/languages/
cp $top/COPYING $top/package/COPYING
cd $top/package/
$top/vs/tool/zip.exe -r -9 $top/dosbox-x-mingw-win32-lowend-${{ env.timestamp }}.zip *
cd $top
- name: Upload preview package
uses: actions/[email protected]
with:
name: dosbox-x-mingw-win32-lowend-${{ env.timestamp }}
path: ${{ github.workspace }}/package/
- name: Upload release package
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: dosbox-x-mingw-win32-lowend-${{ env.timestamp }}.zip
MinGW32_CI_lowend9x_build:
permissions:
actions: write # for styfle/cancel-workflow-action to cancel/stop running workflows
contents: write # for actions/checkout to fetch code and softprops/action-gh-release
if: github.event_name == 'push' || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- name: Cancel previous runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
- uses: actions/checkout@v4
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
update: true
install: git make mingw-w64-i686-libtool autoconf automake p7zip
- name: Update build info
shell: bash
run: |
echo "timestamp=`git show -s --format=%at | xargs -I# date -d @# +%Y%m%d%H%M%S`" >> $GITHUB_ENV
export shortsha=`echo ${GITHUB_SHA} | cut -c1-7`
export copyrightyear=`git show -s --format=%at | xargs -I# date -d @# +'%Y'`
export updatestr=`git show -s --format=%at | xargs -I# date -d @# +'%b %d, %Y %I:%M:%S%P'`
echo '/* auto generated */' > include/build_timestamp.h
echo "#define UPDATED_STR \"${updatestr}\"" >> include/build_timestamp.h
echo "#define GIT_COMMIT_HASH \"${shortsha}\"" >> include/build_timestamp.h
echo "#define COPYRIGHT_END_YEAR \"${copyrightyear}\"" >> include/build_timestamp.h
cat include/build_timestamp.h
sed -i -e "s/#define OS_PLATFORM \"MinGW\"/#define OS_PLATFORM \"MinGW9x\"/" include/version_string.h
sed -i -e "s/#define OS_PLATFORM_LONG \"MinGW\"/#define OS_PLATFORM_LONG \"MinGW Low-end 9x\"/" include/version_string.h
- name: setup lowend9x build environment
run: |
top=`pwd`
echo "${top}"
export "MSYSTEM_PREFIX=/d/a/_temp/msys64/mingw32"
echo "path=$PATH"
cd ${MSYSTEM_PREFIX}/..
rm -rf /d/a/_temp/msys64/mingw32
wget https://github.com/crazii/MINGW-toolchains-w9x/releases/download/v1.0.1-w95nt/mingw32.7z
7z x mingw32.7z -o./
echo "MSYSTEM_PREFIX=${MSYSTEM_PREFIX}"
chmod +x ${MSYSTEM_PREFIX}/bin/*.*
chmod +x ${MSYSTEM_PREFIX}/i686-w64-mingw32/bin/*.*
- name: Build MinGW32 lowend9x
run: |
top=`pwd`
export "MSYSTEM_PREFIX=/d/a/_temp/msys64/mingw32"
./build-mingw-lowend9x
strip -s $top/src/dosbox-x.exe
- name: Package MinGW32 lowend9x
run: |
top=`pwd`
mkdir -p $top/package/mingw-build/mingw/drivez
mkdir -p $top/package/mingw-build/mingw/scripts
mkdir -p $top/package/mingw-build/mingw/shaders
mkdir -p $top/package/mingw-build/mingw/glshaders
mkdir -p $top/package/mingw-build/mingw/languages
sed -e 's/^\(output[ ]*=[ ]*\)default$/\1ttf/;s/^\(windowposition[ ]*=\)[ ]*-/\1 /;s/^\(file access tries[ ]*=[ ]*\)0$/\13/;s/^\(printoutput[ ]*=[ ]*\)png$/\1printer/;s/\(drive data rate limit[ ]*=[ ]*\)-1$/\10/' $top/dosbox-x.reference.conf>$top/package/mingw-build/mingw/dosbox-x.conf
cp $top/src/dosbox-x.exe $top/package/mingw-build/mingw/dosbox-x.exe
cp $top/CHANGELOG $top/package/mingw-build/mingw/CHANGELOG.txt
cp $top/dosbox-x.reference.conf $top/package/mingw-build/mingw/dosbox-x.reference.conf
cp $top/dosbox-x.reference.full.conf $top/package/mingw-build/mingw/dosbox-x.reference.full.conf
cp $top/contrib/windows/installer/readme.txt $top/package/mingw-build/mingw/README.txt
cp $top/contrib/windows/installer/inpout32.dll $top/package/mingw-build/mingw/inpout32.dll
cp $top/contrib/fonts/FREECG98.BMP $top/package/mingw-build/mingw/FREECG98.BMP
cp $top/contrib/fonts/wqy_1?pt.bdf $top/package/mingw-build/mingw/
cp $top/contrib/fonts/Nouveau_IBM.ttf $top/package/mingw-build/mingw/Nouveau_IBM.ttf
cp $top/contrib/fonts/SarasaGothicFixed.ttf $top/package/mingw-build/mingw/SarasaGothicFixed.ttf
cp $top/contrib/windows/installer/drivez_readme.txt $top/package/mingw-build/mingw/drivez/readme.txt
cp $top/contrib/windows/installer/windows_explorer_context_menu*.bat $top/package/mingw-build/mingw/scripts/
cp $top/contrib/windows/shaders/* $top/package/mingw-build/mingw/shaders/
cp $top/contrib/glshaders/* $top/package/mingw-build/mingw/glshaders/
cp $top/contrib/translations/*/*.lng $top/package/mingw-build/mingw/languages/
cp $top/COPYING $top/package/COPYING
cd $top/package/
$top/vs/tool/zip.exe -r -9 $top/dosbox-x-mingw-win32-lowend9x-${{ env.timestamp }}.zip *
cd $top
- name: Upload preview package
uses: actions/[email protected]
with:
name: dosbox-x-mingw-win32-lowend9x-${{ env.timestamp }}
path: ${{ github.workspace }}/package/
- name: Upload release package
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: dosbox-x-mingw-win32-lowend9x-${{ env.timestamp }}.zip