Mercurial > sdl-ios-xcode
changeset 651:35ff0890ac4e
pmandin: Added Atari LDG shared object loader
author | Patrice Mandin <patmandin@gmail.com> |
---|---|
date | Wed, 16 Jul 2003 11:54:13 +0000 |
parents | fe445b59d307 |
children | a3bb929c9e2f |
files | README.MiNT configure.in src/SDL_loadso.c |
diffstat | 3 files changed, 35 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/README.MiNT Sat Jul 12 13:30:30 2003 +0000 +++ b/README.MiNT Wed Jul 16 11:54:13 2003 +0000 @@ -51,6 +51,7 @@ Joystick and joypad support (Ikbd, Hardware) Audio support (Hardware, XBIOS, GSXB, MCSN, STFA, /dev/audio if threads enabled) Threads support (Multitasking OS only via GNU pth library) +Shared object support (using LDG library from http://ldg.atari.org/) - What is missing: CDROM support (Metados, /dev/cdrom)
--- a/configure.in Sat Jul 12 13:30:30 2003 +0000 +++ b/configure.in Wed Jul 16 11:54:13 2003 +0000 @@ -380,7 +380,7 @@ AC_MSG_RESULT($audio_arts) if test x$audio_arts = xyes; then AC_ARG_ENABLE(arts-shared, -[ --enable-arts-shared dynamically load aRts audio support [default=no]], +[ --enable-arts-shared dynamically load aRts audio support [default=no]], , enable_arts_shared=no) arts_lib_spec=`echo $ARTSC_LIBS | sed 's/.*-L\([[^ ]]*\).*/\1\/libartsc.so.*/'` arts_lib=`ls $arts_lib_spec | head -1 | sed 's/.*\/\(.*\)/\1/'` @@ -408,7 +408,7 @@ CheckNAS() { AC_ARG_ENABLE(nas, -[ --enable-nas support the NAS audio API [default=yes]], +[ --enable-nas support the NAS audio API [default=yes]], , enable_nas=yes) if test x$enable_audio = xyes -a x$enable_nas = xyes; then AC_MSG_CHECKING(for NAS audio support) @@ -438,7 +438,7 @@ CheckDiskAudio() { AC_ARG_ENABLE(diskaudio, -[ --enable-diskaudio support the disk writer audio driver [default=yes]], +[ --enable-diskaudio support the disk writer audio driver [default=yes]], , enable_diskaudio=yes) if test x$enable_audio = xyes -a x$enable_diskaudio = xyes; then CFLAGS="$CFLAGS -DDISKAUD_SUPPORT" @@ -776,7 +776,7 @@ CheckDirectFB() { AC_ARG_ENABLE(video-directfb, -[ --enable-video-directfb use DirectFB video driver [default=yes]], +[ --enable-video-directfb use DirectFB video driver [default=yes]], , enable_video_directfb=yes) if test x$enable_video = xyes -a x$enable_video_directfb = xyes; then video_directfb=no @@ -899,7 +899,7 @@ CheckVGL() { AC_ARG_ENABLE(video-vgl, -[ --enable-video-vgl use VGL video driver [default=no]], +[ --enable-video-vgl use VGL video driver [default=no]], , enable_video_vgl=no) if test x$enable_video = xyes -a x$enable_video_vgl = xyes; then AC_MSG_CHECKING(for libVGL support) @@ -1577,6 +1577,22 @@ fi } +dnl Set up the Atari LDG (shared object loader) +CheckAtariLdg() +{ + AC_ARG_ENABLE(atari-ldg, +[ --enable-atari-ldg use Atari LDG for shared object loading [default=yes]], + , enable_atari_ldg=yes) + if test x$video_gem = xyes -a x$enable_atari_ldg = xyes; then + AC_CHECK_HEADER(ldg.h, have_ldg_hdr=yes) + AC_CHECK_LIB(ldg, ldg_open, have_ldg_lib=yes, have_ldg_lib=no, -lgem) + if test x$have_ldg_hdr = xyes -a x$have_ldg_lib = xyes; then + CFLAGS="$CFLAGS -DENABLE_LDG" + SYSTEM_LIBS="$SYSTEM_LIBS -lldg" + fi + fi +} + dnl Check for the usbhid(3) library on *BSD CheckUSBHID() { @@ -2429,6 +2445,7 @@ CheckAtariXbiosVideo CheckAtariGemVideo CheckAtariAudio + CheckAtariLdg CheckPTH # Set up files for the main() stub COPY_ARCH_SRC(src/main, linux, SDL_main.c)
--- a/src/SDL_loadso.c Sat Jul 12 13:30:30 2003 +0000 +++ b/src/SDL_loadso.c Wed Jul 16 11:54:13 2003 +0000 @@ -40,6 +40,9 @@ # include <Strings.h> # include <CodeFragments.h> # include <Errors.h> +#elif defined(__MINT__) && defined(ENABLE_LDG) +# include <gem.h> +# include <ldg.h> #else /*#error Unsupported dynamic link environment*/ #endif /* system type */ @@ -113,6 +116,9 @@ if ( loaderror == NULL ) { handle = (void *)(library_id); } +#elif defined(__MINT__) && defined(ENABLE_LDG) +/* * */ + handle = (void *)ldg_open((char *)sofile, ldg_global); #endif /* system type */ if ( handle == NULL ) { @@ -163,6 +169,9 @@ (char **)&symbol, &class) != noErr ) { loaderror = "Symbol not found"; } +#elif defined(__MINT__) && defined(ENABLE_LDG) +/* * */ + symbol = (void *)ldg_find((char *)name, (LDG *)handle); #endif /* system type */ if ( symbol == NULL ) { @@ -193,5 +202,8 @@ /* * */ CFragConnectionID library_id = (CFragConnectionID)handle; CloseConnection(library_id); +#elif defined(__MINT__) && defined(ENABLE_LDG) +/* * */ + ldg_close((LDG *)handle, ldg_global); #endif /* system type */ }