Patchwork [v2] qemu: Enabled SDL when compiling for target architecture

login
register
mail settings
Submitter Mihai Prica
Date Feb. 13, 2013, 1:28 p.m.
Message ID <1360762085-328-1-git-send-email-mihai.prica@intel.com>
Download mbox | patch
Permalink /patch/44589/
State New
Headers show

Comments

Mihai Prica - Feb. 13, 2013, 1:28 p.m.
- enables qemu to run images with video output without the need for vncviewer.
- SDLPACKAGECONFIG is used because there is no need for the native-libsdl
package when building the qemu-native package.

Signed-off-by: Mihai Prica <mihai.prica@intel.com>
---
 meta/recipes-devtools/qemu/qemu.inc |   19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)
Saul Wold - Feb. 13, 2013, 10:31 p.m.
On 02/13/2013 05:28 AM, Mihai Prica wrote:
> - enables qemu to run images with video output without the need for vncviewer.
> - SDLPACKAGECONFIG is used because there is no need for the native-libsdl
> package when building the qemu-native package.
>
> Signed-off-by: Mihai Prica <mihai.prica@intel.com>
> ---
>   meta/recipes-devtools/qemu/qemu.inc |   19 +++++++++++--------
>   1 file changed, 11 insertions(+), 8 deletions(-)
>
> diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
> index 6c44b31..68114c5 100644
> --- a/meta/recipes-devtools/qemu/qemu.inc
> +++ b/meta/recipes-devtools/qemu/qemu.inc
> @@ -3,8 +3,7 @@ HOMEPAGE = "http://qemu.org"
>   LICENSE = "GPLv2 & LGPLv2.1"
>   DEPENDS = "glib-2.0 zlib alsa-lib virtual/libx11 pixman"
>   DEPENDS_class-native = "zlib-native alsa-lib-native glib-2.0-native pixman-native"
> -DEPENDS_class-nativesdk = "nativesdk-zlib nativesdk-libsdl nativesdk-glib-2.0 nativesdk-pixman"
> -RDEPENDS_${PN}_class-nativesdk = "nativesdk-libsdl"
> +DEPENDS_class-nativesdk = "nativesdk-zlib nativesdk-glib-2.0 nativesdk-pixman"
>
>   require qemu-targets.inc
>   inherit autotools
> @@ -13,10 +12,6 @@ BBCLASSEXTEND = "native nativesdk"
>   # QEMU_TARGETS is overridable variable
>   QEMU_TARGETS ?= "arm i386 mips mipsel mips64 mips64el ppc sh4 x86_64"
>
> -SDL ?= "--disable-sdl"
> -SDL_class-native ?= ""
> -SDL_class-nativesdk ?= ""
> -
>   SRC_URI = "\
>       file://powerpc_rom.bin \
>       file://no-strip.patch \
> @@ -32,7 +27,7 @@ SRC_URI_append_class-nativesdk = "\
>       file://relocatable_sdk.patch \
>       "
>
> -EXTRA_OECONF += "--target-list=${@get_qemu_target_list(d)} --disable-werror --disable-vnc-tls --audio-drv-list=oss,alsa --audio-card-list=ac97,es1370 ${SDL} --disable-curl --disable-vnc-jpeg --disable-bluez --with-system-pixman --disable-smartcard"
> +EXTRA_OECONF += "--target-list=${@get_qemu_target_list(d)} --disable-werror --disable-vnc-tls --audio-drv-list=oss,alsa --audio-card-list=ac97,es1370 --disable-curl --disable-vnc-jpeg --disable-bluez --with-system-pixman --disable-smartcard"
>
>   EXTRA_OECONF_class-nativesdk = "--target-list=${@get_qemu_target_list(d)} --disable-werror --disable-vnc-tls \
>   				--disable-curl \
> @@ -83,7 +78,15 @@ do_install_append() {
>   }
>   # END of qemu-mips workaround
>
> -PACKAGECONFIG ??= ""
> +PACKAGECONFIG ??= "sdl"
> +PACKAGECONFIG_class-native ??= "sdl"
> +PACKAGECONFIG_class-nativesdk ??= "sdl"
> +
> +SDLPACKAGECONFIG = "libsdl"
> +SDLPACKAGECONFIG_class-native = ""
> +SDLPACKAGECONFIG_class-nativesdk = "nativesdk-libsdl"
> +
> +PACKAGECONFIG[sdl] = ",--disable-sdl,${SDLPACKAGECONFIG},${SDLPACKAGECONFIG}"

Mihai,

I think I understand what you are trying to do with the above, you want 
the configure process to auto-detect when libsdl exists on the host and 
have RDEPENDS on the target and nativesdk so that it will auto-detect 
and enable SDL for target and nativesdk.  This could still cause 
problems if the build order is wrong (ie target libsdl does not get 
built until after target qemu, then target qemu will have SDL disabled). 
This can cause inconsistencies and non-reproducible builds.

This is a case where it might be simpler to have the ${SDL} above but 
fix it to be enabled for the target and nativesdk, but leave it 
auto-detect the host libsdl.

Sau!

>
>   # Qemu target will not build in world build for ARM or Mips
>   BROKEN_qemuarm = "1"
>

Patch

diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index 6c44b31..68114c5 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -3,8 +3,7 @@  HOMEPAGE = "http://qemu.org"
 LICENSE = "GPLv2 & LGPLv2.1"
 DEPENDS = "glib-2.0 zlib alsa-lib virtual/libx11 pixman"
 DEPENDS_class-native = "zlib-native alsa-lib-native glib-2.0-native pixman-native"
-DEPENDS_class-nativesdk = "nativesdk-zlib nativesdk-libsdl nativesdk-glib-2.0 nativesdk-pixman"
-RDEPENDS_${PN}_class-nativesdk = "nativesdk-libsdl"
+DEPENDS_class-nativesdk = "nativesdk-zlib nativesdk-glib-2.0 nativesdk-pixman"
 
 require qemu-targets.inc
 inherit autotools
@@ -13,10 +12,6 @@  BBCLASSEXTEND = "native nativesdk"
 # QEMU_TARGETS is overridable variable
 QEMU_TARGETS ?= "arm i386 mips mipsel mips64 mips64el ppc sh4 x86_64"
 
-SDL ?= "--disable-sdl"
-SDL_class-native ?= ""
-SDL_class-nativesdk ?= ""
-
 SRC_URI = "\
     file://powerpc_rom.bin \
     file://no-strip.patch \
@@ -32,7 +27,7 @@  SRC_URI_append_class-nativesdk = "\
     file://relocatable_sdk.patch \
     "
 
-EXTRA_OECONF += "--target-list=${@get_qemu_target_list(d)} --disable-werror --disable-vnc-tls --audio-drv-list=oss,alsa --audio-card-list=ac97,es1370 ${SDL} --disable-curl --disable-vnc-jpeg --disable-bluez --with-system-pixman --disable-smartcard"
+EXTRA_OECONF += "--target-list=${@get_qemu_target_list(d)} --disable-werror --disable-vnc-tls --audio-drv-list=oss,alsa --audio-card-list=ac97,es1370 --disable-curl --disable-vnc-jpeg --disable-bluez --with-system-pixman --disable-smartcard"
 
 EXTRA_OECONF_class-nativesdk = "--target-list=${@get_qemu_target_list(d)} --disable-werror --disable-vnc-tls \
 				--disable-curl \
@@ -83,7 +78,15 @@  do_install_append() {
 }
 # END of qemu-mips workaround
 
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "sdl"
+PACKAGECONFIG_class-native ??= "sdl"
+PACKAGECONFIG_class-nativesdk ??= "sdl"
+
+SDLPACKAGECONFIG = "libsdl"
+SDLPACKAGECONFIG_class-native = ""
+SDLPACKAGECONFIG_class-nativesdk = "nativesdk-libsdl"
+
+PACKAGECONFIG[sdl] = ",--disable-sdl,${SDLPACKAGECONFIG},${SDLPACKAGECONFIG}"
 
 # Qemu target will not build in world build for ARM or Mips
 BROKEN_qemuarm = "1"