]> code.ossystems Code Review - openembedded-core.git/commitdiff
Add libsdl-sdk
authorRichard Purdie <richard@openedhand.com>
Thu, 17 Jan 2008 10:45:16 +0000 (10:45 +0000)
committerRichard Purdie <richard@openedhand.com>
Thu, 17 Jan 2008 10:45:16 +0000 (10:45 +0000)
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@3505 311d38ba-8fff-0310-9ca6-ca027cbcb966

meta/packages/libsdl/files/acinclude.m4 [new file with mode: 0644]
meta/packages/libsdl/files/directfb_obsolete_calls.patch [new file with mode: 0644]
meta/packages/libsdl/files/extra-keys.patch [new file with mode: 0644]
meta/packages/libsdl/files/kernel-asm-page.patch [new file with mode: 0644]
meta/packages/libsdl/libsdl-sdk_1.2.11.bb [new file with mode: 0644]

diff --git a/meta/packages/libsdl/files/acinclude.m4 b/meta/packages/libsdl/files/acinclude.m4
new file mode 100644 (file)
index 0000000..ca2df9d
--- /dev/null
@@ -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 (file)
index 0000000..f3f422c
--- /dev/null
@@ -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 (file)
index 0000000..f12f0c7
--- /dev/null
@@ -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 (file)
index 0000000..42bcead
--- /dev/null
@@ -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 (file)
index 0000000..ea65903
--- /dev/null
@@ -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}
+}