summaryrefslogtreecommitdiff
path: root/meta/packages/libsdl
diff options
context:
space:
mode:
authorRichard Purdie <richard@openedhand.com>2008-01-17 10:45:16 +0000
committerRichard Purdie <richard@openedhand.com>2008-01-17 10:45:16 +0000
commitd59f40bbf405eec59c68fbe93fa982fb4e2b2897 (patch)
tree45f6cefa2fc721d616142c081d3b356946dc339a /meta/packages/libsdl
parent6b21b82e745d603012ae35e38db470fbb4b46d40 (diff)
downloadopenembedded-core-d59f40bbf405eec59c68fbe93fa982fb4e2b2897.tar.gz
openembedded-core-d59f40bbf405eec59c68fbe93fa982fb4e2b2897.tar.bz2
openembedded-core-d59f40bbf405eec59c68fbe93fa982fb4e2b2897.zip
Add libsdl-sdk
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@3505 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta/packages/libsdl')
-rw-r--r--meta/packages/libsdl/files/acinclude.m4189
-rw-r--r--meta/packages/libsdl/files/directfb_obsolete_calls.patch33
-rw-r--r--meta/packages/libsdl/files/extra-keys.patch53
-rw-r--r--meta/packages/libsdl/files/kernel-asm-page.patch13
-rw-r--r--meta/packages/libsdl/libsdl-sdk_1.2.11.bb39
5 files changed, 327 insertions, 0 deletions
diff --git a/meta/packages/libsdl/files/acinclude.m4 b/meta/packages/libsdl/files/acinclude.m4
new file mode 100644
index 0000000000..ca2df9d5e5
--- /dev/null
+++ b/meta/packages/libsdl/files/acinclude.m4
@@ -0,0 +1,189 @@
+# Local macros for the SDL configure.in script
+
+dnl Function to link an architecture specific file
+dnl LINK_ARCH_SRC(source_dir, arch, source_file)
+AC_DEFUN([COPY_ARCH_SRC],
+[
+ old="$srcdir/$1/$2/$3"
+ new="$1/$3"
+ if test ! -d $1; then
+ echo "Creating directory $1"
+ mkdir -p $1
+ fi
+ echo "Copying $old -> $new"
+ cat >$new <<__EOF__
+/* WARNING: This file was automatically generated!
+ * Original: $old
+ */
+__EOF__
+ cat >>$new <$old
+])
+
+#
+# --- esd.m4 ---
+#
+# Configure paths for ESD
+# Manish Singh 98-9-30
+# stolen back from Frank Belew
+# stolen from Manish Singh
+# Shamelessly stolen from Owen Taylor
+
+dnl AM_PATH_ESD([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for ESD, and define ESD_CFLAGS and ESD_LIBS
+dnl
+AC_DEFUN([AM_PATH_ESD],
+[dnl
+dnl Get the cflags and libraries from the esd-config script
+dnl
+AC_ARG_WITH(esd-prefix,[ --with-esd-prefix=PFX Prefix where ESD is installed (optional)],
+ esd_prefix="$withval", esd_prefix="")
+AC_ARG_WITH(esd-exec-prefix,[ --with-esd-exec-prefix=PFX Exec prefix where ESD is installed (optional)],
+ esd_exec_prefix="$withval", esd_exec_prefix="")
+AC_ARG_ENABLE(esdtest, [ --disable-esdtest Do not try to compile and run a test ESD program],
+ , enable_esdtest=yes)
+
+ if test x$esd_exec_prefix != x ; then
+ esd_args="$esd_args --exec-prefix=$esd_exec_prefix"
+ if test x${ESD_CONFIG+set} != xset ; then
+ ESD_CONFIG=$esd_exec_prefix/bin/esd-config
+ fi
+ fi
+ if test x$esd_prefix != x ; then
+ esd_args="$esd_args --prefix=$esd_prefix"
+ if test x${ESD_CONFIG+set} != xset ; then
+ ESD_CONFIG=$esd_prefix/bin/esd-config
+ fi
+ fi
+
+ AC_PATH_PROG(ESD_CONFIG, esd-config, no)
+ min_esd_version=ifelse([$1], ,0.2.7,$1)
+ AC_MSG_CHECKING(for ESD - version >= $min_esd_version)
+ no_esd=""
+ if test "$ESD_CONFIG" = "no" ; then
+ no_esd=yes
+ else
+ ESD_CFLAGS=`$ESD_CONFIG $esdconf_args --cflags`
+ ESD_LIBS=`$ESD_CONFIG $esdconf_args --libs`
+
+ esd_major_version=`$ESD_CONFIG $esd_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ esd_minor_version=`$ESD_CONFIG $esd_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ esd_micro_version=`$ESD_CONFIG $esd_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ if test "x$enable_esdtest" = "xyes" ; then
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $ESD_CFLAGS"
+ LIBS="$LIBS $ESD_LIBS"
+dnl
+dnl Now check if the installed ESD is sufficiently new. (Also sanity
+dnl checks the results of esd-config to some extent
+dnl
+ rm -f conf.esdtest
+ AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <esd.h>
+
+char*
+my_strdup (char *str)
+{
+ char *new_str;
+
+ if (str)
+ {
+ new_str = malloc ((strlen (str) + 1) * sizeof(char));
+ strcpy (new_str, str);
+ }
+ else
+ new_str = NULL;
+
+ return new_str;
+}
+
+int main ()
+{
+ int major, minor, micro;
+ char *tmp_version;
+
+ system ("touch conf.esdtest");
+
+ /* HP/UX 9 (%@#!) writes to sscanf strings */
+ tmp_version = my_strdup("$min_esd_version");
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+ printf("%s, bad version string\n", "$min_esd_version");
+ exit(1);
+ }
+
+ if (($esd_major_version > major) ||
+ (($esd_major_version == major) && ($esd_minor_version > minor)) ||
+ (($esd_major_version == major) && ($esd_minor_version == minor) && ($esd_micro_version >= micro)))
+ {
+ return 0;
+ }
+ else
+ {
+ printf("\n*** 'esd-config --version' returned %d.%d.%d, but the minimum version\n", $esd_major_version, $esd_minor_version, $esd_micro_version);
+ printf("*** of ESD required is %d.%d.%d. If esd-config is correct, then it is\n", major, minor, micro);
+ printf("*** best to upgrade to the required version.\n");
+ printf("*** If esd-config was wrong, set the environment variable ESD_CONFIG\n");
+ printf("*** to point to the correct copy of esd-config, and remove the file\n");
+ printf("*** config.cache before re-running configure\n");
+ return 1;
+ }
+}
+
+],, no_esd=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ if test "x$no_esd" = x ; then
+ AC_MSG_RESULT(yes)
+ ifelse([$2], , :, [$2])
+ else
+ AC_MSG_RESULT(no)
+ if test "$ESD_CONFIG" = "no" ; then
+ echo "*** The esd-config script installed by ESD could not be found"
+ echo "*** If ESD was installed in PREFIX, make sure PREFIX/bin is in"
+ echo "*** your path, or set the ESD_CONFIG environment variable to the"
+ echo "*** full path to esd-config."
+ else
+ if test -f conf.esdtest ; then
+ :
+ else
+ echo "*** Could not run ESD test program, checking why..."
+ CFLAGS="$CFLAGS $ESD_CFLAGS"
+ LIBS="$LIBS $ESD_LIBS"
+ AC_TRY_LINK([
+#include <stdio.h>
+#include <esd.h>
+], [ return 0; ],
+ [ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding ESD or finding the wrong"
+ echo "*** version of ESD. If it is not finding ESD, you'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+ [ echo "*** The test program failed to compile or link. See the file config.log for the"
+ echo "*** exact error that occured. This usually means ESD was incorrectly installed"
+ echo "*** or that you have moved ESD since it was installed. In the latter case, you"
+ echo "*** may want to edit the esd-config script: $ESD_CONFIG" ])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ ESD_CFLAGS=""
+ ESD_LIBS=""
+ ifelse([$3], , :, [$3])
+ fi
+ AC_SUBST(ESD_CFLAGS)
+ AC_SUBST(ESD_LIBS)
+ rm -f conf.esdtest
+])
+
diff --git a/meta/packages/libsdl/files/directfb_obsolete_calls.patch b/meta/packages/libsdl/files/directfb_obsolete_calls.patch
new file mode 100644
index 0000000000..f3f422cde3
--- /dev/null
+++ b/meta/packages/libsdl/files/directfb_obsolete_calls.patch
@@ -0,0 +1,33 @@
+--- tmp/work/armv5te-angstrom-linux-gnueabi/libsdl-directfb-1.2.9-r1/SDL-1.2.9/src/video/directfb/SDL_DirectFB_video.c 2007-02-18 11:40:38.000000000 -0500
++++ SDL/src/video/directfb/SDL_DirectFB_video.c 2007-02-18 11:00:07.000000000 -0500
+@@ -376,7 +376,7 @@
+ {
+ int i;
+ DFBResult ret;
+- DFBCardCapabilities caps;
++ DFBGraphicsDeviceDescription caps;
+ DFBDisplayLayerConfig dlc;
+ struct DirectFBEnumRect *rect;
+ IDirectFB *dfb = NULL;
+@@ -448,7 +448,7 @@
+
+
+ /* Query card capabilities to get the video memory size */
+- dfb->GetCardCapabilities (dfb, &caps);
++ dfb->GetDeviceDescription (dfb, &caps);
+
+ this->info.wm_available = 1;
+ this->info.hw_available = 1;
+diff -u'rNF^function' tmp/work/armv5te-angstrom-linux-gnueabi/libsdl-directfb-1.2.9-r1/SDL-1.2.9/src/video/directfb/SDL_Direct
+/SDL_DirectFB_events.c
+--- tmp/work/armv5te-angstrom-linux-gnueabi/libsdl-directfb-1.2.9-r1/SDL-1.2.9/src/video/directfb/SDL_DirectFB_events.c 2004-0
++++ SDL/src/video/directfb/SDL_DirectFB_events.c 2007-02-18 11:00:07.000000000 -0500
+@@ -161,7 +161,7 @@
+ keymap[DIKI_SHIFT_L - DIKI_UNKNOWN] = SDLK_LSHIFT;
+ keymap[DIKI_SHIFT_R - DIKI_UNKNOWN] = SDLK_RSHIFT;
+ keymap[DIKI_ALT_L - DIKI_UNKNOWN] = SDLK_LALT;
+- keymap[DIKI_ALTGR - DIKI_UNKNOWN] = SDLK_RALT;
++ keymap[DIKI_ALT_R - DIKI_UNKNOWN] = SDLK_RALT;
+ keymap[DIKI_TAB - DIKI_UNKNOWN] = SDLK_TAB;
+ keymap[DIKI_ENTER - DIKI_UNKNOWN] = SDLK_RETURN;
+ keymap[DIKI_SPACE - DIKI_UNKNOWN] = SDLK_SPACE;
diff --git a/meta/packages/libsdl/files/extra-keys.patch b/meta/packages/libsdl/files/extra-keys.patch
new file mode 100644
index 0000000000..f12f0c7efb
--- /dev/null
+++ b/meta/packages/libsdl/files/extra-keys.patch
@@ -0,0 +1,53 @@
+diff -upr --exclude=configure --exclude=Makefile --exclude=Makefile.in libsdl1.2-1.2.4/include/SDL_keysym.h libsdl1.2-1.2.4-arm/include/SDL_keysym.h
+--- libsdl1.2-1.2.4/include/SDL_keysym.h 2002-03-06 11:23:01.000000000 +0000
++++ libsdl1.2-1.2.4-arm/include/SDL_keysym.h 2002-11-08 20:43:09.000000000 +0000
+@@ -286,6 +286,12 @@ typedef enum {
+ SDLK_EURO = 321, /* Some european keyboards */
+ SDLK_UNDO = 322, /* Atari keyboard has Undo */
+
++ SDLK_RECORD = 322,
++ SDLK_CALENDAR = 323,
++ SDLK_TELEPHONE = 324,
++ SDLK_MAIL = 325,
++ SDLK_START = 326,
++
+ /* Add any other keys here */
+
+ SDLK_LAST
+diff -upr --exclude=configure --exclude=Makefile --exclude=Makefile.in libsdl1.2-1.2.4/src/video/x11/SDL_x11events.c libsdl1.2-1.2.4-arm/src/video/x11/SDL_x11events.c
+--- libsdl1.2-1.2.4/src/video/x11/SDL_x11events.c 2002-03-06 11:23:08.000000000 +0000
++++ libsdl1.2-1.2.4-arm/src/video/x11/SDL_x11events.c 2002-11-08 21:01:41.000000000 +0000
+@@ -34,6 +34,7 @@ static char rcsid =
+ #include <X11/Xlib.h>
+ #include <X11/Xutil.h>
+ #include <X11/keysym.h>
++#include <X11/XF86keysym.h>
+ #ifdef __SVR4
+ #include <X11/Sunkeysym.h>
+ #endif
+@@ -655,6 +656,25 @@ SDL_keysym *X11_TranslateKey(Display *di
+ case 0xFF:
+ keysym->sym = MISC_keymap[xsym&0xFF];
+ break;
++ case 0x1008ff:
++ switch (xsym) {
++ case XF86XK_AudioRecord:
++ keysym->sym = SDLK_RECORD;
++ break;
++ case XF86XK_PowerDown:
++ keysym->sym = SDLK_POWER;
++ break;
++ case XF86XK_Calendar:
++ keysym->sym = SDLK_CALENDAR;
++ break;
++ case XF86XK_Mail:
++ keysym->sym = SDLK_MAIL;
++ break;
++ case XF86XK_Start:
++ keysym->sym = SDLK_START;
++ break;
++ }
++ break;
+ default:
+ fprintf(stderr,
+ "X11: Unknown xsym, sym = 0x%04x\n",
diff --git a/meta/packages/libsdl/files/kernel-asm-page.patch b/meta/packages/libsdl/files/kernel-asm-page.patch
new file mode 100644
index 0000000000..42bceadfdc
--- /dev/null
+++ b/meta/packages/libsdl/files/kernel-asm-page.patch
@@ -0,0 +1,13 @@
+diff --git a/src/video/Xext/Xxf86dga/XF86DGA.c b/src/video/Xext/Xxf86dga/XF86DGA.c
+index 4e3d662..de38a3c 100644
+--- a/src/video/Xext/Xxf86dga/XF86DGA.c
++++ b/src/video/Xext/Xxf86dga/XF86DGA.c
+@@ -18,7 +18,7 @@ Copyright (c) 1995,1996 The XFree86 Project, Inc
+ #define HAS_MMAP_ANON
+ #include <sys/types.h>
+ #include <sys/mman.h>
+-#include <asm/page.h> /* PAGE_SIZE */
++#include <unistd.h>
+ #define HAS_SC_PAGESIZE /* _SC_PAGESIZE may be an enum for Linux */
+ #define HAS_GETPAGESIZE
+ #endif /* linux */
diff --git a/meta/packages/libsdl/libsdl-sdk_1.2.11.bb b/meta/packages/libsdl/libsdl-sdk_1.2.11.bb
new file mode 100644
index 0000000000..ea65903824
--- /dev/null
+++ b/meta/packages/libsdl/libsdl-sdk_1.2.11.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "Simple DirectMedia Layer - native Edition"
+HOMEPAGE = "http://www.libsdl.org"
+SECTION = "libs"
+LICENSE = "LGPL"
+DEPENDS = "libx11-sdk libxext-sdk libxrandr-sdk libxrender-sdk"
+RDEPENDS = "libx11-sdk libxrandr-sdk libxrender-sdk libxext-sdk"
+PR = "r2"
+
+SRC_URI = "http://www.libsdl.org/release/SDL-${PV}.tar.gz \
+ file://acinclude.m4 \
+ file://kernel-asm-page.patch;patch=1 "
+S = "${WORKDIR}/SDL-${PV}"
+
+inherit autotools binconfig pkgconfig sdk
+
+EXTRA_OECONF = "--disable-static --disable-debug --disable-cdrom --enable-threads --enable-timers --enable-endian \
+ --enable-file --disable-oss --disable-alsa --disable-esd --disable-arts \
+ --disable-diskaudio --disable-nas --disable-esd-shared --disable-esdtest \
+ --disable-mintaudio --disable-nasm --enable-video-x11 --disable-video-dga \
+ --disable-video-fbcon --disable-video-directfb --disable-video-ps2gs \
+ --disable-video-xbios --disable-video-gem --disable-video-dummy \
+ --disable-video-opengl --enable-input-events --enable-pthreads \
+ --disable-video-picogui --disable-video-qtopia --enable-dlopen"
+
+do_configure() {
+ rm -f ${S}/acinclude.m4
+ cp ${WORKDIR}/acinclude.m4 ${S}/
+ gnu-configize
+ oe_runconf
+ cd ${S}
+ # prevent libtool from linking libs against libstdc++, libgcc, ...
+ cat ${TARGET_PREFIX}libtool | sed -e 's/postdeps=".*"/postdeps=""/' > ${TARGET_PREFIX}libtool.tmp
+ mv ${TARGET_PREFIX}libtool.tmp ${TARGET_PREFIX}libtool
+}
+
+do_stage() {
+ autotools_stage_all
+ install -m 0644 build/libSDLmain.a ${STAGING_LIBDIR}
+}