diff --git a/.circleci/config.yml b/.circleci/config.yml index a9214dd85..a63c2aa07 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -84,6 +84,16 @@ jobs: - run: cd build && cmake .. -DBINARY_RELEASE=ON -DCMAKE_TOOLCHAIN_FILE=../CMake/switch/devkita64-libnx.cmake - run: cd build && cmake --build . -j $(nproc) - store_artifacts: {path: ./build/devilutionx.nro, destination: devilutionx.nro} + amigaos-m68k: + docker: + - image: amigadev/crosstools:m68k-amigaos + working_directory: ~/repo + steps: + - checkout + - run: Packaging/amiga/prep.sh + - run: cd build && PKG_CONFIG_PATH=/opt/m68k-amigaos/lib/pkgconfig/:/opt/m68k-amigaos/share/pkgconfig/ cmake -DM68K_CPU=68040 -DM68K_FPU=hard -DM68K_COMMON="-s -ffast-math -O3 -noixemul -D__BIG_ENDIAN__ -D__AMIGA__ -fpermissive" .. + - run: cd build && make -j$(nproc) + - store_artifacts: {path: ./build/devilutionx, destination: devilutionx_m68k} workflows: version: 2 @@ -95,3 +105,4 @@ workflows: - windows_x86 - linux_x86_64_sdl1 - switch + - amigaos-m68k diff --git a/Packaging/amiga/prep.sh b/Packaging/amiga/prep.sh new file mode 100755 index 000000000..333c2bd37 --- /dev/null +++ b/Packaging/amiga/prep.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +# exit when any command fails +set -eo pipefail + +#set compiler params +export TARGET='m68k-amigaos' +export SYSROOT=/opt/$TARGET + +# ZLIB +wget https://www.zlib.net/zlib-1.2.11.tar.gz +tar -xvf zlib-1.2.11.tar.gz +mkdir -p zlib-1.2.11/build +cd zlib-1.2.11/build +cmake .. -DCMAKE_INSTALL_PREFIX=${SYSROOT} -DM68K_CPU=68040 -DM68K_FPU=hard -DM68K_COMMON="-s -ffast-math -O3 -fno-exceptions -w -fomit-frame-pointer -noixemul -DBIG_ENDIAN -DAMIGA -fpermissive -std=c++14" +cmake --build . --config Release --target install -- -j$(getconf _NPROCESSORS_ONLN) +cd ../.. + +# SDL1.2 +wget https://github.com/AmigaPorts/libSDL12/archive/master.tar.gz -O SDL-1.2.tar.gz +tar -xvf SDL-1.2.tar.gz +cd libSDL12-master +make PREFX=${SYSROOT} PREF=${SYSROOT} -j$(getconf _NPROCESSORS_ONLN) +cp -fvr libSDL.a ${SYSROOT}/lib +cp -fvr include/* ${SYSROOT}/include/ +cd .. + +# SDL_mixer +wget https://github.com/SDL-mirror/SDL_mixer/archive/SDL-1.2.tar.gz -O SDL_mixer-SDL-1.2.tar.gz +tar -xvf SDL_mixer-SDL-1.2.tar.gz +cd SDL_mixer-SDL-1.2 +./autogen.sh +SDL_LIBS='-lSDL -ldebug' SDL_CFLAGS="-I${SYSROOT}/include/SDL -noixemul" ./configure --disable-sdltest --disable-shared --enable-static --host=${TARGET} --prefix=${SYSROOT} +make -j$(getconf _NPROCESSORS_ONLN) +make install +cd .. + +# FreeType +wget https://download.savannah.gnu.org/releases/freetype/freetype-2.10.1.tar.gz +tar -xvf freetype-2.10.1.tar.gz +mkdir -p freetype-2.10.1/build +cd freetype-2.10.1/build +cmake .. -DCMAKE_INSTALL_PREFIX=${SYSROOT} -DUNIX=1 +cmake --build . --config Release --target install -- -j$(getconf _NPROCESSORS_ONLN) +cd ../.. + +# SDL_ttf +wget https://github.com/SDL-mirror/SDL_ttf/archive/SDL-1.2.tar.gz -O SDL_ttf-SDL-1.2.tar.gz +tar -xvf SDL_ttf-SDL-1.2.tar.gz +cd SDL_ttf-SDL-1.2 +./autogen.sh +SDL_LIBS='-lSDL -ldebug' SDL_CFLAGS="-I${SYSROOT}/include/SDL -noixemul" FT2_CFLAGS="-I${SYSROOT}/include/freetype2" FT2_LIBS="-lfreetype -lzlib" ./configure --disable-shared --enable-static --host=${TARGET} --prefix=${SYSROOT} +make -j$(getconf _NPROCESSORS_ONLN) +make install