Difference between revisions of "Didj and Explorer libSDL"

From eLinux.org
Jump to: navigation, search
(Created page with 'To build SDL, first download and unpack it: wget http://www.libsdl.org/release/SDL-1.2.13.tar.gz tar -xf SDL-1.2.13.tar.gz cd SDL-1.2.13 Now try the following, but replac…')
 
(env)
Line 15: Line 15:
  
 
You should see libSDL.so in usr/lib in your rootfs directory as well as its header files in "usr/include".  When building applications against libSDL, tell the compiler to look for headers and the linker to look for libraries there (ie: CFLAGS="-I/path/to/rootfs/usr/include" and LDFLAGS="-L/path/to/rootfs/usr/lib").
 
You should see libSDL.so in usr/lib in your rootfs directory as well as its header files in "usr/include".  When building applications against libSDL, tell the compiler to look for headers and the linker to look for libraries there (ie: CFLAGS="-I/path/to/rootfs/usr/include" and LDFLAGS="-L/path/to/rootfs/usr/lib").
 +
 +
Copy the .so files and symlinks to your device.  Also edit "/etc/profile" on your device and add some environment variables for SDL:
 +
 +
For Didj:
 +
 +
  export SDL_NOMOUSE=1
 +
  export SDL_FBDEV="/dev/fb0"
 +
  export SDL_VIDEODRIVER="fbcon"
 +
  export SDL_AUDIODRIVER="dsp"
 +
  export SDL_PATH_DSP="/dev/dsp"
 +
  export SDL_DEBUG="1"
 +
  export SDL_FBACCEL="0"
 +
 +
For Explorer, the touchscreen works sort of like a mouse (TODO: add tslib support?), so you could try:
 +
 +
  export SDL_MOUSEDEV="/dev/input/event3"
 +
  export SDL_FBDEV="/dev/fb0"
 +
  export SDL_VIDEODRIVER="fbcon"
 +
  export SDL_AUDIODRIVER="dsp"
 +
  export SDL_PATH_DSP="/dev/dsp"
 +
  export SDL_DEBUG="1"
 +
  export SDL_FBACCEL="0"
 +
 +
You'll need to source that on your device:
 +
 +
  . /etc/profile
 +
 +
or just reboot.  You should now be able to run SDL programs or demos as long as your device is set up with a standard Linux framebuffer and console in place of the LeapFrog-supplied graphics drivers.

Revision as of 22:05, 17 July 2010

To build SDL, first download and unpack it:

 wget http://www.libsdl.org/release/SDL-1.2.13.tar.gz
 tar -xf SDL-1.2.13.tar.gz
 cd SDL-1.2.13

Now try the following, but replace the "/path/to" lines with paths on your system. You'll want to tell the build system where to install libSDL and where to look for kernel headers:

 CFLAGS="-I/path/to/kernel/linux-2.6/include/" CC=arm-linux-uclibcgnueabi-gcc CXX=arm-linux-uclibcgnueabi-g++ ./configure --prefix=/path/to/rootfs//usr/ --build=`uname -m` --host=arm-linux --disable-video-opengl --disable-video-x11 --disable-esd --disable-video-directfb --enable-video-fbcon

If that succeeds, try building and installing:

 make
 make install

You should see libSDL.so in usr/lib in your rootfs directory as well as its header files in "usr/include". When building applications against libSDL, tell the compiler to look for headers and the linker to look for libraries there (ie: CFLAGS="-I/path/to/rootfs/usr/include" and LDFLAGS="-L/path/to/rootfs/usr/lib").

Copy the .so files and symlinks to your device. Also edit "/etc/profile" on your device and add some environment variables for SDL:

For Didj:

 export SDL_NOMOUSE=1
 export SDL_FBDEV="/dev/fb0"
 export SDL_VIDEODRIVER="fbcon"
 export SDL_AUDIODRIVER="dsp"
 export SDL_PATH_DSP="/dev/dsp"
 export SDL_DEBUG="1"
 export SDL_FBACCEL="0"

For Explorer, the touchscreen works sort of like a mouse (TODO: add tslib support?), so you could try:

 export SDL_MOUSEDEV="/dev/input/event3"
 export SDL_FBDEV="/dev/fb0"
 export SDL_VIDEODRIVER="fbcon"
 export SDL_AUDIODRIVER="dsp"
 export SDL_PATH_DSP="/dev/dsp"
 export SDL_DEBUG="1"
 export SDL_FBACCEL="0"

You'll need to source that on your device:

 . /etc/profile

or just reboot. You should now be able to run SDL programs or demos as long as your device is set up with a standard Linux framebuffer and console in place of the LeapFrog-supplied graphics drivers.