package/qemu: fix specifying custom target sub-set
authorYann E. MORIN <yann.morin.1998@free.fr>
Sat, 8 Nov 2014 13:13:29 +0000 (14:13 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Sat, 8 Nov 2014 16:32:27 +0000 (17:32 +0100)
The logic was wrong.

Even though it was working for previous versions of QEMU, it changed in
later versions, and thus now breaks on the version we currently package.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/qemu/qemu.mk

index 818269775d510a499702637dafcd0fb7e221b21a..fe65a876e6a65da45517cbc8a3e16fd1db2d3819 100644 (file)
@@ -99,6 +99,18 @@ QEMU_VARS = \
        PYTHON=$(HOST_DIR)/usr/bin/python2 \
        PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
 
+# If we want to specify only a subset of targets, we must still enable all
+# of them, so that QEMU properly builds its list of default targets, from
+# which it then checks if the specified sub-set is valid. That's what we
+# do in the first part of the if-clause.
+# Otherwise, if we do not want to pass a sub-set of targets, we then need
+# to either enable or disable -user and/or -system emulation appropriately.
+# That's what we do in the else-clause.
+ifneq ($(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS)),)
+QEMU_OPTS += --enable-system --enable-linux-user
+QEMU_OPTS += --target-list="$(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS))"
+else
+
 ifeq ($(BR2_PACKAGE_QEMU_SYSTEM),y)
 QEMU_OPTS += --enable-system
 else
@@ -111,8 +123,6 @@ else
 QEMU_OPTS += --disable-linux-user
 endif
 
-ifneq ($(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS)),)
-QEMU_OPTS += --target-list="$(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS))"
 endif
 
 ifeq ($(BR2_PACKAGE_QEMU_SDL),y)