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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.