24 changed files with 259 additions and 22 deletions
@ -0,0 +1,27 @@
|
||||
set(CMAKE_SYSTEM_NAME Generic) |
||||
set(CMAKE_SYSTEM_VERSION 1) |
||||
|
||||
if($ENV{DJGPP_PREFIX}) |
||||
set(DJGPP_PREFIX "$ENV{DJGPP_PREFIX}") |
||||
else() |
||||
set(DJGPP_PREFIX "/opt/i386-pc-msdosdjgpp-toolchain") |
||||
endif() |
||||
|
||||
set(CMAKE_C_COMPILER "${DJGPP_PREFIX}/bin/i386-pc-msdosdjgpp-gcc") |
||||
set(CMAKE_CXX_COMPILER "${DJGPP_PREFIX}/bin/i386-pc-msdosdjgpp-g++") |
||||
set(CMAKE_STRIP "${DJGPP_PREFIX}/bin/i386-pc-msdosdjgpp-strip") |
||||
set(PKG_CONFIG_EXECUTABLE "${DJGPP_PREFIX}/bin/i386-pc-msdosdjgpp-pkg-config" CACHE STRING "Path to pkg-config") |
||||
|
||||
set(CMAKE_EXE_LINKER_FLAGS_INIT "-static") |
||||
|
||||
set(DJGPP_ROOT "${DJGPP_PREFIX}/i386-pc-msdosdjgpp") |
||||
|
||||
set(CMAKE_FIND_ROOT_PATH "${DJGPP_ROOT}") |
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) |
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) |
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) |
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) |
||||
|
||||
link_directories("${DJGPP_ROOT}/lib") |
||||
include_directories(BEFORE SYSTEM "${DJGPP_ROOT}/sys-include" "${DJGPP_ROOT}/include") |
||||
|
||||
@ -0,0 +1,29 @@
|
||||
set(ASAN OFF) |
||||
set(UBSAN OFF) |
||||
set(DIST ON) |
||||
|
||||
set(NONET ON) |
||||
set(NOSOUND ON) |
||||
|
||||
set(PREFILL_PLAYER_NAME ON) |
||||
|
||||
set(DEVILUTIONX_SYSTEM_BZIP2 OFF) |
||||
set(DEVILUTIONX_SYSTEM_LIBFMT OFF) |
||||
set(DEVILUTIONX_SYSTEM_ZLIB OFF) |
||||
set(DEVILUTIONX_STATIC_ZLIB ON) |
||||
set(DEVILUTIONX_SYSTEM_SDL2 ON) |
||||
set(DEVILUTIONX_STATIC_SDL2 ON) |
||||
set(DEVILUTIONX_SYSTEM_SDL_IMAGE OFF) |
||||
set(DEVILUTIONX_SYSTEM_LIBPNG OFF) |
||||
|
||||
set(DEVILUTIONX_PLATFORM_FILE_UTIL_LINK_LIBRARIES "") |
||||
|
||||
list(APPEND DEVILUTIONX_PLATFORM_COMPILE_OPTIONS $<$<CONFIG:Debug>:-gstabs>) |
||||
|
||||
add_compile_definitions( |
||||
SDL_DISABLE_IMMINTRIN_H |
||||
SDL_DISABLE_XMMINTRIN_H |
||||
SDL_DISABLE_EMMINTRIN_H |
||||
SDL_DISABLE_PMMINTRIN_H |
||||
SDL_DISABLE_MMINTRIN_H |
||||
) |
||||
@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash |
||||
|
||||
set -euo pipefail |
||||
|
||||
# only use sudo when necessary |
||||
if [ `id -u` -ne 0 ]; then |
||||
SUDO=sudo |
||||
else |
||||
SUDO="" |
||||
fi |
||||
|
||||
# Install dependencies on Debian / Ubuntu: |
||||
if which apt-get 2>/dev/null; then |
||||
set -x |
||||
$SUDO apt-get update |
||||
$SUDO apt-get install bison flex curl gcc g++ make texinfo zlib1g-dev tar bzip2 \ |
||||
gzip xz-utils unzip python3-dev m4 dos2unix nasm cmake |
||||
{ set +x; } 2>/dev/null |
||||
fi |
||||
|
||||
INSTALL_PREFIX=/opt/i386-pc-msdosdjgpp-toolchain |
||||
|
||||
set -x |
||||
mkdir -p tmp/dos-prep |
||||
cd tmp/dos-prep |
||||
|
||||
# Build and install DJGPP |
||||
git clone https://github.com/jwt27/build-gcc.git |
||||
cd build-gcc |
||||
$SUDO ./build-djgpp.sh --prefix="$INSTALL_PREFIX" --batch binutils gcc-14.2.0 djgpp-cvs |
||||
cd - |
||||
$SUDO rm -rf build-gcc |
||||
|
||||
# Activate DJGPP environment |
||||
{ set +x; } 2>/dev/null |
||||
set +eu |
||||
source "${INSTALL_PREFIX}/bin/i386-pc-msdosdjgpp-setenv" |
||||
set -eu |
||||
set -x |
||||
|
||||
# Build and install SDL2 for DOS |
||||
git clone --branch=dos-vbe https://github.com/diasurgical/SDL.git |
||||
cd SDL |
||||
autoreconf -fi |
||||
./configure --host=i386-pc-msdosdjgpp --prefix="${INSTALL_PREFIX}/i386-pc-msdosdjgpp" --disable-shared --enable-static --enable-video-svga --enable-timer-dos --enable-uclock |
||||
make -j$(nproc) |
||||
$SUDO "${INSTALL_PREFIX}/bin/i386-pc-msdosdjgpp-setenv" make install |
||||
cd - |
||||
rm -rf SDL |
||||
Loading…
Reference in new issue