From: Martin Jansa <martin.jansa@gmail.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: openembedded-core <openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH] libsdl: Convert to use pkg-config in internal m4 macros
Date: Wed, 25 Jun 2014 11:16:26 +0200 [thread overview]
Message-ID: <20140625091626.GR2437@jama> (raw)
In-Reply-To: <1403650427.2104.178.camel@ted>
[-- Attachment #1: Type: text/plain, Size: 9082 bytes --]
On Tue, Jun 24, 2014 at 11:53:47PM +0100, Richard Purdie wrote:
> Rather than code which doesn't even work properly when cross compiling,
> lets just use pkg-config instead. Its a little simpler.
Acked-by: Martin Jansa <Martin.Jansa@gmail.com>
BTW: libsdl-ttf still needs patch to use freetype2 pkg-config instead of
freetype-config, I'll fix that.
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
>
> diff --git a/meta/recipes-graphics/libsdl/libsdl-1.2.15/pkgconfig.patch b/meta/recipes-graphics/libsdl/libsdl-1.2.15/pkgconfig.patch
> new file mode 100644
> index 0000000..913baa9
> --- /dev/null
> +++ b/meta/recipes-graphics/libsdl/libsdl-1.2.15/pkgconfig.patch
> @@ -0,0 +1,187 @@
> +Rather than code which doesn't even work properly when cross compiling,
> +lets just use pkg-config instead. Its a little simpler.
> +
> +RP 2014/6/20
> +
> +Upstream-Status: Pending
> +
> +Index: SDL-1.2.15/sdl.m4
> +===================================================================
> +--- SDL-1.2.15.orig/sdl.m4
> ++++ SDL-1.2.15/sdl.m4
> +@@ -12,174 +12,8 @@ dnl Test for SDL, and define SDL_CFLAGS
> + dnl
> + AC_DEFUN([AM_PATH_SDL],
> + [dnl
> +-dnl Get the cflags and libraries from the sdl-config script
> +-dnl
> +-AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)],
> +- sdl_prefix="$withval", sdl_prefix="")
> +-AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)],
> +- sdl_exec_prefix="$withval", sdl_exec_prefix="")
> +-AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program],
> +- , enable_sdltest=yes)
> +-
> +- if test x$sdl_exec_prefix != x ; then
> +- sdl_config_args="$sdl_config_args --exec-prefix=$sdl_exec_prefix"
> +- if test x${SDL_CONFIG+set} != xset ; then
> +- SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config
> +- fi
> +- fi
> +- if test x$sdl_prefix != x ; then
> +- sdl_config_args="$sdl_config_args --prefix=$sdl_prefix"
> +- if test x${SDL_CONFIG+set} != xset ; then
> +- SDL_CONFIG=$sdl_prefix/bin/sdl-config
> +- fi
> +- fi
> +-
> +- as_save_PATH="$PATH"
> +- if test "x$prefix" != xNONE; then
> +- PATH="$prefix/bin:$prefix/usr/bin:$PATH"
> +- fi
> +- AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH])
> +- PATH="$as_save_PATH"
> + min_sdl_version=ifelse([$1], ,0.11.0,$1)
> +- AC_MSG_CHECKING(for SDL - version >= $min_sdl_version)
> +- no_sdl=""
> +- if test "$SDL_CONFIG" = "no" ; then
> +- no_sdl=yes
> +- else
> +- SDL_CFLAGS=`$SDL_CONFIG $sdl_config_args --cflags`
> +- SDL_LIBS=`$SDL_CONFIG $sdl_config_args --libs`
> +-
> +- sdl_major_version=`$SDL_CONFIG $sdl_config_args --version | \
> +- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
> +- sdl_minor_version=`$SDL_CONFIG $sdl_config_args --version | \
> +- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
> +- sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \
> +- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
> +- if test "x$enable_sdltest" = "xyes" ; then
> +- ac_save_CFLAGS="$CFLAGS"
> +- ac_save_CXXFLAGS="$CXXFLAGS"
> +- ac_save_LIBS="$LIBS"
> +- CFLAGS="$CFLAGS $SDL_CFLAGS"
> +- CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
> +- LIBS="$LIBS $SDL_LIBS"
> +-dnl
> +-dnl Now check if the installed SDL is sufficiently new. (Also sanity
> +-dnl checks the results of sdl-config to some extent
> +-dnl
> +- rm -f conf.sdltest
> +- AC_TRY_RUN([
> +-#include <stdio.h>
> +-#include <stdlib.h>
> +-#include <string.h>
> +-#include "SDL.h"
> +-
> +-char*
> +-my_strdup (char *str)
> +-{
> +- char *new_str;
> +-
> +- if (str)
> +- {
> +- new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
> +- strcpy (new_str, str);
> +- }
> +- else
> +- new_str = NULL;
> +-
> +- return new_str;
> +-}
> +-
> +-int main (int argc, char *argv[])
> +-{
> +- int major, minor, micro;
> +- char *tmp_version;
> +-
> +- /* This hangs on some systems (?)
> +- system ("touch conf.sdltest");
> +- */
> +- { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); }
> +-
> +- /* HP/UX 9 (%@#!) writes to sscanf strings */
> +- tmp_version = my_strdup("$min_sdl_version");
> +- if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
> +- printf("%s, bad version string\n", "$min_sdl_version");
> +- exit(1);
> +- }
> +-
> +- if (($sdl_major_version > major) ||
> +- (($sdl_major_version == major) && ($sdl_minor_version > minor)) ||
> +- (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro)))
> +- {
> +- return 0;
> +- }
> +- else
> +- {
> +- printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version);
> +- printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro);
> +- printf("*** best to upgrade to the required version.\n");
> +- printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n");
> +- printf("*** to point to the correct copy of sdl-config, and remove the file\n");
> +- printf("*** config.cache before re-running configure\n");
> +- return 1;
> +- }
> +-}
> +-
> +-],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
> +- CFLAGS="$ac_save_CFLAGS"
> +- CXXFLAGS="$ac_save_CXXFLAGS"
> +- LIBS="$ac_save_LIBS"
> +- fi
> +- fi
> +- if test "x$no_sdl" = x ; then
> +- AC_MSG_RESULT(yes)
> +- ifelse([$2], , :, [$2])
> +- else
> +- AC_MSG_RESULT(no)
> +- if test "$SDL_CONFIG" = "no" ; then
> +- echo "*** The sdl-config script installed by SDL could not be found"
> +- echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in"
> +- echo "*** your path, or set the SDL_CONFIG environment variable to the"
> +- echo "*** full path to sdl-config."
> +- else
> +- if test -f conf.sdltest ; then
> +- :
> +- else
> +- echo "*** Could not run SDL test program, checking why..."
> +- CFLAGS="$CFLAGS $SDL_CFLAGS"
> +- CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
> +- LIBS="$LIBS $SDL_LIBS"
> +- AC_TRY_LINK([
> +-#include <stdio.h>
> +-#include "SDL.h"
> +-
> +-int main(int argc, char *argv[])
> +-{ return 0; }
> +-#undef main
> +-#define main K_and_R_C_main
> +-], [ return 0; ],
> +- [ echo "*** The test program compiled, but did not run. This usually means"
> +- echo "*** that the run-time linker is not finding SDL or finding the wrong"
> +- echo "*** version of SDL. If it is not finding SDL, 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 SDL was incorrectly installed"
> +- echo "*** or that you have moved SDL since it was installed. In the latter case, you"
> +- echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ])
> +- CFLAGS="$ac_save_CFLAGS"
> +- CXXFLAGS="$ac_save_CXXFLAGS"
> +- LIBS="$ac_save_LIBS"
> +- fi
> +- fi
> +- SDL_CFLAGS=""
> +- SDL_LIBS=""
> +- ifelse([$3], , :, [$3])
> +- fi
> ++ PKG_CHECK_MODULES([SDL], [sdl >= $min_sdl_version])
> + AC_SUBST(SDL_CFLAGS)
> + AC_SUBST(SDL_LIBS)
> +- rm -f conf.sdltest
> + ])
> diff --git a/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb b/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb
> index f81d862..e544b60 100644
> --- a/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb
> +++ b/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb
> @@ -23,6 +23,7 @@ PR = "r3"
> SRC_URI = "http://www.libsdl.org/release/SDL-${PV}.tar.gz \
> file://configure_tweak.patch \
> file://libsdl-1.2.15-xdata32.patch \
> + file://pkgconfig.patch \
> "
>
> S = "${WORKDIR}/SDL-${PV}"
>
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]
prev parent reply other threads:[~2014-06-25 9:16 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-24 22:53 [PATCH] libsdl: Convert to use pkg-config in internal m4 macros Richard Purdie
2014-06-25 9:16 ` Martin Jansa [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140625091626.GR2437@jama \
--to=martin.jansa@gmail.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=richard.purdie@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox