diff --git a/Dockerfile b/Dockerfile index 971d074..388ed17 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ ARG BUILD_OS ARG BUILD_PFX -FROM --platform=$TARGETPLATFORM amigadev/${BUILD_PFX}:latest as build-env +FROM --platform=$TARGETPLATFORM amigadev/${BUILD_PFX}:latest AS build-env ARG TARGETPLATFORM FROM amigadev/docker-base:latest @@ -10,8 +10,8 @@ ARG BUILD_OS ARG BUILD_PFX ARG PREFIX -ENV CROSS_PFX $PREFIX -ENV OS_NAME $BUILD_OS +ENV CROSS_PFX=$PREFIX +ENV OS_NAME=$BUILD_OS COPY --from=build-env /opt/${CROSS_PFX} /opt/${CROSS_PFX} @@ -29,6 +29,7 @@ ENTRYPOINT ["/entry/entrypoint.sh"] COPY imagefiles/cmake.sh /usr/local/bin/cmake COPY imagefiles/ccmake.sh /usr/local/bin/ccmake COPY imagefiles/entrypoint.sh /entry/ +COPY imagefiles/patches/ /patches/ ENV AS=${CROSS_ROOT}/bin/${CROSS_PFX}-as \ LD=${CROSS_ROOT}/bin/${CROSS_PFX}-ld \ @@ -47,7 +48,7 @@ RUN ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-as /usr/bin/as && \ COPY dependencies/toolchains/${CROSS_PFX}.cmake ${CROSS_ROOT}/lib/ COPY dependencies/toolchains/Modules/${CROSS_PFX} /CMakeModules RUN cmake --version -RUN mv -fv /CMakeModules/* /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/ +RUN cp -afv /CMakeModules/. /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/ && rm -rf /CMakeModules RUN ln -s /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/Generic.cmake /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/${OS_NAME}.cmake ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/lib/${CROSS_PFX}.cmake ENV CMAKE_PREFIX_PATH /opt/${CROSS_PFX}:/opt/${CROSS_PFX}/usr diff --git a/dependencies/toolchains b/dependencies/toolchains index 4f4b077..c579e46 160000 --- a/dependencies/toolchains +++ b/dependencies/toolchains @@ -1 +1 @@ -Subproject commit 4f4b0779e3cc38b9ef6f13cedf7bbfd7dddfd190 +Subproject commit c579e46732af7398a09360dce4a6fb8d91d3f447 diff --git a/imagefiles/patches/sdl-old-timerbase-device.patch b/imagefiles/patches/sdl-old-timerbase-device.patch new file mode 100644 index 0000000..032264c --- /dev/null +++ b/imagefiles/patches/sdl-old-timerbase-device.patch @@ -0,0 +1,30 @@ +diff --git a/src/timer/amigaos/SDL_systimer.c b/src/timer/amigaos/SDL_systimer.c +--- a/src/timer/amigaos/SDL_systimer.c ++++ b/src/timer/amigaos/SDL_systimer.c +@@ -71,7 +71,7 @@ + extern struct ExecBase *SysBase; + + static struct timeval basetime; +-struct Library *TimerBase; ++struct Device *TimerBase; + + struct Task *OwnerTask; + struct timerequest *TimerReq[2]; /* Local copy! */ +@@ -163,7 +163,7 @@ gettimerbase() { + /* Open with UNIT_VBLANK, but any unit can be used */ + if ( !(error = OpenDevice(TIMERNAME, UNIT_MICROHZ, (struct IORequest *)TimerIO_2, 0L))) { + /* Issue the command and wait for it to finish, then get the reply */ +- TimerBase = (struct Library *)TimerIO_2->tr_node.io_Device; ++ TimerBase = TimerIO_2->tr_node.io_Device; + + TimerReq[0] = TimerIO_2; + TimerReq[1] = TimerIO_2; +@@ -234,7 +234,7 @@ void SDL_Delay(Uint32 ms) { + /* Data to handle a single periodic alarm */ + static int timer_alive = 0; + static SDL_Thread *timer_thread = NULL; +-struct Library *TimerBase; ++struct Device *TimerBase; + + int RunTimer(void *unused) { + struct timeval tv; diff --git a/platforms/m68k-amigaos-gcc10/prep.sh b/platforms/m68k-amigaos-gcc10/prep.sh index 35ee48a..3529f93 100755 --- a/platforms/m68k-amigaos-gcc10/prep.sh +++ b/platforms/m68k-amigaos-gcc10/prep.sh @@ -29,6 +29,9 @@ fi cd "${SUBMODULES}"/SDL git checkout SDL-1.2-AmigaOS3 git pull +if ! git apply --reverse --check /patches/sdl-old-timerbase-device.patch 2>/dev/null; then + git apply /patches/sdl-old-timerbase-device.patch +fi rm -rf "${SUBMODULES}"/SDL/build mkdir -p "${SUBMODULES}"/SDL/build cd "${SUBMODULES}"/SDL/build diff --git a/platforms/m68k-amigaos/prep.sh b/platforms/m68k-amigaos/prep.sh index 22bd2ac..3d1a8ed 100755 --- a/platforms/m68k-amigaos/prep.sh +++ b/platforms/m68k-amigaos/prep.sh @@ -29,6 +29,9 @@ fi cd "${SUBMODULES}"/SDL git checkout SDL-1.2-AmigaOS3 git pull +if ! git apply --reverse --check /patches/sdl-old-timerbase-device.patch 2>/dev/null; then + git apply /patches/sdl-old-timerbase-device.patch +fi rm -rf "${SUBMODULES}"/SDL/build mkdir -p "${SUBMODULES}"/SDL/build cd "${SUBMODULES}"/SDL/build