From 3737127825783c12832f2493372f8a0c505f804b Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Thu, 2 Mar 2006 03:24:20 +0000 Subject: [PATCH] Date: Wed, 01 Mar 2006 10:14:31 +0000 From: "alan buckley" Subject: Re: Updating SDL for RISC OS I've attached a zip file with three diffs to get SDL to build on RISC OS. configure.in.diff and makedeps.sh.diff have been modified so that they can build the assembler file in video/riscos. You may want to double check these as I don't know a lot about unix shell programming. (I've tested them cross-compiling on cygwin). sdlsysthread.diff is the changes required to SDL_systhread.c for RISC OS. As you suspected with these changes in place you can delete the RISC OS specific threading code in thread/riscos. I've also renamed SDL_riscosASM.s to SDL_riscosASM.S, but I'm never quite sure how to rename files in CVS, so if you could to this it would be appreciated. --- build-scripts/makedep.sh | 6 ++++++ configure.in | 2 ++ src/thread/pthread/SDL_systhread.c | 15 +++++++++++++++ .../riscos/{SDL_riscosASM.s => SDL_riscosASM.S} | 0 4 files changed, 23 insertions(+) rename src/video/riscos/{SDL_riscosASM.s => SDL_riscosASM.S} (100%) diff --git a/build-scripts/makedep.sh b/build-scripts/makedep.sh index f9801fe3f..ffea4bd20 100755 --- a/build-scripts/makedep.sh +++ b/build-scripts/makedep.sh @@ -67,6 +67,12 @@ __EOF__ \$(LIBTOOL) --tag=CC --mode=compile \$(auxdir)/strip_fPIC.sh \$(NASM) $src -o \$@ +__EOF__ + ;; + S) cat >>${output}.new <<__EOF__ + + \$(LIBTOOL) --mode=compile \$(CC) -c $src -o \$@ + __EOF__ ;; *) echo "Unknown file extension: $ext";; diff --git a/configure.in b/configure.in index e5465e109..b6ccb8334 100644 --- a/configure.in +++ b/configure.in @@ -2325,6 +2325,7 @@ case "$target" in if test x$enable_video = xyes; then AC_DEFINE(SDL_VIDEO_DRIVER_RISCOS) SOURCES="$SOURCES $srcdir/src/video/riscos/*.c" + SOURCES="$SOURCES $srcdir/src/video/riscos/*.S" have_video=yes fi # Set up files for the joystick library @@ -2388,6 +2389,7 @@ OBJECTS=`echo $SOURCES | sed 's,[[^ ]]*/\([[^ ]]*\)\.asm,$(objects)/\1.lo,g'` OBJECTS=`echo $OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.cc,$(objects)/\1.lo,g'` OBJECTS=`echo $OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.m,$(objects)/\1.lo,g'` OBJECTS=`echo $OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'` +OBJECTS=`echo $OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.S,$(objects)/\1.lo,g'` SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES | sed 's,[[^ ]]*/\([[^ ]]*\)\.cc,$(objects)/\1.o,g'` SDLMAIN_OBJECTS=`echo $SDLMAIN_OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.m,$(objects)/\1.o,g'` diff --git a/src/thread/pthread/SDL_systhread.c b/src/thread/pthread/SDL_systhread.c index 61994d3a6..e9923facf 100644 --- a/src/thread/pthread/SDL_systhread.c +++ b/src/thread/pthread/SDL_systhread.c @@ -34,6 +34,13 @@ static int sig_list[] = { SIGVTALRM, SIGPROF, 0 }; +#ifdef __RISCOS__ +/* RISC OS needs to know the main thread for + * it's timer and event processing. */ +int riscos_using_threads = 0; +Uint32 riscos_main_thread = 0; /* Thread running events */ +#endif + static void *RunThread(void *data) { @@ -58,6 +65,14 @@ int SDL_SYS_CreateThread(SDL_Thread *thread, void *args) SDL_SetError("Not enough resources to create thread"); return(-1); } + +#ifdef __RISCOS__ + if (riscos_using_threads == 0) { + riscos_using_threads = 1; + riscos_main_thread = SDL_ThreadID(); + } +#endif + return(0); } diff --git a/src/video/riscos/SDL_riscosASM.s b/src/video/riscos/SDL_riscosASM.S similarity index 100% rename from src/video/riscos/SDL_riscosASM.s rename to src/video/riscos/SDL_riscosASM.S