* [PATCH] libsdl: Convert to use pkg-config in internal m4 macros
@ 2014-06-24 22:53 Richard Purdie
2014-06-25 9:16 ` Martin Jansa
0 siblings, 1 reply; 2+ messages in thread
From: Richard Purdie @ 2014-06-24 22:53 UTC (permalink / raw)
To: openembedded-core
Rather than code which doesn't even work properly when cross compiling,
lets just use pkg-config instead. Its a little simpler.
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}"
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH] libsdl: Convert to use pkg-config in internal m4 macros
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
0 siblings, 0 replies; 2+ messages in thread
From: Martin Jansa @ 2014-06-25 9:16 UTC (permalink / raw)
To: Richard Purdie; +Cc: openembedded-core
[-- 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 --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-06-25 9:16 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox