* [Qemu-devel] [PATCH 0/3] avoid CONFIG_NO_* using rules.mak logical functions
@ 2013-09-13 14:19 Peter Maydell
2013-09-13 14:19 ` [Qemu-devel] [PATCH 1/3] rules.mak: New logical functions for handling y/n values Peter Maydell
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Peter Maydell @ 2013-09-13 14:19 UTC (permalink / raw)
To: qemu-devel; +Cc: Paolo Bonzini, Ákos Kovács, Anthony Liguori, patches
This is based on a set of patches by Ákos Kovács which were
lurking at the beginning of his KConfig patchset but which
I think make a nice standalone cleanup. Since I basically
rewrote all of patch 1 in review comments I figured it was
easier to just write it as a new patch. Patch 2 and 3
are Ákos', though I fixed a few missed conversions in patch 2.
Peter Maydell (1):
rules.mak: New logical functions for handling y/n values
Ákos Kovács (2):
Makefile.target: CONFIG_NO_* variables removed
default-configs/: CONFIG_GDBSTUB_XML removed
Makefile.target | 10 +++-------
default-configs/arm-linux-user.mak | 2 --
default-configs/arm-softmmu.mak | 1 -
default-configs/armeb-linux-user.mak | 2 --
default-configs/m68k-linux-user.mak | 2 --
default-configs/m68k-softmmu.mak | 1 -
default-configs/ppc-linux-user.mak | 2 --
default-configs/ppc-softmmu.mak | 1 -
default-configs/ppc64-linux-user.mak | 2 --
default-configs/ppc64-softmmu.mak | 1 -
default-configs/ppc64abi32-linux-user.mak | 2 --
default-configs/ppcemb-softmmu.mak | 1 -
hw/pci/Makefile.objs | 2 +-
rules.mak | 18 ++++++++++++++++++
target-arm/Makefile.objs | 2 +-
target-i386/Makefile.objs | 2 +-
target-ppc/Makefile.objs | 2 +-
17 files changed, 25 insertions(+), 28 deletions(-)
--
1.7.9.5
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH 1/3] rules.mak: New logical functions for handling y/n values
2013-09-13 14:19 [Qemu-devel] [PATCH 0/3] avoid CONFIG_NO_* using rules.mak logical functions Peter Maydell
@ 2013-09-13 14:19 ` Peter Maydell
2013-09-13 14:19 ` [Qemu-devel] [PATCH 2/3] Makefile.target: CONFIG_NO_* variables removed Peter Maydell
2013-09-13 14:19 ` [Qemu-devel] [PATCH 3/3] default-configs/: CONFIG_GDBSTUB_XML removed Peter Maydell
2 siblings, 0 replies; 4+ messages in thread
From: Peter Maydell @ 2013-09-13 14:19 UTC (permalink / raw)
To: qemu-devel; +Cc: Paolo Bonzini, Ákos Kovács, Anthony Liguori, patches
Add new logical functions for handling y/n values like those we
use in CONFIG_FOO variables:
lnot : logical NOT
land : logical AND
lor : logical OR
eq : equality
ne : non-equality
lif : like Make's $(if) but with an eq-like test
and a couple of utility functions:
isempty : true if argument is empty
notempty : true if argument is not empty
Based on an idea by Ákos Kovács <akoskovacs@gmx.com>.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
rules.mak | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/rules.mak b/rules.mak
index abc2e84..ccbf0e3 100644
--- a/rules.mak
+++ b/rules.mak
@@ -89,6 +89,24 @@ find-in-path = $(if $(find-string /, $1), \
$(wildcard $1), \
$(wildcard $(patsubst %, %/$1, $(subst :, ,$(PATH)))))
+# Logical functions (for operating on y/n values like CONFIG_FOO vars)
+# Inputs to these must be either "y" (true) or "n" or "" (both false)
+# Output is always either "y" or "n".
+# Usage: $(call land,$(CONFIG_FOO),$(CONFIG_BAR))
+# Logical NOT
+lnot = $(if $(subst n,,$1),n,y)
+# Logical AND
+land = $(if $(findstring yy,$1$2),y,n)
+# Logical OR
+lor = $(if $(findstring y,$1$2),y,n)
+# Comparison: note that "n" is eq to "".
+eq = $(if $(filter $(call lnot,$1),$(call lnot,$2)),y,n)
+ne = $(if $(filter $(call lnot,$1),$(call lnot,$2)),n,y)
+
+# Returns "y" or "n" depending on whether input argument is the empty string
+isempty = $(if $1,n,y)
+notempty = $(if $1,y,n)
+
# Generate files with tracetool
TRACETOOL=$(PYTHON) $(SRC_PATH)/scripts/tracetool.py
--
1.7.9.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH 2/3] Makefile.target: CONFIG_NO_* variables removed
2013-09-13 14:19 [Qemu-devel] [PATCH 0/3] avoid CONFIG_NO_* using rules.mak logical functions Peter Maydell
2013-09-13 14:19 ` [Qemu-devel] [PATCH 1/3] rules.mak: New logical functions for handling y/n values Peter Maydell
@ 2013-09-13 14:19 ` Peter Maydell
2013-09-13 14:19 ` [Qemu-devel] [PATCH 3/3] default-configs/: CONFIG_GDBSTUB_XML removed Peter Maydell
2 siblings, 0 replies; 4+ messages in thread
From: Peter Maydell @ 2013-09-13 14:19 UTC (permalink / raw)
To: qemu-devel; +Cc: Paolo Bonzini, Ákos Kovács, Anthony Liguori, patches
From: Ákos Kovács <akoskovacs@gmx.com>
CONFIG_NO_* variables replaced with the lnot logical function
Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
[PMM: fixed a few CONFIG_NO_* uses that were missed]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
Makefile.target | 8 ++------
hw/pci/Makefile.objs | 2 +-
target-arm/Makefile.objs | 2 +-
target-i386/Makefile.objs | 2 +-
target-ppc/Makefile.objs | 2 +-
5 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/Makefile.target b/Makefile.target
index 9a49852..bbc668b 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -70,10 +70,6 @@ all: $(PROGS) stap
# Dummy command so that make thinks it has done something
@true
-CONFIG_NO_PCI = $(if $(subst n,,$(CONFIG_PCI)),n,y)
-CONFIG_NO_KVM = $(if $(subst n,,$(CONFIG_KVM)),n,y)
-CONFIG_NO_XEN = $(if $(subst n,,$(CONFIG_XEN)),n,y)
-
#########################################################
# cpu emulator library
obj-y = exec.o translate-all.o cpu-exec.o
@@ -84,7 +80,7 @@ obj-y += fpu/softfloat.o
obj-y += target-$(TARGET_BASE_ARCH)/
obj-y += disas.o
obj-$(CONFIG_GDBSTUB_XML) += gdbstub-xml.o
-obj-$(CONFIG_NO_KVM) += kvm-stub.o
+obj-$(call lnot,$(CONFIG_KVM)) += kvm-stub.o
#########################################################
# Linux user emulator target
@@ -125,7 +121,7 @@ LIBS+=$(libs_softmmu)
# xen support
obj-$(CONFIG_XEN) += xen-all.o xen-mapcache.o
-obj-$(CONFIG_NO_XEN) += xen-stub.o
+obj-$(call lnot,$(CONFIG_XEN)) += xen-stub.o
# Hardware support
ifeq ($(TARGET_NAME), sparc64)
diff --git a/hw/pci/Makefile.objs b/hw/pci/Makefile.objs
index 720f438..80f8aa6 100644
--- a/hw/pci/Makefile.objs
+++ b/hw/pci/Makefile.objs
@@ -5,7 +5,7 @@ common-obj-$(CONFIG_PCI) += slotid_cap.o
common-obj-$(CONFIG_PCI) += pci_host.o pcie_host.o
common-obj-$(CONFIG_PCI) += pcie.o pcie_aer.o pcie_port.o
-common-obj-$(CONFIG_NO_PCI) += pci-stub.o
+common-obj-$(call lnot,$(CONFIG_PCI)) += pci-stub.o
common-obj-$(CONFIG_ALL) += pci-stub.o
common-obj-$(CONFIG_PCI_HOTPLUG_OLD) += pci-hotplug-old.o
diff --git a/target-arm/Makefile.objs b/target-arm/Makefile.objs
index 6453f5c..356fbfc 100644
--- a/target-arm/Makefile.objs
+++ b/target-arm/Makefile.objs
@@ -1,7 +1,7 @@
obj-y += arm-semi.o
obj-$(CONFIG_SOFTMMU) += machine.o
obj-$(CONFIG_KVM) += kvm.o
-obj-$(CONFIG_NO_KVM) += kvm-stub.o
+obj-$(call lnot,$(CONFIG_KVM)) += kvm-stub.o
obj-y += translate.o op_helper.o helper.o cpu.o
obj-y += neon_helper.o iwmmxt_helper.o
obj-y += gdbstub.o
diff --git a/target-i386/Makefile.objs b/target-i386/Makefile.objs
index da1fc40..027b94e 100644
--- a/target-i386/Makefile.objs
+++ b/target-i386/Makefile.objs
@@ -4,6 +4,6 @@ obj-y += smm_helper.o misc_helper.o mem_helper.o seg_helper.o
obj-y += gdbstub.o
obj-$(CONFIG_SOFTMMU) += machine.o arch_memory_mapping.o arch_dump.o
obj-$(CONFIG_KVM) += kvm.o
-obj-$(CONFIG_NO_KVM) += kvm-stub.o
+obj-$(call lnot,$(CONFIG_KVM)) += kvm-stub.o
obj-$(CONFIG_LINUX_USER) += ioport-user.o
obj-$(CONFIG_BSD_USER) += ioport-user.o
diff --git a/target-ppc/Makefile.objs b/target-ppc/Makefile.objs
index f72e399..94d6d0c 100644
--- a/target-ppc/Makefile.objs
+++ b/target-ppc/Makefile.objs
@@ -5,7 +5,7 @@ obj-y += machine.o mmu_helper.o mmu-hash32.o
obj-$(TARGET_PPC64) += mmu-hash64.o
endif
obj-$(CONFIG_KVM) += kvm.o kvm_ppc.o
-obj-$(CONFIG_NO_KVM) += kvm-stub.o
+obj-$(call lnot,$(CONFIG_KVM)) += kvm-stub.o
obj-y += excp_helper.o
obj-y += fpu_helper.o
obj-y += int_helper.o
--
1.7.9.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH 3/3] default-configs/: CONFIG_GDBSTUB_XML removed
2013-09-13 14:19 [Qemu-devel] [PATCH 0/3] avoid CONFIG_NO_* using rules.mak logical functions Peter Maydell
2013-09-13 14:19 ` [Qemu-devel] [PATCH 1/3] rules.mak: New logical functions for handling y/n values Peter Maydell
2013-09-13 14:19 ` [Qemu-devel] [PATCH 2/3] Makefile.target: CONFIG_NO_* variables removed Peter Maydell
@ 2013-09-13 14:19 ` Peter Maydell
2 siblings, 0 replies; 4+ messages in thread
From: Peter Maydell @ 2013-09-13 14:19 UTC (permalink / raw)
To: qemu-devel; +Cc: Paolo Bonzini, Ákos Kovács, Anthony Liguori, patches
From: Ákos Kovács <akoskovacs@gmx.com>
Makefile.target: Build gdbstub-xml.o only when
TARGET_XML_FILES is not empty.
Signed-off-by: Ákos Kovács <akoskovacs@gmx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
Makefile.target | 2 +-
default-configs/arm-linux-user.mak | 2 --
default-configs/arm-softmmu.mak | 1 -
default-configs/armeb-linux-user.mak | 2 --
default-configs/m68k-linux-user.mak | 2 --
default-configs/m68k-softmmu.mak | 1 -
default-configs/ppc-linux-user.mak | 2 --
default-configs/ppc-softmmu.mak | 1 -
default-configs/ppc64-linux-user.mak | 2 --
default-configs/ppc64-softmmu.mak | 1 -
default-configs/ppc64abi32-linux-user.mak | 2 --
default-configs/ppcemb-softmmu.mak | 1 -
12 files changed, 1 insertion(+), 18 deletions(-)
diff --git a/Makefile.target b/Makefile.target
index bbc668b..af6ac7e 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -79,7 +79,7 @@ obj-$(CONFIG_TCG_INTERPRETER) += disas/tci.o
obj-y += fpu/softfloat.o
obj-y += target-$(TARGET_BASE_ARCH)/
obj-y += disas.o
-obj-$(CONFIG_GDBSTUB_XML) += gdbstub-xml.o
+obj-$(call notempty,$(TARGET_XML_FILES)) += gdbstub-xml.o
obj-$(call lnot,$(CONFIG_KVM)) += kvm-stub.o
#########################################################
diff --git a/default-configs/arm-linux-user.mak b/default-configs/arm-linux-user.mak
index 46d4aa2..413361a 100644
--- a/default-configs/arm-linux-user.mak
+++ b/default-configs/arm-linux-user.mak
@@ -1,3 +1 @@
# Default configuration for arm-linux-user
-
-CONFIG_GDBSTUB_XML=y
diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index ac0815d..d13bc2b 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -2,7 +2,6 @@
include pci.mak
include usb.mak
-CONFIG_GDBSTUB_XML=y
CONFIG_VGA=y
CONFIG_ISA_MMIO=y
CONFIG_NAND=y
diff --git a/default-configs/armeb-linux-user.mak b/default-configs/armeb-linux-user.mak
index 41d0cc4..bf2ffe7 100644
--- a/default-configs/armeb-linux-user.mak
+++ b/default-configs/armeb-linux-user.mak
@@ -1,3 +1 @@
# Default configuration for armeb-linux-user
-
-CONFIG_GDBSTUB_XML=y
diff --git a/default-configs/m68k-linux-user.mak b/default-configs/m68k-linux-user.mak
index f3487aa..06cd5ed 100644
--- a/default-configs/m68k-linux-user.mak
+++ b/default-configs/m68k-linux-user.mak
@@ -1,3 +1 @@
# Default configuration for m68k-linux-user
-
-CONFIG_GDBSTUB_XML=y
diff --git a/default-configs/m68k-softmmu.mak b/default-configs/m68k-softmmu.mak
index 51fe5bb..d9552df 100644
--- a/default-configs/m68k-softmmu.mak
+++ b/default-configs/m68k-softmmu.mak
@@ -3,5 +3,4 @@
include pci.mak
include usb.mak
CONFIG_COLDFIRE=y
-CONFIG_GDBSTUB_XML=y
CONFIG_PTIMER=y
diff --git a/default-configs/ppc-linux-user.mak b/default-configs/ppc-linux-user.mak
index 681a945..6273df2 100644
--- a/default-configs/ppc-linux-user.mak
+++ b/default-configs/ppc-linux-user.mak
@@ -1,3 +1 @@
# Default configuration for ppc-linux-user
-
-CONFIG_GDBSTUB_XML=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index eac0b28..f5cd0bd 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -3,7 +3,6 @@
include pci.mak
include sound.mak
include usb.mak
-CONFIG_GDBSTUB_XML=y
CONFIG_ISA_MMIO=y
CONFIG_ESCC=y
CONFIG_M48T59=y
diff --git a/default-configs/ppc64-linux-user.mak b/default-configs/ppc64-linux-user.mak
index 089c08f..422d3fb 100644
--- a/default-configs/ppc64-linux-user.mak
+++ b/default-configs/ppc64-linux-user.mak
@@ -1,3 +1 @@
# Default configuration for ppc64-linux-user
-
-CONFIG_GDBSTUB_XML=y
diff --git a/default-configs/ppc64-softmmu.mak b/default-configs/ppc64-softmmu.mak
index 7831c2b..975112a 100644
--- a/default-configs/ppc64-softmmu.mak
+++ b/default-configs/ppc64-softmmu.mak
@@ -3,7 +3,6 @@
include pci.mak
include sound.mak
include usb.mak
-CONFIG_GDBSTUB_XML=y
CONFIG_ISA_MMIO=y
CONFIG_ESCC=y
CONFIG_M48T59=y
diff --git a/default-configs/ppc64abi32-linux-user.mak b/default-configs/ppc64abi32-linux-user.mak
index f038ffd..1c657ec 100644
--- a/default-configs/ppc64abi32-linux-user.mak
+++ b/default-configs/ppc64abi32-linux-user.mak
@@ -1,3 +1 @@
# Default configuration for ppc64abi32-linux-user
-
-CONFIG_GDBSTUB_XML=y
diff --git a/default-configs/ppcemb-softmmu.mak b/default-configs/ppcemb-softmmu.mak
index 86080a7..4411203 100644
--- a/default-configs/ppcemb-softmmu.mak
+++ b/default-configs/ppcemb-softmmu.mak
@@ -3,7 +3,6 @@
include pci.mak
include sound.mak
include usb.mak
-CONFIG_GDBSTUB_XML=y
CONFIG_ISA_MMIO=y
CONFIG_ESCC=y
CONFIG_M48T59=y
--
1.7.9.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-09-13 14:19 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-13 14:19 [Qemu-devel] [PATCH 0/3] avoid CONFIG_NO_* using rules.mak logical functions Peter Maydell
2013-09-13 14:19 ` [Qemu-devel] [PATCH 1/3] rules.mak: New logical functions for handling y/n values Peter Maydell
2013-09-13 14:19 ` [Qemu-devel] [PATCH 2/3] Makefile.target: CONFIG_NO_* variables removed Peter Maydell
2013-09-13 14:19 ` [Qemu-devel] [PATCH 3/3] default-configs/: CONFIG_GDBSTUB_XML removed Peter Maydell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).