Merge branch 'UMSKT:master' into master #22
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This file is a part of the UMSKT Project | |
# | |
# Copyleft (C) 2019-2023 UMSKT Contributors (et.al.) | |
# | |
# This program is free software: you can redistribute it and/or modify | |
# it under the terms of the GNU Affero General Public License as published by | |
# the Free Software Foundation, either version 3 of the License, or | |
# (at your option) any later version. | |
# | |
# This program is distributed in the hope that it will be useful, | |
# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
# GNU Affero General Public License for more details. | |
# | |
# You should have received a copy of the GNU Affero General Public License | |
# along with this program. If not, see <http://www.gnu.org/licenses/>. | |
# | |
# @FileCreated by Neo on 06/19/2023 | |
# @Maintainer Neo | |
name: C/C++ CI (DOS DJGPP) | |
on: | |
push: | |
branches: [ "*" ] | |
paths-ignore: [ '**.md', 'doc/**', '.idea/**'] # If only these files are edited, skip | |
workflow_dispatch: | |
env: | |
CC: ${{ github.workspace }}/djgpp/bin/i586-pc-msdosdjgpp-gcc | |
CXX: ${{ github.workspace }}/djgpp/bin/i586-pc-msdosdjgpp-g++ | |
CMAKE_FIND_ROOT_PATH: ${{ github.workspace }}/djgpp | |
WATT_ROOT: ${{ github.workspace }}/djgpp/watt32 | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Source Tree | |
uses: actions/checkout@v3 | |
- name: Setup build environment | |
run: | | |
sudo apt -y update | |
sudo apt -y install build-essential cmake wget 7zip git flex libfl-dev nasm libslang2-dev pkg-config libslang2-modules gcc-multilib | |
- name: Download and Setup DJGPP Toolchain | |
run: | | |
pushd ${{ github.workspace }} | |
wget https://github.com/andrewwutw/build-djgpp/releases/download/v3.4/djgpp-linux64-gcc1220.tar.bz2 | |
tar xjf djgpp-linux64-gcc1220.tar.bz2 | |
cd ${{ github.workspace }}/djgpp | |
git clone https://github.com/UMSKT/Watt-32.git watt32 | |
cd watt32/util | |
make clean && make linux | |
cd ../src | |
source ${{ github.workspace }}/djgpp/setenv | |
./configur.sh djgpp | |
make -f djgpp.mak | |
ln -s ${WATT_ROOT}/lib/libwatt.a ${{ github.workspace }}/djgpp/lib | |
- name: Checkout and Cross Compile OpenSSL 3.1.2 | |
run: | | |
git clone https://github.com/UMSKT/openssl.git openssl | |
pushd openssl | |
source ${{ github.workspace }}/djgpp/setenv | |
./Configure no-threads -DOPENSSL_DEV_NO_ATOMICS --prefix=${{ github.workspace }}/djgpp DJGPP | |
make && make install | |
popd | |
- name: Build | |
run: | | |
source ${{ github.workspace }}/djgpp/setenv | |
pushd build | |
cmake ../ -D DJGPP_WATT32=${WATT_ROOT}/lib/libwatt.a -D CMAKE_FIND_ROOT_PATH=${CMAKE_FIND_ROOT_PATH} | |
make | |
- name: Move executable to upload directory | |
run: | | |
mkdir build/actions_upload | |
mv build/umskt.exe build/actions_upload/ | |
- name: Upload build artifact | |
uses: actions/[email protected] | |
with: | |
name: UMSKT-DOS | |
path: build/actions_upload |