# HG changeset patch # User Sam Lantinga # Date 1141806617 0 # Node ID b2b476a4a73c92f283bdb9f88c61116d9bea11be # Parent 52a61c7b323b16cdbf9f7074f913ca1b1bc59127 Added documentation on how to build a completely useless SDL library. :) diff -r 52a61c7b323b -r b2b476a4a73c Makefile.minimal --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile.minimal Wed Mar 08 08:30:17 2006 +0000 @@ -0,0 +1,38 @@ +# Makefile to build the SDL library + +INCLUDE = -I./include +CFLAGS = -g -O2 $(INCLUDE) +AR = ar +RANLIB = ranlib + +TARGET = libSDL.a +SOURCES = \ + src/*.c \ + src/audio/*.c \ + src/cdrom/*.c \ + src/cpuinfo/*.c \ + src/events/*.c \ + src/file/*.c \ + src/joystick/*.c \ + src/stdlib/*.c \ + src/thread/*.c \ + src/timer/*.c \ + src/video/*.c \ + src/audio/disk/*.c \ + src/video/dummy/*.c \ + src/joystick/dummy/*.c \ + src/cdrom/dummy/*.c \ + src/thread/generic/*.c \ + src/timer/dummy/*.c \ + src/loadso/dummy/*.c \ + +OBJECTS = $(shell echo $(SOURCES) | sed -e 's,\.c,\.o,g') + +all: $(TARGET) + +$(TARGET): $(OBJECTS) + $(AR) crv $@ $^ + $(RANLIB) $@ + +clean: + rm -f $(TARGET) $(OBJECTS) diff -r 52a61c7b323b -r b2b476a4a73c README.Porting --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.Porting Wed Mar 08 08:30:17 2006 +0000 @@ -0,0 +1,56 @@ + +* Porting To A New Platform + + The first thing you have to do when porting to a new platform, is look at +include/SDL_platform.h and create an entry there for your operating system. +The standard format is __PLATFORM__, where PLATFORM is the name of the OS. +Ideally SDL_platform.h will be able to auto-detect the system it's building +on based on C preprocessor symbols. + +There are two basic ways of building SDL at the moment: + +1. The "UNIX" way: ./configure; make; make install + + If you have a GNUish system, then you might try this. Edit configure.in, + take a look at the large section labelled: + "Set up the configuration based on the target platform!" + Add a section for your platform, and then re-run autogen.sh and build! + +2. Using an IDE: + + If you're using an IDE or other non-configure build system, you'll probably + want to create a custom SDL_config.h for your platform. Edit SDL_config.h, + add a section for your platform, and create a custom SDL_config_{platform}.h, + based on SDL_config.h.minimal and SDL_config.h.in + + Add the top level include directory to the header search path, and then add + the following sources to the project: + src/*.c + src/audio/*.c + src/cdrom/*.c + src/cpuinfo/*.c + src/events/*.c + src/file/*.c + src/joystick/*.c + src/stdlib/*.c + src/thread/*.c + src/timer/*.c + src/video/*.c + src/audio/disk/*.c + src/video/dummy/*.c + src/joystick/dummy/*.c + src/cdrom/dummy/*.c + src/thread/generic/*.c + src/timer/dummy/*.c + src/loadso/dummy/*.c + + +Once you have a working library without any drivers, you can go back to each +of the major subsystems and start implementing drivers for your platform. + +If you have any questions, don't hesitate to ask on the SDL mailing list: + http://www.libsdl.org/mailing-list.php + +Enjoy! + Sam Lantinga (slouken@libsdl.org) + diff -r 52a61c7b323b -r b2b476a4a73c include/SDL_config.h --- a/include/SDL_config.h Wed Mar 08 06:21:04 2006 +0000 +++ b/include/SDL_config.h Wed Mar 08 08:30:17 2006 +0000 @@ -51,6 +51,28 @@ typedef unsigned int uint32_t; typedef unsigned int size_t; typedef unsigned long uintptr_t; -#endif + +/* Enable the disk audio driver (src/audio/disk/\*.c) */ +#define SDL_AUDIO_DRIVER_DISK 1 + +/* Enable the stub cdrom driver (src/cdrom/dummy/\*.c) */ +#define SDL_CDROM_DISABLED 1 + +/* Enable the stub joystick driver (src/joystick/dummy/\*.c) */ +#define SDL_JOYSTICK_DISABLED 1 + +/* Enable the stub shared object loader (src/loadso/dummy/\*.c) */ +#define SDL_LOADSO_DISABLED 1 + +/* Enable the stub thread support (src/thread/generic/\*.c) */ +#define SDL_THREADS_DISABLED 1 + +/* Enable the stub timer support (src/timer/dummy/\*.c) */ +#define SDL_TIMERS_DISABLED 1 + +/* Enable the dummy video driver (src/video/dummy/\*.c) */ +#define SDL_VIDEO_DRIVER_DUMMY 1 + +#endif /* platform config */ #endif /* _SDL_config_h */ diff -r 52a61c7b323b -r b2b476a4a73c include/SDL_config.h.minimal --- a/include/SDL_config.h.minimal Wed Mar 08 06:21:04 2006 +0000 +++ b/include/SDL_config.h.minimal Wed Mar 08 08:30:17 2006 +0000 @@ -51,6 +51,28 @@ typedef unsigned int uint32_t; typedef unsigned int size_t; typedef unsigned long uintptr_t; -#endif + +/* Enable the disk audio driver (src/audio/disk/\*.c) */ +#define SDL_AUDIO_DRIVER_DISK 1 + +/* Enable the stub cdrom driver (src/cdrom/dummy/\*.c) */ +#define SDL_CDROM_DISABLED 1 + +/* Enable the stub joystick driver (src/joystick/dummy/\*.c) */ +#define SDL_JOYSTICK_DISABLED 1 + +/* Enable the stub shared object loader (src/loadso/dummy/\*.c) */ +#define SDL_LOADSO_DISABLED 1 + +/* Enable the stub thread support (src/thread/generic/\*.c) */ +#define SDL_THREADS_DISABLED 1 + +/* Enable the stub timer support (src/timer/dummy/\*.c) */ +#define SDL_TIMERS_DISABLED 1 + +/* Enable the dummy video driver (src/video/dummy/\*.c) */ +#define SDL_VIDEO_DRIVER_DUMMY 1 + +#endif /* platform config */ #endif /* _SDL_config_h */ diff -r 52a61c7b323b -r b2b476a4a73c src/timer/dummy/SDL_systimer.c --- a/src/timer/dummy/SDL_systimer.c Wed Mar 08 06:21:04 2006 +0000 +++ b/src/timer/dummy/SDL_systimer.c Wed Mar 08 08:30:17 2006 +0000 @@ -21,6 +21,9 @@ */ #include "SDL_config.h" +#include "SDL_timer.h" +#include "../SDL_timer_c.h" + void SDL_StartTicks(void) { } diff -r 52a61c7b323b -r b2b476a4a73c test/.cvsignore --- a/test/.cvsignore Wed Mar 08 06:21:04 2006 +0000 +++ b/test/.cvsignore Wed Mar 08 08:30:17 2006 +0000 @@ -15,10 +15,9 @@ testbitmap testblitspeed testcdrom -testcpuinfo testdyngl -testendian testerror +testfile testgamma testgl testhread @@ -28,13 +27,12 @@ testoverlay testoverlay2 testpalette +testplatform testsem testsprite testtimer -testtypes testver testvidinfo testwin testwm -threadwin torturethread diff -r 52a61c7b323b -r b2b476a4a73c test/testcdrom.c --- a/test/testcdrom.c Wed Mar 08 06:21:04 2006 +0000 +++ b/test/testcdrom.c Wed Mar 08 08:30:17 2006 +0000 @@ -2,9 +2,9 @@ /* Test the SDL CD-ROM audio functions */ #include +#include +#include #include -#include -#include #include "SDL.h" diff -r 52a61c7b323b -r b2b476a4a73c test/testfile.c --- a/test/testfile.c Wed Mar 08 06:21:04 2006 +0000 +++ b/test/testfile.c Wed Mar 08 08:30:17 2006 +0000 @@ -1,7 +1,7 @@ /* sanity tests on SDL_rwops.c (usefull for alternative implementations of stdio rwops) */ - +#include #include "SDL.h" #include "SDL_endian.h" diff -r 52a61c7b323b -r b2b476a4a73c test/testtimer.c --- a/test/testtimer.c Wed Mar 08 06:21:04 2006 +0000 +++ b/test/testtimer.c Wed Mar 08 08:30:17 2006 +0000 @@ -37,7 +37,7 @@ SDL_TimerID t1, t2, t3; if ( SDL_Init(SDL_INIT_TIMER) < 0 ) { - fprintf(stderr, "Couldn't load SDL: %s\n", SDL_GetError()); + fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); return(1); }