aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2013-03-01 13:59:19 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2013-04-08 18:13:12 +0200
commit49ab747f668f421138d5b40d83fa279c4c5e278d (patch)
tree943225a04eac885aed038731adf058f2250a2f40 /hw
parentce3b494cb504f96992f2d37ebc8f56deed202b06 (diff)
hw: move target-independent files to subdirectories
This patch tackles all files that are compiled once, moving them to subdirectories of hw/. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/Makefile.objs197
-rw-r--r--hw/acpi/Makefile.objs2
-rw-r--r--hw/acpi/core.c (renamed from hw/acpi.c)0
-rw-r--r--hw/acpi/ich9.c (renamed from hw/acpi_ich9.c)0
-rw-r--r--hw/acpi/piix4.c (renamed from hw/acpi_piix4.c)0
-rw-r--r--hw/audio/Makefile.objs16
-rw-r--r--hw/audio/ac97.c (renamed from hw/ac97.c)0
-rw-r--r--hw/audio/adlib.c (renamed from hw/adlib.c)0
-rw-r--r--hw/audio/cs4231a.c (renamed from hw/cs4231a.c)0
-rw-r--r--hw/audio/es1370.c (renamed from hw/es1370.c)0
-rw-r--r--hw/audio/fmopl.c (renamed from hw/fmopl.c)0
-rw-r--r--hw/audio/gus.c (renamed from hw/gus.c)0
-rw-r--r--hw/audio/gusemu_hal.c (renamed from hw/gusemu_hal.c)0
-rw-r--r--hw/audio/gusemu_mixer.c (renamed from hw/gusemu_mixer.c)0
-rw-r--r--hw/audio/hda-codec.c (renamed from hw/hda-audio.c)0
-rw-r--r--hw/audio/intel-hda.c (renamed from hw/intel-hda.c)0
-rw-r--r--hw/audio/lm4549.c (renamed from hw/lm4549.c)0
-rw-r--r--hw/audio/pcspk.c (renamed from hw/pcspk.c)0
-rw-r--r--hw/audio/pl041.c (renamed from hw/pl041.c)0
-rw-r--r--hw/audio/pl041.hx (renamed from hw/pl041.hx)0
-rw-r--r--hw/audio/sb16.c (renamed from hw/sb16.c)0
-rw-r--r--hw/audio/wm8750.c (renamed from hw/wm8750.c)0
-rw-r--r--hw/block/Makefile.objs8
-rw-r--r--hw/block/block.c (renamed from hw/block-common.c)0
-rw-r--r--hw/block/cdrom.c (renamed from hw/cdrom.c)0
-rw-r--r--hw/block/ecc.c (renamed from hw/ecc.c)0
-rw-r--r--hw/block/fdc.c (renamed from hw/fdc.c)0
-rw-r--r--hw/block/hd-geometry.c (renamed from hw/hd-geometry.c)0
-rw-r--r--hw/block/m25p80.c (renamed from hw/m25p80.c)0
-rw-r--r--hw/block/nand.c (renamed from hw/nand.c)0
-rw-r--r--hw/block/pflash_cfi01.c (renamed from hw/pflash_cfi01.c)0
-rw-r--r--hw/block/pflash_cfi02.c (renamed from hw/pflash_cfi02.c)0
-rw-r--r--hw/block/xen_disk.c (renamed from hw/xen_disk.c)0
-rw-r--r--hw/bt/Makefile.objs3
-rw-r--r--hw/bt/core.c (renamed from hw/bt.c)0
-rw-r--r--hw/bt/hci-csr.c (renamed from hw/bt-hci-csr.c)0
-rw-r--r--hw/bt/hci.c (renamed from hw/bt-hci.c)0
-rw-r--r--hw/bt/hid.c (renamed from hw/bt-hid.c)0
-rw-r--r--hw/bt/l2cap.c (renamed from hw/bt-l2cap.c)0
-rw-r--r--hw/bt/sdp.c (renamed from hw/bt-sdp.c)0
-rw-r--r--hw/char/Makefile.objs10
-rw-r--r--hw/char/cadence_uart.c (renamed from hw/cadence_uart.c)0
-rw-r--r--hw/char/escc.c (renamed from hw/escc.c)0
-rw-r--r--hw/char/ipack.c (renamed from hw/ipack.c)0
-rw-r--r--hw/char/ipoctal232.c (renamed from hw/ipoctal232.c)0
-rw-r--r--hw/char/parallel.c (renamed from hw/parallel.c)0
-rw-r--r--hw/char/pl011.c (renamed from hw/pl011.c)0
-rw-r--r--hw/char/serial-isa.c (renamed from hw/serial-isa.c)0
-rw-r--r--hw/char/serial-pci.c (renamed from hw/serial-pci.c)0
-rw-r--r--hw/char/serial.c (renamed from hw/serial.c)0
-rw-r--r--hw/char/tpci200.c (renamed from hw/tpci200.c)0
-rw-r--r--hw/char/virtio-console.c (renamed from hw/virtio-console.c)0
-rw-r--r--hw/char/xen_console.c (renamed from hw/xen_console.c)0
-rw-r--r--hw/char/xilinx_uartlite.c (renamed from hw/xilinx_uartlite.c)0
-rw-r--r--hw/core/Makefile.objs14
-rw-r--r--hw/core/empty_slot.c (renamed from hw/empty_slot.c)0
-rw-r--r--hw/core/irq.c (renamed from hw/irq.c)0
-rw-r--r--hw/core/loader.c (renamed from hw/loader.c)0
-rw-r--r--hw/core/null-machine.c (renamed from hw/null-machine.c)0
-rw-r--r--hw/core/ptimer.c (renamed from hw/ptimer.c)0
-rw-r--r--hw/core/qdev-addr.c (renamed from hw/qdev-addr.c)0
-rw-r--r--hw/core/qdev-properties-system.c (renamed from hw/qdev-properties-system.c)0
-rw-r--r--hw/core/qdev-properties.c (renamed from hw/qdev-properties.c)0
-rw-r--r--hw/core/qdev.c (renamed from hw/qdev.c)0
-rw-r--r--hw/core/stream.c (renamed from hw/stream.c)0
-rw-r--r--hw/core/sysbus.c (renamed from hw/sysbus.c)0
-rw-r--r--hw/display/Makefile.objs13
-rw-r--r--hw/display/ads7846.c (renamed from hw/ads7846.c)0
-rw-r--r--hw/display/cirrus_vga.c (renamed from hw/cirrus_vga.c)0
-rw-r--r--hw/display/g364fb.c (renamed from hw/g364fb.c)0
-rw-r--r--hw/display/jazz_led.c (renamed from hw/jazz_led.c)0
-rw-r--r--hw/display/pl110.c (renamed from hw/pl110.c)0
-rw-r--r--hw/display/ssd0303.c (renamed from hw/ssd0303.c)0
-rw-r--r--hw/display/ssd0323.c (renamed from hw/ssd0323.c)0
-rw-r--r--hw/display/vga-isa-mm.c (renamed from hw/vga-isa-mm.c)0
-rw-r--r--hw/display/vga-isa.c (renamed from hw/vga-isa.c)0
-rw-r--r--hw/display/vga-pci.c (renamed from hw/vga-pci.c)0
-rw-r--r--hw/display/vmware_vga.c (renamed from hw/vmware_vga.c)0
-rw-r--r--hw/display/xenfb.c (renamed from hw/xenfb.c)0
-rw-r--r--hw/dma/Makefile.objs7
-rw-r--r--hw/dma/i82374.c (renamed from hw/i82374.c)0
-rw-r--r--hw/dma/i8257.c (renamed from hw/dma.c)0
-rw-r--r--hw/dma/pl080.c (renamed from hw/pl080.c)0
-rw-r--r--hw/dma/pl330.c (renamed from hw/pl330.c)0
-rw-r--r--hw/dma/puv3_dma.c (renamed from hw/puv3_dma.c)0
-rw-r--r--hw/dma/rc4030.c (renamed from hw/rc4030.c)0
-rw-r--r--hw/dma/xilinx_axidma.c (renamed from hw/xilinx_axidma.c)0
-rw-r--r--hw/gpio/Makefile.objs3
-rw-r--r--hw/gpio/max7310.c (renamed from hw/max7310.c)0
-rw-r--r--hw/gpio/pl061.c (renamed from hw/pl061.c)0
-rw-r--r--hw/gpio/puv3_gpio.c (renamed from hw/puv3_gpio.c)0
-rw-r--r--hw/i2c/Makefile.objs4
-rw-r--r--hw/i2c/core.c (renamed from hw/i2c.c)0
-rw-r--r--hw/i2c/pm_smbus.c (renamed from hw/pm_smbus.c)0
-rw-r--r--hw/i2c/smbus.c (renamed from hw/smbus.c)0
-rw-r--r--hw/i2c/smbus_eeprom.c (renamed from hw/smbus_eeprom.c)0
-rw-r--r--hw/i2c/smbus_ich9.c (renamed from hw/smbus_ich9.c)0
-rw-r--r--hw/i2c/versatile_i2c.c (renamed from hw/versatile_i2c.c)0
-rw-r--r--hw/input/Makefile.objs9
-rw-r--r--hw/input/adb.c (renamed from hw/adb.c)0
-rw-r--r--hw/input/hid.c (renamed from hw/hid.c)0
-rw-r--r--hw/input/lm832x.c (renamed from hw/lm832x.c)0
-rw-r--r--hw/input/pckbd.c (renamed from hw/pckbd.c)0
-rw-r--r--hw/input/pl050.c (renamed from hw/pl050.c)0
-rw-r--r--hw/input/ps2.c (renamed from hw/ps2.c)0
-rw-r--r--hw/input/stellaris_input.c (renamed from hw/stellaris_input.c)0
-rw-r--r--hw/input/tsc2005.c (renamed from hw/tsc2005.c)0
-rw-r--r--hw/input/vmmouse.c (renamed from hw/vmmouse.c)0
-rw-r--r--hw/intc/Makefile.objs5
-rw-r--r--hw/intc/heathrow_pic.c (renamed from hw/heathrow_pic.c)0
-rw-r--r--hw/intc/i8259.c (renamed from hw/i8259.c)0
-rw-r--r--hw/intc/i8259_common.c (renamed from hw/i8259_common.c)0
-rw-r--r--hw/intc/pl190.c (renamed from hw/pl190.c)0
-rw-r--r--hw/intc/puv3_intc.c (renamed from hw/puv3_intc.c)0
-rw-r--r--hw/intc/xilinx_intc.c (renamed from hw/xilinx_intc.c)0
-rw-r--r--hw/isa/Makefile.objs7
-rw-r--r--hw/isa/apm.c (renamed from hw/apm.c)0
-rw-r--r--hw/isa/i82378.c (renamed from hw/i82378.c)0
-rw-r--r--hw/isa/isa-bus.c (renamed from hw/isa-bus.c)0
-rw-r--r--hw/isa/isa_mmio.c (renamed from hw/isa_mmio.c)0
-rw-r--r--hw/isa/pc87312.c (renamed from hw/pc87312.c)0
-rw-r--r--hw/isa/piix4.c (renamed from hw/piix4.c)0
-rw-r--r--hw/misc/Makefile.objs11
-rw-r--r--hw/misc/applesmc.c (renamed from hw/applesmc.c)0
-rw-r--r--hw/misc/arm_l2x0.c (renamed from hw/arm_l2x0.c)0
-rw-r--r--hw/misc/macio/Makefile.objs3
-rw-r--r--hw/misc/macio/cuda.c (renamed from hw/cuda.c)0
-rw-r--r--hw/misc/macio/mac_dbdma.c (renamed from hw/mac_dbdma.c)0
-rw-r--r--hw/misc/macio/macio.c (renamed from hw/macio.c)0
-rw-r--r--hw/misc/max111x.c (renamed from hw/max111x.c)0
-rw-r--r--hw/misc/puv3_pm.c (renamed from hw/puv3_pm.c)0
-rw-r--r--hw/misc/tmp105.c (renamed from hw/tmp105.c)0
-rw-r--r--hw/net/Makefile.objs22
-rw-r--r--hw/net/cadence_gem.c (renamed from hw/cadence_gem.c)0
-rw-r--r--hw/net/dp8393x.c (renamed from hw/dp8393x.c)0
-rw-r--r--hw/net/e1000.c (renamed from hw/e1000.c)0
-rw-r--r--hw/net/eepro100.c (renamed from hw/eepro100.c)0
-rw-r--r--hw/net/lan9118.c (renamed from hw/lan9118.c)0
-rw-r--r--hw/net/mipsnet.c (renamed from hw/mipsnet.c)0
-rw-r--r--hw/net/ne2000-isa.c (renamed from hw/ne2000-isa.c)0
-rw-r--r--hw/net/ne2000.c (renamed from hw/ne2000.c)0
-rw-r--r--hw/net/opencores_eth.c (renamed from hw/opencores_eth.c)0
-rw-r--r--hw/net/pcnet-pci.c (renamed from hw/pcnet-pci.c)0
-rw-r--r--hw/net/pcnet.c (renamed from hw/pcnet.c)0
-rw-r--r--hw/net/rtl8139.c (renamed from hw/rtl8139.c)0
-rw-r--r--hw/net/smc91c111.c (renamed from hw/smc91c111.c)0
-rw-r--r--hw/net/vmware_utils.h (renamed from hw/vmware_utils.h)0
-rw-r--r--hw/net/vmxnet3.c (renamed from hw/vmxnet3.c)0
-rw-r--r--hw/net/vmxnet3.h (renamed from hw/vmxnet3.h)0
-rw-r--r--hw/net/vmxnet_debug.h (renamed from hw/vmxnet_debug.h)0
-rw-r--r--hw/net/vmxnet_rx_pkt.c (renamed from hw/vmxnet_rx_pkt.c)0
-rw-r--r--hw/net/vmxnet_rx_pkt.h (renamed from hw/vmxnet_rx_pkt.h)0
-rw-r--r--hw/net/vmxnet_tx_pkt.c (renamed from hw/vmxnet_tx_pkt.c)0
-rw-r--r--hw/net/vmxnet_tx_pkt.h (renamed from hw/vmxnet_tx_pkt.h)0
-rw-r--r--hw/net/xen_nic.c (renamed from hw/xen_nic.c)0
-rw-r--r--hw/net/xgmac.c (renamed from hw/xgmac.c)0
-rw-r--r--hw/net/xilinx_axienet.c (renamed from hw/xilinx_axienet.c)0
-rw-r--r--hw/nvram/Makefile.objs4
-rw-r--r--hw/nvram/ds1225y.c (renamed from hw/ds1225y.c)0
-rw-r--r--hw/nvram/eeprom93xx.c (renamed from hw/eeprom93xx.c)0
-rw-r--r--hw/nvram/fw_cfg.c (renamed from hw/fw_cfg.c)0
-rw-r--r--hw/nvram/mac_nvram.c (renamed from hw/mac_nvram.c)0
-rw-r--r--hw/pci/Makefile.objs4
-rw-r--r--hw/pci/bridge/Makefile.objs3
-rw-r--r--hw/pci/bridge/i82801b11.c (renamed from hw/i82801b11.c)0
-rw-r--r--hw/pci/bridge/ioh3420.c (renamed from hw/ioh3420.c)0
-rw-r--r--hw/pci/bridge/pci_bridge_dev.c (renamed from hw/pci_bridge_dev.c)0
-rw-r--r--hw/pci/bridge/xio3130_downstream.c (renamed from hw/xio3130_downstream.c)0
-rw-r--r--hw/pci/bridge/xio3130_upstream.c (renamed from hw/xio3130_upstream.c)0
-rw-r--r--hw/pci/host/Makefile.objs13
-rw-r--r--hw/pci/host/dec.c (renamed from hw/dec_pci.c)0
-rw-r--r--hw/pci/host/grackle.c (renamed from hw/grackle_pci.c)0
-rw-r--r--hw/pci/host/pam.c (renamed from hw/pam.c)0
-rw-r--r--hw/pci/host/ppce500.c (renamed from hw/ppce500_pci.c)0
-rw-r--r--hw/pci/host/prep.c (renamed from hw/prep_pci.c)0
-rw-r--r--hw/pci/host/uninorth.c (renamed from hw/unin_pci.c)0
-rw-r--r--hw/pci/host/versatile.c (renamed from hw/versatile_pci.c)0
-rw-r--r--hw/scsi/Makefile.objs6
-rw-r--r--hw/scsi/esp-pci.c (renamed from hw/esp-pci.c)0
-rw-r--r--hw/scsi/esp.c (renamed from hw/esp.c)0
-rw-r--r--hw/scsi/lsi53c895a.c (renamed from hw/lsi53c895a.c)0
-rw-r--r--hw/scsi/megasas.c (renamed from hw/megasas.c)0
-rw-r--r--hw/scsi/scsi-bus.c (renamed from hw/scsi-bus.c)0
-rw-r--r--hw/scsi/scsi-disk.c (renamed from hw/scsi-disk.c)0
-rw-r--r--hw/scsi/scsi-generic.c (renamed from hw/scsi-generic.c)0
-rw-r--r--hw/sd/Makefile.objs4
-rw-r--r--hw/sd/pl181.c (renamed from hw/pl181.c)0
-rw-r--r--hw/sd/sd.c (renamed from hw/sd.c)0
-rw-r--r--hw/sd/sdhci.c (renamed from hw/sdhci.c)0
-rw-r--r--hw/sd/ssi-sd.c (renamed from hw/ssi-sd.c)0
-rw-r--r--hw/ssi/Makefile.objs2
-rw-r--r--hw/ssi/pl022.c (renamed from hw/pl022.c)0
-rw-r--r--hw/ssi/ssi.c (renamed from hw/ssi.c)0
-rw-r--r--hw/timer/Makefile.objs10
-rw-r--r--hw/timer/arm_timer.c (renamed from hw/arm_timer.c)0
-rw-r--r--hw/timer/cadence_ttc.c (renamed from hw/cadence_ttc.c)0
-rw-r--r--hw/timer/ds1338.c (renamed from hw/ds1338.c)0
-rw-r--r--hw/timer/hpet.c (renamed from hw/hpet.c)0
-rw-r--r--hw/timer/i8254.c (renamed from hw/i8254.c)0
-rw-r--r--hw/timer/i8254_common.c (renamed from hw/i8254_common.c)0
-rw-r--r--hw/timer/m48t59.c (renamed from hw/m48t59.c)0
-rw-r--r--hw/timer/pl031.c (renamed from hw/pl031.c)0
-rw-r--r--hw/timer/puv3_ost.c (renamed from hw/puv3_ost.c)0
-rw-r--r--hw/timer/twl92230.c (renamed from hw/twl92230.c)0
-rw-r--r--hw/timer/xilinx_timer.c (renamed from hw/xilinx_timer.c)0
-rw-r--r--hw/usb/Makefile.objs7
-rw-r--r--hw/usb/ccid-card-emulated.c (renamed from hw/ccid-card-emulated.c)0
-rw-r--r--hw/usb/ccid-card-passthru.c (renamed from hw/ccid-card-passthru.c)0
-rw-r--r--hw/virtio/Makefile.objs4
-rw-r--r--hw/virtio/virtio-bus.c (renamed from hw/virtio-bus.c)0
-rw-r--r--hw/virtio/virtio-pci.c (renamed from hw/virtio-pci.c)0
-rw-r--r--hw/virtio/virtio-rng.c (renamed from hw/virtio-rng.c)0
-rw-r--r--hw/watchdog/Makefile.objs2
-rw-r--r--hw/watchdog/watchdog.c (renamed from hw/watchdog.c)0
-rw-r--r--hw/watchdog/wdt_i6300esb.c (renamed from hw/wdt_i6300esb.c)0
-rw-r--r--hw/xen/Makefile.objs2
-rw-r--r--hw/xen/xen_backend.c (renamed from hw/xen_backend.c)0
-rw-r--r--hw/xen/xen_devconfig.c (renamed from hw/xen_devconfig.c)0
218 files changed, 196 insertions, 199 deletions
diff --git a/hw/Makefile.objs b/hw/Makefile.objs
index 0a92ff9b96..1d28ce28d7 100644
--- a/hw/Makefile.objs
+++ b/hw/Makefile.objs
@@ -1,8 +1,3 @@
-# core qdev-related obj files, also used by *-user:
-common-obj-y += qdev.o qdev-properties.o
-# irq.o needed for qdev GPIO handling:
-common-obj-y += irq.o
-
devices-dirs-$(CONFIG_REALLY_VIRTFS) += 9pfs/
devices-dirs-$(CONFIG_ACPI) += acpi/
devices-dirs-$(CONFIG_SOFTMMU) += audio/
@@ -35,198 +30,6 @@ common-obj-y += $(devices-dirs-y)
obj-y += $(devices-dirs-y)
ifeq ($(CONFIG_SOFTMMU),y)
-common-obj-y += loader.o
-common-obj-$(CONFIG_VIRTIO) += virtio-console.o
-common-obj-$(CONFIG_VIRTIO) += virtio-rng.o
-common-obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o
-common-obj-$(CONFIG_VIRTIO) += virtio-bus.o
-common-obj-y += fw_cfg.o
-common-obj-$(CONFIG_PCI) += pci_bridge_dev.o
-common-obj-$(CONFIG_PCI) += ioh3420.o xio3130_upstream.o xio3130_downstream.o
-common-obj-$(CONFIG_PCI) += i82801b11.o
-common-obj-y += watchdog.o
-common-obj-$(CONFIG_ISA_MMIO) += isa_mmio.o
-common-obj-$(CONFIG_ECC) += ecc.o
-common-obj-$(CONFIG_NAND) += nand.o
-common-obj-$(CONFIG_PFLASH_CFI01) += pflash_cfi01.o
-common-obj-$(CONFIG_PFLASH_CFI02) += pflash_cfi02.o
-
-common-obj-$(CONFIG_M48T59) += m48t59.o
-common-obj-$(CONFIG_ESCC) += escc.o
-common-obj-$(CONFIG_EMPTY_SLOT) += empty_slot.o
-
-common-obj-$(CONFIG_SERIAL) += serial.o serial-isa.o
-common-obj-$(CONFIG_SERIAL_PCI) += serial-pci.o
-common-obj-$(CONFIG_PARALLEL) += parallel.o
-common-obj-$(CONFIG_I8254) += i8254_common.o i8254.o
-common-obj-$(CONFIG_PCSPK) += pcspk.o
-common-obj-$(CONFIG_PCKBD) += pckbd.o
-common-obj-$(CONFIG_FDC) += fdc.o
-common-obj-$(CONFIG_ACPI) += acpi.o acpi_piix4.o acpi_ich9.o smbus_ich9.o
-common-obj-$(CONFIG_APM) += pm_smbus.o apm.o
-common-obj-$(CONFIG_DMA) += dma.o
-common-obj-$(CONFIG_I82374) += i82374.o
-common-obj-$(CONFIG_HPET) += hpet.o
-common-obj-$(CONFIG_APPLESMC) += applesmc.o
-ifeq ($(CONFIG_USB_SMARTCARD),y)
-common-obj-y += ccid-card-passthru.o
-common-obj-$(CONFIG_SMARTCARD_NSS) += ccid-card-emulated.o
-endif
-common-obj-$(CONFIG_I8259) += i8259_common.o i8259.o
-common-obj-$(CONFIG_SDHCI) += sdhci.o
-common-obj-y += pam.o
-
-# PPC devices
-common-obj-$(CONFIG_PREP_PCI) += prep_pci.o
-common-obj-$(CONFIG_I82378) += i82378.o
-common-obj-$(CONFIG_PC87312) += pc87312.o
-# Mac shared devices
-common-obj-$(CONFIG_MACIO) += macio.o
-common-obj-$(CONFIG_CUDA) += cuda.o
-common-obj-$(CONFIG_ADB) += adb.o
-common-obj-$(CONFIG_MAC_NVRAM) += mac_nvram.o
-common-obj-$(CONFIG_MAC_DBDMA) += mac_dbdma.o
-# OldWorld PowerMac
-common-obj-$(CONFIG_HEATHROW_PIC) += heathrow_pic.o
-common-obj-$(CONFIG_GRACKLE_PCI) += grackle_pci.o
-# NewWorld PowerMac
-common-obj-$(CONFIG_UNIN_PCI) += unin_pci.o
-common-obj-$(CONFIG_DEC_PCI) += dec_pci.o
-# PowerPC E500 boards
-common-obj-$(CONFIG_PPCE500_PCI) += ppce500_pci.o
-
-# MIPS devices
-common-obj-$(CONFIG_PIIX4) += piix4.o
-common-obj-$(CONFIG_G364FB) += g364fb.o
-common-obj-$(CONFIG_JAZZ_LED) += jazz_led.o
-
-# Xilinx devices
-common-obj-$(CONFIG_XILINX) += xilinx_intc.o
-common-obj-$(CONFIG_XILINX) += xilinx_timer.o
-common-obj-$(CONFIG_XILINX) += xilinx_uartlite.o
-common-obj-$(CONFIG_XILINX_AXI) += xilinx_axidma.o
-common-obj-$(CONFIG_XILINX_AXI) += xilinx_axienet.o
-common-obj-$(CONFIG_XILINX_AXI) += stream.o
-
-# PKUnity SoC devices
-common-obj-$(CONFIG_PUV3) += puv3_intc.o
-common-obj-$(CONFIG_PUV3) += puv3_ost.o
-common-obj-$(CONFIG_PUV3) += puv3_gpio.o
-common-obj-$(CONFIG_PUV3) += puv3_pm.o
-common-obj-$(CONFIG_PUV3) += puv3_dma.o
-
-# ARM devices
-common-obj-$(CONFIG_ARM_TIMER) += arm_timer.o
-common-obj-$(CONFIG_PL011) += pl011.o
-common-obj-$(CONFIG_PL022) += pl022.o
-common-obj-$(CONFIG_PL031) += pl031.o
-common-obj-$(CONFIG_PL041) += pl041.o lm4549.o
-common-obj-$(CONFIG_PL050) += pl050.o
-common-obj-$(CONFIG_PL061) += pl061.o
-common-obj-$(CONFIG_PL080) += pl080.o
-common-obj-$(CONFIG_PL110) += pl110.o
-common-obj-$(CONFIG_PL181) += pl181.o
-common-obj-$(CONFIG_PL190) += pl190.o
-common-obj-$(CONFIG_PL310) += arm_l2x0.o
-common-obj-$(CONFIG_PL330) += pl330.o
-common-obj-$(CONFIG_VERSATILE_PCI) += versatile_pci.o
-common-obj-$(CONFIG_VERSATILE_I2C) += versatile_i2c.o
-common-obj-$(CONFIG_CADENCE) += cadence_uart.o
-common-obj-$(CONFIG_CADENCE) += cadence_ttc.o
-common-obj-$(CONFIG_CADENCE) += cadence_gem.o
-common-obj-$(CONFIG_XGMAC) += xgmac.o
-
-# PCI watchdog devices
-common-obj-$(CONFIG_PCI) += wdt_i6300esb.o
-
-# IndustryPack
-common-obj-$(CONFIG_IPACK) += tpci200.o ipoctal232.o ipack.o
-
-# PCI network cards
-common-obj-$(CONFIG_NE2000_PCI) += ne2000.o
-common-obj-$(CONFIG_EEPRO100_PCI) += eepro100.o
-common-obj-$(CONFIG_PCNET_PCI) += pcnet-pci.o
-common-obj-$(CONFIG_PCNET_COMMON) += pcnet.o
-common-obj-$(CONFIG_E1000_PCI) += e1000.o
-common-obj-$(CONFIG_RTL8139_PCI) += rtl8139.o
-common-obj-$(CONFIG_VMXNET3_PCI) += vmxnet_tx_pkt.o vmxnet_rx_pkt.o
-common-obj-$(CONFIG_VMXNET3_PCI) += vmxnet3.o
-
-common-obj-$(CONFIG_SMC91C111) += smc91c111.o
-common-obj-$(CONFIG_LAN9118) += lan9118.o
-common-obj-$(CONFIG_NE2000_ISA) += ne2000-isa.o
-common-obj-$(CONFIG_OPENCORES_ETH) += opencores_eth.o
-
-# SCSI layer
-common-obj-$(CONFIG_LSI_SCSI_PCI) += lsi53c895a.o
-common-obj-$(CONFIG_MEGASAS_SCSI_PCI) += megasas.o
-common-obj-$(CONFIG_ESP) += esp.o
-common-obj-$(CONFIG_ESP_PCI) += esp-pci.o
-
-common-obj-y += sysbus.o isa-bus.o
-common-obj-y += qdev-addr.o
-
-# VGA
-common-obj-$(CONFIG_VGA_PCI) += vga-pci.o
-common-obj-$(CONFIG_VGA_ISA) += vga-isa.o
-common-obj-$(CONFIG_VGA_ISA_MM) += vga-isa-mm.o
-common-obj-$(CONFIG_VMWARE_VGA) += vmware_vga.o
-common-obj-$(CONFIG_VMMOUSE) += vmmouse.o
-common-obj-$(CONFIG_VGA_CIRRUS) += cirrus_vga.o
-
-common-obj-$(CONFIG_RC4030) += rc4030.o
-common-obj-$(CONFIG_DP8393X) += dp8393x.o
-common-obj-$(CONFIG_DS1225Y) += ds1225y.o
-common-obj-$(CONFIG_MIPSNET) += mipsnet.o
-
-common-obj-y += null-machine.o
-
-# Sound
-sound-obj-y =
-sound-obj-$(CONFIG_SB16) += sb16.o
-sound-obj-$(CONFIG_ES1370) += es1370.o
-sound-obj-$(CONFIG_AC97) += ac97.o
-sound-obj-$(CONFIG_ADLIB) += fmopl.o adlib.o
-sound-obj-$(CONFIG_GUS) += gus.o gusemu_hal.o gusemu_mixer.o
-sound-obj-$(CONFIG_CS4231A) += cs4231a.o
-sound-obj-$(CONFIG_HDA) += intel-hda.o hda-audio.o
-
-$(obj)/adlib.o $(obj)/fmopl.o: QEMU_CFLAGS += -DBUILD_Y8950=0
-
-common-obj-$(CONFIG_SOUND) += $(sound-obj-y)
-
-common-obj-$(CONFIG_REALLY_VIRTFS) += 9pfs/
-
-common-obj-$(CONFIG_PTIMER) += ptimer.o
-common-obj-$(CONFIG_MAX7310) += max7310.o
-common-obj-$(CONFIG_WM8750) += wm8750.o
-common-obj-$(CONFIG_TWL92230) += twl92230.o
-common-obj-$(CONFIG_TSC2005) += tsc2005.o
-common-obj-$(CONFIG_LM832X) += lm832x.o
-common-obj-$(CONFIG_TMP105) += tmp105.o
-common-obj-$(CONFIG_STELLARIS_INPUT) += stellaris_input.o
-common-obj-$(CONFIG_SSD0303) += ssd0303.o
-common-obj-$(CONFIG_SSD0323) += ssd0323.o
-common-obj-$(CONFIG_ADS7846) += ads7846.o
-common-obj-$(CONFIG_MAX111X) += max111x.o
-common-obj-$(CONFIG_DS1338) += ds1338.o
-common-obj-y += i2c.o smbus.o smbus_eeprom.o
-common-obj-y += eeprom93xx.o
-common-obj-y += scsi-disk.o cdrom.o hd-geometry.o block-common.o
-common-obj-y += scsi-generic.o scsi-bus.o
-common-obj-y += hid.o
-common-obj-$(CONFIG_SSI) += ssi.o
-common-obj-$(CONFIG_SSI_M25P80) += m25p80.o
-common-obj-$(CONFIG_SSI_SD) += ssi-sd.o
-common-obj-$(CONFIG_SD) += sd.o
-common-obj-y += bt.o bt-l2cap.o bt-sdp.o bt-hci.o bt-hid.o
-common-obj-y += bt-hci-csr.o
-common-obj-y += ps2.o
-common-obj-y += qdev-properties-system.o
-
-# xen backend driver support
-common-obj-$(CONFIG_XEN_BACKEND) += xen_backend.o xen_devconfig.o
-common-obj-$(CONFIG_XEN_BACKEND) += xen_console.o xenfb.o xen_disk.o xen_nic.o
# Per-target files
# virtio has to be here due to weird dependency between PCI and virtio-net.
diff --git a/hw/acpi/Makefile.objs b/hw/acpi/Makefile.objs
index e69de29bb2..a0b63b5626 100644
--- a/hw/acpi/Makefile.objs
+++ b/hw/acpi/Makefile.objs
@@ -0,0 +1,2 @@
+common-obj-$(CONFIG_ACPI) += core.o piix4.o ich9.o
+
diff --git a/hw/acpi.c b/hw/acpi/core.c
index 64b871846d..64b871846d 100644
--- a/hw/acpi.c
+++ b/hw/acpi/core.c
diff --git a/hw/acpi_ich9.c b/hw/acpi/ich9.c
index e663d297a1..e663d297a1 100644
--- a/hw/acpi_ich9.c
+++ b/hw/acpi/ich9.c
diff --git a/hw/acpi_piix4.c b/hw/acpi/piix4.c
index 88386d7ea7..88386d7ea7 100644
--- a/hw/acpi_piix4.c
+++ b/hw/acpi/piix4.c
diff --git a/hw/audio/Makefile.objs b/hw/audio/Makefile.objs
index e69de29bb2..c50c367da7 100644
--- a/hw/audio/Makefile.objs
+++ b/hw/audio/Makefile.objs
@@ -0,0 +1,16 @@
+# Sound
+sound-obj-y =
+sound-obj-$(CONFIG_SB16) += sb16.o
+sound-obj-$(CONFIG_ES1370) += es1370.o
+sound-obj-$(CONFIG_AC97) += ac97.o
+sound-obj-$(CONFIG_ADLIB) += fmopl.o adlib.o
+sound-obj-$(CONFIG_GUS) += gus.o gusemu_hal.o gusemu_mixer.o
+sound-obj-$(CONFIG_CS4231A) += cs4231a.o
+sound-obj-$(CONFIG_HDA) += intel-hda.o hda-codec.o
+
+common-obj-$(CONFIG_SOUND) += $(sound-obj-y)
+common-obj-$(CONFIG_PCSPK) += pcspk.o
+common-obj-$(CONFIG_WM8750) += wm8750.o
+common-obj-$(CONFIG_PL041) += pl041.o lm4549.o
+
+$(obj)/adlib.o $(obj)/fmopl.o: QEMU_CFLAGS += -DBUILD_Y8950=0
diff --git a/hw/ac97.c b/hw/audio/ac97.c
index ab68ec6204..ab68ec6204 100644
--- a/hw/ac97.c
+++ b/hw/audio/ac97.c
diff --git a/hw/adlib.c b/hw/audio/adlib.c
index 133c0ff7b1..133c0ff7b1 100644
--- a/hw/adlib.c
+++ b/hw/audio/adlib.c
diff --git a/hw/cs4231a.c b/hw/audio/cs4231a.c
index 5711b62f83..5711b62f83 100644
--- a/hw/cs4231a.c
+++ b/hw/audio/cs4231a.c
diff --git a/hw/es1370.c b/hw/audio/es1370.c
index 9fe57087bf..9fe57087bf 100644
--- a/hw/es1370.c
+++ b/hw/audio/es1370.c
diff --git a/hw/fmopl.c b/hw/audio/fmopl.c
index e50ba6c0ec..e50ba6c0ec 100644
--- a/hw/fmopl.c
+++ b/hw/audio/fmopl.c
diff --git a/hw/gus.c b/hw/audio/gus.c
index e44704b1cf..e44704b1cf 100644
--- a/hw/gus.c
+++ b/hw/audio/gus.c
diff --git a/hw/gusemu_hal.c b/hw/audio/gusemu_hal.c
index 0eee617652..0eee617652 100644
--- a/hw/gusemu_hal.c
+++ b/hw/audio/gusemu_hal.c
diff --git a/hw/gusemu_mixer.c b/hw/audio/gusemu_mixer.c
index 816c58a7ed..816c58a7ed 100644
--- a/hw/gusemu_mixer.c
+++ b/hw/audio/gusemu_mixer.c
diff --git a/hw/hda-audio.c b/hw/audio/hda-codec.c
index 6bdd8209fb..6bdd8209fb 100644
--- a/hw/hda-audio.c
+++ b/hw/audio/hda-codec.c
diff --git a/hw/intel-hda.c b/hw/audio/intel-hda.c
index 68201cd091..68201cd091 100644
--- a/hw/intel-hda.c
+++ b/hw/audio/intel-hda.c
diff --git a/hw/lm4549.c b/hw/audio/lm4549.c
index 67335cba61..67335cba61 100644
--- a/hw/lm4549.c
+++ b/hw/audio/lm4549.c
diff --git a/hw/pcspk.c b/hw/audio/pcspk.c
index 34e0df7485..34e0df7485 100644
--- a/hw/pcspk.c
+++ b/hw/audio/pcspk.c
diff --git a/hw/pl041.c b/hw/audio/pl041.c
index 92dddc2923..92dddc2923 100644
--- a/hw/pl041.c
+++ b/hw/audio/pl041.c
diff --git a/hw/pl041.hx b/hw/audio/pl041.hx
index dd7188cbcb..dd7188cbcb 100644
--- a/hw/pl041.hx
+++ b/hw/audio/pl041.hx
diff --git a/hw/sb16.c b/hw/audio/sb16.c
index 783b6b4351..783b6b4351 100644
--- a/hw/sb16.c
+++ b/hw/audio/sb16.c
diff --git a/hw/wm8750.c b/hw/audio/wm8750.c
index 6b5a3499bb..6b5a3499bb 100644
--- a/hw/wm8750.c
+++ b/hw/audio/wm8750.c
diff --git a/hw/block/Makefile.objs b/hw/block/Makefile.objs
index e69de29bb2..5fa5101386 100644
--- a/hw/block/Makefile.objs
+++ b/hw/block/Makefile.objs
@@ -0,0 +1,8 @@
+common-obj-y += block.o cdrom.o hd-geometry.o
+common-obj-$(CONFIG_FDC) += fdc.o
+common-obj-$(CONFIG_SSI_M25P80) += m25p80.o
+common-obj-$(CONFIG_NAND) += nand.o
+common-obj-$(CONFIG_PFLASH_CFI01) += pflash_cfi01.o
+common-obj-$(CONFIG_PFLASH_CFI02) += pflash_cfi02.o
+common-obj-$(CONFIG_XEN_BACKEND) += xen_disk.o
+common-obj-$(CONFIG_ECC) += ecc.o
diff --git a/hw/block-common.c b/hw/block/block.c
index 33dd3f33b6..33dd3f33b6 100644
--- a/hw/block-common.c
+++ b/hw/block/block.c
diff --git a/hw/cdrom.c b/hw/block/cdrom.c
index 38469fa928..38469fa928 100644
--- a/hw/cdrom.c
+++ b/hw/block/cdrom.c
diff --git a/hw/ecc.c b/hw/block/ecc.c
index 8c888cc12a..8c888cc12a 100644
--- a/hw/ecc.c
+++ b/hw/block/ecc.c
diff --git a/hw/fdc.c b/hw/block/fdc.c
index 1ed874f074..1ed874f074 100644
--- a/hw/fdc.c
+++ b/hw/block/fdc.c
diff --git a/hw/hd-geometry.c b/hw/block/hd-geometry.c
index 6feb4f8175..6feb4f8175 100644
--- a/hw/hd-geometry.c
+++ b/hw/block/hd-geometry.c
diff --git a/hw/m25p80.c b/hw/block/m25p80.c
index cd560e3747..cd560e3747 100644
--- a/hw/m25p80.c
+++ b/hw/block/m25p80.c
diff --git a/hw/nand.c b/hw/block/nand.c
index 087ca14ed1..087ca14ed1 100644
--- a/hw/nand.c
+++ b/hw/block/nand.c
diff --git a/hw/pflash_cfi01.c b/hw/block/pflash_cfi01.c
index 3ff20e0c6f..3ff20e0c6f 100644
--- a/hw/pflash_cfi01.c
+++ b/hw/block/pflash_cfi01.c
diff --git a/hw/pflash_cfi02.c b/hw/block/pflash_cfi02.c
index 9a7fa707ca..9a7fa707ca 100644
--- a/hw/pflash_cfi02.c
+++ b/hw/block/pflash_cfi02.c
diff --git a/hw/xen_disk.c b/hw/block/xen_disk.c
index 532347bf94..532347bf94 100644
--- a/hw/xen_disk.c
+++ b/hw/block/xen_disk.c
diff --git a/hw/bt/Makefile.objs b/hw/bt/Makefile.objs
index e69de29bb2..867a7d2e8a 100644
--- a/hw/bt/Makefile.objs
+++ b/hw/bt/Makefile.objs
@@ -0,0 +1,3 @@
+common-obj-y += core.o l2cap.o sdp.o hci.o hid.o
+common-obj-y += hci-csr.o
+
diff --git a/hw/bt.c b/hw/bt/core.c
index 24ef4de49d..24ef4de49d 100644
--- a/hw/bt.c
+++ b/hw/bt/core.c
diff --git a/hw/bt-hci-csr.c b/hw/bt/hci-csr.c
index 55c819b085..55c819b085 100644
--- a/hw/bt-hci-csr.c
+++ b/hw/bt/hci-csr.c
diff --git a/hw/bt-hci.c b/hw/bt/hci.c
index a76edea2c9..a76edea2c9 100644
--- a/hw/bt-hci.c
+++ b/hw/bt/hci.c
diff --git a/hw/bt-hid.c b/hw/bt/hid.c
index af494e1e06..af494e1e06 100644
--- a/hw/bt-hid.c
+++ b/hw/bt/hid.c
diff --git a/hw/bt-l2cap.c b/hw/bt/l2cap.c
index 521587a112..521587a112 100644
--- a/hw/bt-l2cap.c
+++ b/hw/bt/l2cap.c
diff --git a/hw/bt-sdp.c b/hw/bt/sdp.c
index 218e075df7..218e075df7 100644
--- a/hw/bt-sdp.c
+++ b/hw/bt/sdp.c
diff --git a/hw/char/Makefile.objs b/hw/char/Makefile.objs
index e69de29bb2..eee23ff637 100644
--- a/hw/char/Makefile.objs
+++ b/hw/char/Makefile.objs
@@ -0,0 +1,10 @@
+common-obj-$(CONFIG_IPACK) += tpci200.o ipoctal232.o ipack.o
+common-obj-$(CONFIG_ESCC) += escc.o
+common-obj-$(CONFIG_PARALLEL) += parallel.o
+common-obj-$(CONFIG_PL011) += pl011.o
+common-obj-$(CONFIG_SERIAL) += serial.o serial-isa.o
+common-obj-$(CONFIG_SERIAL_PCI) += serial-pci.o
+common-obj-$(CONFIG_VIRTIO) += virtio-console.o
+common-obj-$(CONFIG_XILINX) += xilinx_uartlite.o
+common-obj-$(CONFIG_XEN_BACKEND) += xen_console.o
+common-obj-$(CONFIG_CADENCE) += cadence_uart.o
diff --git a/hw/cadence_uart.c b/hw/char/cadence_uart.c
index 421ec998d6..421ec998d6 100644
--- a/hw/cadence_uart.c
+++ b/hw/char/cadence_uart.c
diff --git a/hw/escc.c b/hw/char/escc.c
index 067b055fee..067b055fee 100644
--- a/hw/escc.c
+++ b/hw/char/escc.c
diff --git a/hw/ipack.c b/hw/char/ipack.c
index b1f46c10a4..b1f46c10a4 100644
--- a/hw/ipack.c
+++ b/hw/char/ipack.c
diff --git a/hw/ipoctal232.c b/hw/char/ipoctal232.c
index 685fee2d2e..685fee2d2e 100644
--- a/hw/ipoctal232.c
+++ b/hw/char/ipoctal232.c
diff --git a/hw/parallel.c b/hw/char/parallel.c
index 863a6fb4a9..863a6fb4a9 100644
--- a/hw/parallel.c
+++ b/hw/char/parallel.c
diff --git a/hw/pl011.c b/hw/char/pl011.c
index 332d5b970c..332d5b970c 100644
--- a/hw/pl011.c
+++ b/hw/char/pl011.c
diff --git a/hw/serial-isa.c b/hw/char/serial-isa.c
index ed140d04a6..ed140d04a6 100644
--- a/hw/serial-isa.c
+++ b/hw/char/serial-isa.c
diff --git a/hw/serial-pci.c b/hw/char/serial-pci.c
index 2138e35851..2138e35851 100644
--- a/hw/serial-pci.c
+++ b/hw/char/serial-pci.c
diff --git a/hw/serial.c b/hw/char/serial.c
index 1151bf1bab..1151bf1bab 100644
--- a/hw/serial.c
+++ b/hw/char/serial.c
diff --git a/hw/tpci200.c b/hw/char/tpci200.c
index e3408ef4ba..e3408ef4ba 100644
--- a/hw/tpci200.c
+++ b/hw/char/tpci200.c
diff --git a/hw/virtio-console.c b/hw/char/virtio-console.c
index 31f672c9a3..31f672c9a3 100644
--- a/hw/virtio-console.c
+++ b/hw/char/virtio-console.c
diff --git a/hw/xen_console.c b/hw/char/xen_console.c
index efc32320fa..efc32320fa 100644
--- a/hw/xen_console.c
+++ b/hw/char/xen_console.c
diff --git a/hw/xilinx_uartlite.c b/hw/char/xilinx_uartlite.c
index 079f4d4e1a..079f4d4e1a 100644
--- a/hw/xilinx_uartlite.c
+++ b/hw/char/xilinx_uartlite.c
diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs
index e69de29bb2..94109f32e2 100644
--- a/hw/core/Makefile.objs
+++ b/hw/core/Makefile.objs
@@ -0,0 +1,14 @@
+# core qdev-related obj files, also used by *-user:
+common-obj-y += qdev.o qdev-properties.o
+# irq.o needed for qdev GPIO handling:
+common-obj-y += irq.o
+
+common-obj-$(CONFIG_EMPTY_SLOT) += empty_slot.o
+common-obj-$(CONFIG_XILINX_AXI) += stream.o
+common-obj-$(CONFIG_PTIMER) += ptimer.o
+common-obj-$(CONFIG_SOFTMMU) += sysbus.o
+common-obj-$(CONFIG_SOFTMMU) += null-machine.o
+common-obj-$(CONFIG_SOFTMMU) += loader.o
+common-obj-$(CONFIG_SOFTMMU) += qdev-addr.o
+common-obj-$(CONFIG_SOFTMMU) += qdev-properties-system.o
+
diff --git a/hw/empty_slot.c b/hw/core/empty_slot.c
index 5234a4ddc6..5234a4ddc6 100644
--- a/hw/empty_slot.c
+++ b/hw/core/empty_slot.c
diff --git a/hw/irq.c b/hw/core/irq.c
index 20785428ef..20785428ef 100644
--- a/hw/irq.c
+++ b/hw/core/irq.c
diff --git a/hw/loader.c b/hw/core/loader.c
index 2f5072dfa2..2f5072dfa2 100644
--- a/hw/loader.c
+++ b/hw/core/loader.c
diff --git a/hw/null-machine.c b/hw/core/null-machine.c
index bdf109fef1..bdf109fef1 100644
--- a/hw/null-machine.c
+++ b/hw/core/null-machine.c
diff --git a/hw/ptimer.c b/hw/core/ptimer.c
index 4bc96c9fa2..4bc96c9fa2 100644
--- a/hw/ptimer.c
+++ b/hw/core/ptimer.c
diff --git a/hw/qdev-addr.c b/hw/core/qdev-addr.c
index 80a38bb017..80a38bb017 100644
--- a/hw/qdev-addr.c
+++ b/hw/core/qdev-addr.c
diff --git a/hw/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index 8c2e15205c..8c2e15205c 100644
--- a/hw/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
diff --git a/hw/qdev-properties.c b/hw/core/qdev-properties.c
index 9a0872d3b9..9a0872d3b9 100644
--- a/hw/qdev-properties.c
+++ b/hw/core/qdev-properties.c
diff --git a/hw/qdev.c b/hw/core/qdev.c
index e2bb37dc37..e2bb37dc37 100644
--- a/hw/qdev.c
+++ b/hw/core/qdev.c
diff --git a/hw/stream.c b/hw/core/stream.c
index a07d6a56d3..a07d6a56d3 100644
--- a/hw/stream.c
+++ b/hw/core/stream.c
diff --git a/hw/sysbus.c b/hw/core/sysbus.c
index 9004d8c543..9004d8c543 100644
--- a/hw/sysbus.c
+++ b/hw/core/sysbus.c
diff --git a/hw/display/Makefile.objs b/hw/display/Makefile.objs
index e69de29bb2..3ac154d708 100644
--- a/hw/display/Makefile.objs
+++ b/hw/display/Makefile.objs
@@ -0,0 +1,13 @@
+common-obj-$(CONFIG_ADS7846) += ads7846.o
+common-obj-$(CONFIG_VGA_CIRRUS) += cirrus_vga.o
+common-obj-$(CONFIG_G364FB) += g364fb.o
+common-obj-$(CONFIG_JAZZ_LED) += jazz_led.o
+common-obj-$(CONFIG_PL110) += pl110.o
+common-obj-$(CONFIG_SSD0303) += ssd0303.o
+common-obj-$(CONFIG_SSD0323) += ssd0323.o
+common-obj-$(CONFIG_XEN_BACKEND) += xenfb.o
+
+common-obj-$(CONFIG_VGA_PCI) += vga-pci.o
+common-obj-$(CONFIG_VGA_ISA) += vga-isa.o
+common-obj-$(CONFIG_VGA_ISA_MM) += vga-isa-mm.o
+common-obj-$(CONFIG_VMWARE_VGA) += vmware_vga.o
diff --git a/hw/ads7846.c b/hw/display/ads7846.c
index 5da3dc5b2c..5da3dc5b2c 100644
--- a/hw/ads7846.c
+++ b/hw/display/ads7846.c
diff --git a/hw/cirrus_vga.c b/hw/display/cirrus_vga.c
index 7a4d63436e..7a4d63436e 100644
--- a/hw/cirrus_vga.c
+++ b/hw/display/cirrus_vga.c
diff --git a/hw/g364fb.c b/hw/display/g364fb.c
index f7014e9dd8..f7014e9dd8 100644
--- a/hw/g364fb.c
+++ b/hw/display/g364fb.c
diff --git a/hw/jazz_led.c b/hw/display/jazz_led.c
index 05528c7c81..05528c7c81 100644
--- a/hw/jazz_led.c
+++ b/hw/display/jazz_led.c
diff --git a/hw/pl110.c b/hw/display/pl110.c
index fbef675f9c..fbef675f9c 100644
--- a/hw/pl110.c
+++ b/hw/display/pl110.c
diff --git a/hw/ssd0303.c b/hw/display/ssd0303.c
index 183a87835c..183a87835c 100644
--- a/hw/ssd0303.c
+++ b/hw/display/ssd0303.c
diff --git a/hw/ssd0323.c b/hw/display/ssd0323.c
index 5cf2f7058f..5cf2f7058f 100644
--- a/hw/ssd0323.c
+++ b/hw/display/ssd0323.c
diff --git a/hw/vga-isa-mm.c b/hw/display/vga-isa-mm.c
index 3b08720cf4..3b08720cf4 100644
--- a/hw/vga-isa-mm.c
+++ b/hw/display/vga-isa-mm.c
diff --git a/hw/vga-isa.c b/hw/display/vga-isa.c
index 89d7fa6c3c..89d7fa6c3c 100644
--- a/hw/vga-isa.c
+++ b/hw/display/vga-isa.c
diff --git a/hw/vga-pci.c b/hw/display/vga-pci.c
index 05fa9bcb64..05fa9bcb64 100644
--- a/hw/vga-pci.c
+++ b/hw/display/vga-pci.c
diff --git a/hw/vmware_vga.c b/hw/display/vmware_vga.c
index 5b9ce8f96b..5b9ce8f96b 100644
--- a/hw/vmware_vga.c
+++ b/hw/display/vmware_vga.c
diff --git a/hw/xenfb.c b/hw/display/xenfb.c
index 8e4266142d..8e4266142d 100644
--- a/hw/xenfb.c
+++ b/hw/display/xenfb.c
diff --git a/hw/dma/Makefile.objs b/hw/dma/Makefile.objs
index e69de29bb2..bce31cdf87 100644
--- a/hw/dma/Makefile.objs
+++ b/hw/dma/Makefile.objs
@@ -0,0 +1,7 @@
+common-obj-$(CONFIG_PUV3) += puv3_dma.o
+common-obj-$(CONFIG_RC4030) += rc4030.o
+common-obj-$(CONFIG_PL080) += pl080.o
+common-obj-$(CONFIG_PL330) += pl330.o
+common-obj-$(CONFIG_I82374) += i82374.o
+common-obj-$(CONFIG_I8257) += i8257.o
+common-obj-$(CONFIG_XILINX_AXI) += xilinx_axidma.o
diff --git a/hw/i82374.c b/hw/dma/i82374.c
index 835639d43c..835639d43c 100644
--- a/hw/i82374.c
+++ b/hw/dma/i82374.c
diff --git a/hw/dma.c b/hw/dma/i8257.c
index eb60d45178..eb60d45178 100644
--- a/hw/dma.c
+++ b/hw/dma/i8257.c
diff --git a/hw/pl080.c b/hw/dma/pl080.c
index 00b66b45b0..00b66b45b0 100644
--- a/hw/pl080.c
+++ b/hw/dma/pl080.c
diff --git a/hw/pl330.c b/hw/dma/pl330.c
index 8b33138f30..8b33138f30 100644
--- a/hw/pl330.c
+++ b/hw/dma/pl330.c
diff --git a/hw/puv3_dma.c b/hw/dma/puv3_dma.c
index 32844b5f75..32844b5f75 100644
--- a/hw/puv3_dma.c
+++ b/hw/dma/puv3_dma.c
diff --git a/hw/rc4030.c b/hw/dma/rc4030.c
index 03f92f1ab6..03f92f1ab6 100644
--- a/hw/rc4030.c
+++ b/hw/dma/rc4030.c
diff --git a/hw/xilinx_axidma.c b/hw/dma/xilinx_axidma.c
index 8db1a74acf..8db1a74acf 100644
--- a/hw/xilinx_axidma.c
+++ b/hw/dma/xilinx_axidma.c
diff --git a/hw/gpio/Makefile.objs b/hw/gpio/Makefile.objs
index e69de29bb2..f8d8ee87f9 100644
--- a/hw/gpio/Makefile.objs
+++ b/hw/gpio/Makefile.objs
@@ -0,0 +1,3 @@
+common-obj-$(CONFIG_MAX7310) += max7310.o
+common-obj-$(CONFIG_PL061) += pl061.o
+common-obj-$(CONFIG_PUV3) += puv3_gpio.o
diff --git a/hw/max7310.c b/hw/gpio/max7310.c
index 59b287703e..59b287703e 100644
--- a/hw/max7310.c
+++ b/hw/gpio/max7310.c
diff --git a/hw/pl061.c b/hw/gpio/pl061.c
index 74bc109488..74bc109488 100644
--- a/hw/pl061.c
+++ b/hw/gpio/pl061.c
diff --git a/hw/puv3_gpio.c b/hw/gpio/puv3_gpio.c
index 5bab97e95a..5bab97e95a 100644
--- a/hw/puv3_gpio.c
+++ b/hw/gpio/puv3_gpio.c
diff --git a/hw/i2c/Makefile.objs b/hw/i2c/Makefile.objs
index e69de29bb2..f6bd8fa6ed 100644
--- a/hw/i2c/Makefile.objs
+++ b/hw/i2c/Makefile.objs
@@ -0,0 +1,4 @@
+common-obj-y += core.o smbus.o smbus_eeprom.o
+common-obj-$(CONFIG_VERSATILE_I2C) += versatile_i2c.o
+common-obj-$(CONFIG_ACPI) += smbus_ich9.o
+common-obj-$(CONFIG_APM) += pm_smbus.o
diff --git a/hw/i2c.c b/hw/i2c/core.c
index 0c4fc1dbaa..0c4fc1dbaa 100644
--- a/hw/i2c.c
+++ b/hw/i2c/core.c
diff --git a/hw/pm_smbus.c b/hw/i2c/pm_smbus.c
index 0b5bb89976..0b5bb89976 100644
--- a/hw/pm_smbus.c
+++ b/hw/i2c/pm_smbus.c
diff --git a/hw/smbus.c b/hw/i2c/smbus.c
index 25d2d04163..25d2d04163 100644
--- a/hw/smbus.c
+++ b/hw/i2c/smbus.c
diff --git a/hw/smbus_eeprom.c b/hw/i2c/smbus_eeprom.c
index 0154283762..0154283762 100644
--- a/hw/smbus_eeprom.c
+++ b/hw/i2c/smbus_eeprom.c
diff --git a/hw/smbus_ich9.c b/hw/i2c/smbus_ich9.c
index ca229789f4..ca229789f4 100644
--- a/hw/smbus_ich9.c
+++ b/hw/i2c/smbus_ich9.c
diff --git a/hw/versatile_i2c.c b/hw/i2c/versatile_i2c.c
index d0444aecac..d0444aecac 100644
--- a/hw/versatile_i2c.c
+++ b/hw/i2c/versatile_i2c.c
diff --git a/hw/input/Makefile.objs b/hw/input/Makefile.objs
index e69de29bb2..824997e367 100644
--- a/hw/input/Makefile.objs
+++ b/hw/input/Makefile.objs
@@ -0,0 +1,9 @@
+common-obj-$(CONFIG_ADB) += adb.o
+common-obj-y += hid.o
+common-obj-$(CONFIG_LM832X) += lm832x.o
+common-obj-$(CONFIG_PCKBD) += pckbd.o
+common-obj-$(CONFIG_PL050) += pl050.o
+common-obj-y += ps2.o
+common-obj-$(CONFIG_STELLARIS_INPUT) += stellaris_input.o
+common-obj-$(CONFIG_TSC2005) += tsc2005.o
+common-obj-$(CONFIG_VMMOUSE) += vmmouse.o
diff --git a/hw/adb.c b/hw/input/adb.c
index a75d3fd7b9..a75d3fd7b9 100644
--- a/hw/adb.c
+++ b/hw/input/adb.c
diff --git a/hw/hid.c b/hw/input/hid.c
index 5fbde98f65..5fbde98f65 100644
--- a/hw/hid.c
+++ b/hw/input/hid.c
diff --git a/hw/lm832x.c b/hw/input/lm832x.c
index bacbeb2343..bacbeb2343 100644
--- a/hw/lm832x.c
+++ b/hw/input/lm832x.c
diff --git a/hw/pckbd.c b/hw/input/pckbd.c
index 08ceb9fe8a..08ceb9fe8a 100644
--- a/hw/pckbd.c
+++ b/hw/input/pckbd.c
diff --git a/hw/pl050.c b/hw/input/pl050.c
index 7dd8a59dd4..7dd8a59dd4 100644
--- a/hw/pl050.c
+++ b/hw/input/pl050.c
diff --git a/hw/ps2.c b/hw/input/ps2.c
index 34120796b1..34120796b1 100644
--- a/hw/ps2.c
+++ b/hw/input/ps2.c
diff --git a/hw/stellaris_input.c b/hw/input/stellaris_input.c
index f83fc3f288..f83fc3f288 100644
--- a/hw/stellaris_input.c
+++ b/hw/input/stellaris_input.c
diff --git a/hw/tsc2005.c b/hw/input/tsc2005.c
index 34ee1fb3cf..34ee1fb3cf 100644
--- a/hw/tsc2005.c
+++ b/hw/input/tsc2005.c
diff --git a/hw/vmmouse.c b/hw/input/vmmouse.c
index f4f9c9373d..f4f9c9373d 100644
--- a/hw/vmmouse.c
+++ b/hw/input/vmmouse.c
diff --git a/hw/intc/Makefile.objs b/hw/intc/Makefile.objs
index e69de29bb2..2813adb3e7 100644
--- a/hw/intc/Makefile.objs
+++ b/hw/intc/Makefile.objs
@@ -0,0 +1,5 @@
+common-obj-$(CONFIG_HEATHROW_PIC) += heathrow_pic.o
+common-obj-$(CONFIG_I8259) += i8259_common.o i8259.o
+common-obj-$(CONFIG_PL190) += pl190.o
+common-obj-$(CONFIG_PUV3) += puv3_intc.o
+common-obj-$(CONFIG_XILINX) += xilinx_intc.o
diff --git a/hw/heathrow_pic.c b/hw/intc/heathrow_pic.c
index beb9661182..beb9661182 100644
--- a/hw/heathrow_pic.c
+++ b/hw/intc/heathrow_pic.c
diff --git a/hw/i8259.c b/hw/intc/i8259.c
index ce14bd0f94..ce14bd0f94 100644
--- a/hw/i8259.c
+++ b/hw/intc/i8259.c
diff --git a/hw/i8259_common.c b/hw/intc/i8259_common.c
index 996ba9dfdb..996ba9dfdb 100644
--- a/hw/i8259_common.c
+++ b/hw/intc/i8259_common.c
diff --git a/hw/pl190.c b/hw/intc/pl190.c
index 9610673d94..9610673d94 100644
--- a/hw/pl190.c
+++ b/hw/intc/pl190.c
diff --git a/hw/puv3_intc.c b/hw/intc/puv3_intc.c
index 0cd5e9eae0..0cd5e9eae0 100644
--- a/hw/puv3_intc.c
+++ b/hw/intc/puv3_intc.c
diff --git a/hw/xilinx_intc.c b/hw/intc/xilinx_intc.c
index b106e724ab..b106e724ab 100644
--- a/hw/xilinx_intc.c
+++ b/hw/intc/xilinx_intc.c
diff --git a/hw/isa/Makefile.objs b/hw/isa/Makefile.objs
index e69de29bb2..ad3643bd42 100644
--- a/hw/isa/Makefile.objs
+++ b/hw/isa/Makefile.objs
@@ -0,0 +1,7 @@
+common-obj-y += isa-bus.o
+common-obj-$(CONFIG_APM) += apm.o
+common-obj-$(CONFIG_I82378) += i82378.o
+common-obj-$(CONFIG_ISA_MMIO) += isa_mmio.o
+common-obj-$(CONFIG_PC87312) += pc87312.o
+common-obj-$(CONFIG_PIIX4) += piix4.o
+
diff --git a/hw/apm.c b/hw/isa/apm.c
index 5f21d21473..5f21d21473 100644
--- a/hw/apm.c
+++ b/hw/isa/apm.c
diff --git a/hw/i82378.c b/hw/isa/i82378.c
index cced9aff26..cced9aff26 100644
--- a/hw/i82378.c
+++ b/hw/isa/i82378.c
diff --git a/hw/isa-bus.c b/hw/isa/isa-bus.c
index 7860b17d66..7860b17d66 100644
--- a/hw/isa-bus.c
+++ b/hw/isa/isa-bus.c
diff --git a/hw/isa_mmio.c b/hw/isa/isa_mmio.c
index d4dbf13831..d4dbf13831 100644
--- a/hw/isa_mmio.c
+++ b/hw/isa/isa_mmio.c
diff --git a/hw/pc87312.c b/hw/isa/pc87312.c
index 9f5e185685..9f5e185685 100644
--- a/hw/pc87312.c
+++ b/hw/isa/pc87312.c
diff --git a/hw/piix4.c b/hw/isa/piix4.c
index d750413a7e..d750413a7e 100644
--- a/hw/piix4.c
+++ b/hw/isa/piix4.c
diff --git a/hw/misc/Makefile.objs b/hw/misc/Makefile.objs
index e69de29bb2..009b1d9f01 100644
--- a/hw/misc/Makefile.objs
+++ b/hw/misc/Makefile.objs
@@ -0,0 +1,11 @@
+common-obj-$(CONFIG_APPLESMC) += applesmc.o
+common-obj-$(CONFIG_MAX111X) += max111x.o
+common-obj-$(CONFIG_TMP105) += tmp105.o
+
+# ARM devices
+common-obj-$(CONFIG_PL310) += arm_l2x0.o
+
+# PKUnity SoC devices
+common-obj-$(CONFIG_PUV3) += puv3_pm.o
+
+common-obj-$(CONFIG_MACIO) += macio/
diff --git a/hw/applesmc.c b/hw/misc/applesmc.c
index c29558bdd5..c29558bdd5 100644
--- a/hw/applesmc.c
+++ b/hw/misc/applesmc.c
diff --git a/hw/arm_l2x0.c b/hw/misc/arm_l2x0.c
index eb4427d9c4..eb4427d9c4 100644
--- a/hw/arm_l2x0.c
+++ b/hw/misc/arm_l2x0.c
diff --git a/hw/misc/macio/Makefile.objs b/hw/misc/macio/Makefile.objs
new file mode 100644
index 0000000000..ef7ac249ec
--- /dev/null
+++ b/hw/misc/macio/Makefile.objs
@@ -0,0 +1,3 @@
+common-obj-y += macio.o
+common-obj-$(CONFIG_CUDA) += cuda.o
+common-obj-$(CONFIG_MAC_DBDMA) += mac_dbdma.o
diff --git a/hw/cuda.c b/hw/misc/macio/cuda.c
index f797796a36..f797796a36 100644
--- a/hw/cuda.c
+++ b/hw/misc/macio/cuda.c
diff --git a/hw/mac_dbdma.c b/hw/misc/macio/mac_dbdma.c
index a2363bbdf2..a2363bbdf2 100644
--- a/hw/mac_dbdma.c
+++ b/hw/misc/macio/mac_dbdma.c
diff --git a/hw/macio.c b/hw/misc/macio/macio.c
index 2f389dd7cc..2f389dd7cc 100644
--- a/hw/macio.c
+++ b/hw/misc/macio/macio.c
diff --git a/hw/max111x.c b/hw/misc/max111x.c
index d477ecdb29..d477ecdb29 100644
--- a/hw/max111x.c
+++ b/hw/misc/max111x.c
diff --git a/hw/puv3_pm.c b/hw/misc/puv3_pm.c
index 0aacdc2fce..0aacdc2fce 100644
--- a/hw/puv3_pm.c
+++ b/hw/misc/puv3_pm.c
diff --git a/hw/tmp105.c b/hw/misc/tmp105.c
index 21a27a6f44..21a27a6f44 100644
--- a/hw/tmp105.c
+++ b/hw/misc/tmp105.c
diff --git a/hw/net/Makefile.objs b/hw/net/Makefile.objs
index e69de29bb2..ad91293fe4 100644
--- a/hw/net/Makefile.objs
+++ b/hw/net/Makefile.objs
@@ -0,0 +1,22 @@
+common-obj-$(CONFIG_DP8393X) += dp8393x.o
+common-obj-$(CONFIG_XEN_BACKEND) += xen_nic.o
+
+# PCI network cards
+common-obj-$(CONFIG_NE2000_PCI) += ne2000.o
+common-obj-$(CONFIG_EEPRO100_PCI) += eepro100.o
+common-obj-$(CONFIG_PCNET_PCI) += pcnet-pci.o
+common-obj-$(CONFIG_PCNET_COMMON) += pcnet.o
+common-obj-$(CONFIG_E1000_PCI) += e1000.o
+common-obj-$(CONFIG_RTL8139_PCI) += rtl8139.o
+common-obj-$(CONFIG_VMXNET3_PCI) += vmxnet_tx_pkt.o vmxnet_rx_pkt.o
+common-obj-$(CONFIG_VMXNET3_PCI) += vmxnet3.o
+
+common-obj-$(CONFIG_SMC91C111) += smc91c111.o
+common-obj-$(CONFIG_LAN9118) += lan9118.o
+common-obj-$(CONFIG_NE2000_ISA) += ne2000-isa.o
+common-obj-$(CONFIG_OPENCORES_ETH) += opencores_eth.o
+common-obj-$(CONFIG_XGMAC) += xgmac.o
+common-obj-$(CONFIG_MIPSNET) += mipsnet.o
+common-obj-$(CONFIG_XILINX_AXI) += xilinx_axienet.o
+
+common-obj-$(CONFIG_CADENCE) += cadence_gem.o
diff --git a/hw/cadence_gem.c b/hw/net/cadence_gem.c
index e177057e49..e177057e49 100644
--- a/hw/cadence_gem.c
+++ b/hw/net/cadence_gem.c
diff --git a/hw/dp8393x.c b/hw/net/dp8393x.c
index 2289f089ad..2289f089ad 100644
--- a/hw/dp8393x.c
+++ b/hw/net/dp8393x.c
diff --git a/hw/e1000.c b/hw/net/e1000.c
index 3f18041b47..3f18041b47 100644
--- a/hw/e1000.c
+++ b/hw/net/e1000.c
diff --git a/hw/eepro100.c b/hw/net/eepro100.c
index dc99ea6ea0..dc99ea6ea0 100644
--- a/hw/eepro100.c
+++ b/hw/net/eepro100.c
diff --git a/hw/lan9118.c b/hw/net/lan9118.c
index 04cf267f13..04cf267f13 100644
--- a/hw/lan9118.c
+++ b/hw/net/lan9118.c
diff --git a/hw/mipsnet.c b/hw/net/mipsnet.c
index ac6193a89e..ac6193a89e 100644
--- a/hw/mipsnet.c
+++ b/hw/net/mipsnet.c
diff --git a/hw/ne2000-isa.c b/hw/net/ne2000-isa.c
index e4c10dbe25..e4c10dbe25 100644
--- a/hw/ne2000-isa.c
+++ b/hw/net/ne2000-isa.c
diff --git a/hw/ne2000.c b/hw/net/ne2000.c
index 7f458311c6..7f458311c6 100644
--- a/hw/ne2000.c
+++ b/hw/net/ne2000.c
diff --git a/hw/opencores_eth.c b/hw/net/opencores_eth.c
index be64bf2a68..be64bf2a68 100644
--- a/hw/opencores_eth.c
+++ b/hw/net/opencores_eth.c
diff --git a/hw/pcnet-pci.c b/hw/net/pcnet-pci.c
index 61af57ed51..61af57ed51 100644
--- a/hw/pcnet-pci.c
+++ b/hw/net/pcnet-pci.c
diff --git a/hw/pcnet.c b/hw/net/pcnet.c
index b0b462b02e..b0b462b02e 100644
--- a/hw/pcnet.c
+++ b/hw/net/pcnet.c
diff --git a/hw/rtl8139.c b/hw/net/rtl8139.c
index 9369507422..9369507422 100644
--- a/hw/rtl8139.c
+++ b/hw/net/rtl8139.c
diff --git a/hw/smc91c111.c b/hw/net/smc91c111.c
index f659256d6e..f659256d6e 100644
--- a/hw/smc91c111.c
+++ b/hw/net/smc91c111.c
diff --git a/hw/vmware_utils.h b/hw/net/vmware_utils.h
index 5307e2ccc9..5307e2ccc9 100644
--- a/hw/vmware_utils.h
+++ b/hw/net/vmware_utils.h
diff --git a/hw/vmxnet3.c b/hw/net/vmxnet3.c
index 5916624371..5916624371 100644
--- a/hw/vmxnet3.c
+++ b/hw/net/vmxnet3.c
diff --git a/hw/vmxnet3.h b/hw/net/vmxnet3.h
index 7db0c8f5e0..7db0c8f5e0 100644
--- a/hw/vmxnet3.h
+++ b/hw/net/vmxnet3.h
diff --git a/hw/vmxnet_debug.h b/hw/net/vmxnet_debug.h
index 96dae0f916..96dae0f916 100644
--- a/hw/vmxnet_debug.h
+++ b/hw/net/vmxnet_debug.h
diff --git a/hw/vmxnet_rx_pkt.c b/hw/net/vmxnet_rx_pkt.c
index a40e346293..a40e346293 100644
--- a/hw/vmxnet_rx_pkt.c
+++ b/hw/net/vmxnet_rx_pkt.c
diff --git a/hw/vmxnet_rx_pkt.h b/hw/net/vmxnet_rx_pkt.h
index 6b2c60ef10..6b2c60ef10 100644
--- a/hw/vmxnet_rx_pkt.h
+++ b/hw/net/vmxnet_rx_pkt.h
diff --git a/hw/vmxnet_tx_pkt.c b/hw/net/vmxnet_tx_pkt.c
index b1e795b3b2..b1e795b3b2 100644
--- a/hw/vmxnet_tx_pkt.c
+++ b/hw/net/vmxnet_tx_pkt.c
diff --git a/hw/vmxnet_tx_pkt.h b/hw/net/vmxnet_tx_pkt.h
index 57121a6fe5..57121a6fe5 100644
--- a/hw/vmxnet_tx_pkt.h
+++ b/hw/net/vmxnet_tx_pkt.h
diff --git a/hw/xen_nic.c b/hw/net/xen_nic.c
index 63918ae1a0..63918ae1a0 100644
--- a/hw/xen_nic.c
+++ b/hw/net/xen_nic.c
diff --git a/hw/xgmac.c b/hw/net/xgmac.c
index 5275f4810d..5275f4810d 100644
--- a/hw/xgmac.c
+++ b/hw/net/xgmac.c
diff --git a/hw/xilinx_axienet.c b/hw/net/xilinx_axienet.c
index 07c4badd98..07c4badd98 100644
--- a/hw/xilinx_axienet.c
+++ b/hw/net/xilinx_axienet.c
diff --git a/hw/nvram/Makefile.objs b/hw/nvram/Makefile.objs
index e69de29bb2..80fb1b0441 100644
--- a/hw/nvram/Makefile.objs
+++ b/hw/nvram/Makefile.objs
@@ -0,0 +1,4 @@
+common-obj-$(CONFIG_DS1225Y) += ds1225y.o
+common-obj-y += eeprom93xx.o
+common-obj-y += fw_cfg.o
+common-obj-$(CONFIG_MAC_NVRAM) += mac_nvram.o
diff --git a/hw/ds1225y.c b/hw/nvram/ds1225y.c
index 488f1d7241..488f1d7241 100644
--- a/hw/ds1225y.c
+++ b/hw/nvram/ds1225y.c
diff --git a/hw/eeprom93xx.c b/hw/nvram/eeprom93xx.c
index 08f4df586c..08f4df586c 100644
--- a/hw/eeprom93xx.c
+++ b/hw/nvram/eeprom93xx.c
diff --git a/hw/fw_cfg.c b/hw/nvram/fw_cfg.c
index 97bba874e3..97bba874e3 100644
--- a/hw/fw_cfg.c
+++ b/hw/nvram/fw_cfg.c
diff --git a/hw/mac_nvram.c b/hw/nvram/mac_nvram.c
index 5223330838..5223330838 100644
--- a/hw/mac_nvram.c
+++ b/hw/nvram/mac_nvram.c
diff --git a/hw/pci/Makefile.objs b/hw/pci/Makefile.objs
index 1cd6cde2ee..aac5f65e9d 100644
--- a/hw/pci/Makefile.objs
+++ b/hw/pci/Makefile.objs
@@ -4,6 +4,8 @@ common-obj-$(CONFIG_PCI) += shpc.o
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-$(CONFIG_NO_PCI) += pci-stub.o
common-obj-$(CONFIG_ALL) += pci-stub.o
+
+common-obj-$(CONFIG_PCI) += bridge/ host/
diff --git a/hw/pci/bridge/Makefile.objs b/hw/pci/bridge/Makefile.objs
new file mode 100644
index 0000000000..5dd92d28a0
--- /dev/null
+++ b/hw/pci/bridge/Makefile.objs
@@ -0,0 +1,3 @@
+common-obj-y += pci_bridge_dev.o
+common-obj-y += ioh3420.o xio3130_upstream.o xio3130_downstream.o
+common-obj-y += i82801b11.o
diff --git a/hw/i82801b11.c b/hw/pci/bridge/i82801b11.c
index 5807a92d7f..5807a92d7f 100644
--- a/hw/i82801b11.c
+++ b/hw/pci/bridge/i82801b11.c
diff --git a/hw/ioh3420.c b/hw/pci/bridge/ioh3420.c
index 5cff61e095..5cff61e095 100644
--- a/hw/ioh3420.c
+++ b/hw/pci/bridge/ioh3420.c
diff --git a/hw/pci_bridge_dev.c b/hw/pci/bridge/pci_bridge_dev.c
index 971b432474..971b432474 100644
--- a/hw/pci_bridge_dev.c
+++ b/hw/pci/bridge/pci_bridge_dev.c
diff --git a/hw/xio3130_downstream.c b/hw/pci/bridge/xio3130_downstream.c
index b868f56ff9..b868f56ff9 100644
--- a/hw/xio3130_downstream.c
+++ b/hw/pci/bridge/xio3130_downstream.c
diff --git a/hw/xio3130_upstream.c b/hw/pci/bridge/xio3130_upstream.c
index cd5d97d211..cd5d97d211 100644
--- a/hw/xio3130_upstream.c
+++ b/hw/pci/bridge/xio3130_upstream.c
diff --git a/hw/pci/host/Makefile.objs b/hw/pci/host/Makefile.objs
new file mode 100644
index 0000000000..e1d6cce047
--- /dev/null
+++ b/hw/pci/host/Makefile.objs
@@ -0,0 +1,13 @@
+common-obj-y += pam.o
+
+# PPC devices
+common-obj-$(CONFIG_PREP_PCI) += prep.o
+common-obj-$(CONFIG_GRACKLE_PCI) += grackle.o
+# NewWorld PowerMac
+common-obj-$(CONFIG_UNIN_PCI) += uninorth.o
+common-obj-$(CONFIG_DEC_PCI) += dec.o
+# PowerPC E500 boards
+common-obj-$(CONFIG_PPCE500_PCI) += ppce500.o
+
+# ARM devices
+common-obj-$(CONFIG_VERSATILE_PCI) += versatile.o
diff --git a/hw/dec_pci.c b/hw/pci/host/dec.c
index 6ec3d226bd..6ec3d226bd 100644
--- a/hw/dec_pci.c
+++ b/hw/pci/host/dec.c
diff --git a/hw/grackle_pci.c b/hw/pci/host/grackle.c
index 69344d9f6a..69344d9f6a 100644
--- a/hw/grackle_pci.c
+++ b/hw/pci/host/grackle.c
diff --git a/hw/pam.c b/hw/pci/host/pam.c
index 7181bd68eb..7181bd68eb 100644
--- a/hw/pam.c
+++ b/hw/pci/host/pam.c
diff --git a/hw/ppce500_pci.c b/hw/pci/host/ppce500.c
index 5e7ad94388..5e7ad94388 100644
--- a/hw/ppce500_pci.c
+++ b/hw/pci/host/ppce500.c
diff --git a/hw/prep_pci.c b/hw/pci/host/prep.c
index 61302539ab..61302539ab 100644
--- a/hw/prep_pci.c
+++ b/hw/pci/host/prep.c
diff --git a/hw/unin_pci.c b/hw/pci/host/uninorth.c
index fff235d523..fff235d523 100644
--- a/hw/unin_pci.c
+++ b/hw/pci/host/uninorth.c
diff --git a/hw/versatile_pci.c b/hw/pci/host/versatile.c
index d67ca796fb..d67ca796fb 100644
--- a/hw/versatile_pci.c
+++ b/hw/pci/host/versatile.c
diff --git a/hw/scsi/Makefile.objs b/hw/scsi/Makefile.objs
index e69de29bb2..6a56504068 100644
--- a/hw/scsi/Makefile.objs
+++ b/hw/scsi/Makefile.objs
@@ -0,0 +1,6 @@
+common-obj-y += scsi-disk.o
+common-obj-y += scsi-generic.o scsi-bus.o
+common-obj-$(CONFIG_LSI_SCSI_PCI) += lsi53c895a.o
+common-obj-$(CONFIG_MEGASAS_SCSI_PCI) += megasas.o
+common-obj-$(CONFIG_ESP) += esp.o
+common-obj-$(CONFIG_ESP_PCI) += esp-pci.o
diff --git a/hw/esp-pci.c b/hw/scsi/esp-pci.c
index 3ca5c8c673..3ca5c8c673 100644
--- a/hw/esp-pci.c
+++ b/hw/scsi/esp-pci.c
diff --git a/hw/esp.c b/hw/scsi/esp.c
index 17adbecf8c..17adbecf8c 100644
--- a/hw/esp.c
+++ b/hw/scsi/esp.c
diff --git a/hw/lsi53c895a.c b/hw/scsi/lsi53c895a.c
index c601b2943d..c601b2943d 100644
--- a/hw/lsi53c895a.c
+++ b/hw/scsi/lsi53c895a.c
diff --git a/hw/megasas.c b/hw/scsi/megasas.c
index f46f800355..f46f800355 100644
--- a/hw/megasas.c
+++ b/hw/scsi/megasas.c
diff --git a/hw/scsi-bus.c b/hw/scsi/scsi-bus.c
index 6239ee1465..6239ee1465 100644
--- a/hw/scsi-bus.c
+++ b/hw/scsi/scsi-bus.c
diff --git a/hw/scsi-disk.c b/hw/scsi/scsi-disk.c
index f52bd11d42..f52bd11d42 100644
--- a/hw/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
diff --git a/hw/scsi-generic.c b/hw/scsi/scsi-generic.c
index 2a9a561127..2a9a561127 100644
--- a/hw/scsi-generic.c
+++ b/hw/scsi/scsi-generic.c
diff --git a/hw/sd/Makefile.objs b/hw/sd/Makefile.objs
index e69de29bb2..8acce02518 100644
--- a/hw/sd/Makefile.objs
+++ b/hw/sd/Makefile.objs
@@ -0,0 +1,4 @@
+common-obj-$(CONFIG_PL181) += pl181.o
+common-obj-$(CONFIG_SSI_SD) += ssi-sd.o
+common-obj-$(CONFIG_SD) += sd.o
+common-obj-$(CONFIG_SDHCI) += sdhci.o
diff --git a/hw/pl181.c b/hw/sd/pl181.c
index 2527296776..2527296776 100644
--- a/hw/pl181.c
+++ b/hw/sd/pl181.c
diff --git a/hw/sd.c b/hw/sd/sd.c
index 66c4014fbe..66c4014fbe 100644
--- a/hw/sd.c
+++ b/hw/sd/sd.c
diff --git a/hw/sdhci.c b/hw/sd/sdhci.c
index 4a29e6cf7f..4a29e6cf7f 100644
--- a/hw/sdhci.c
+++ b/hw/sd/sdhci.c
diff --git a/hw/ssi-sd.c b/hw/sd/ssi-sd.c
index 4d3c4f6445..4d3c4f6445 100644
--- a/hw/ssi-sd.c
+++ b/hw/sd/ssi-sd.c
diff --git a/hw/ssi/Makefile.objs b/hw/ssi/Makefile.objs
index e69de29bb2..daada5c66a 100644
--- a/hw/ssi/Makefile.objs
+++ b/hw/ssi/Makefile.objs
@@ -0,0 +1,2 @@
+common-obj-$(CONFIG_PL022) += pl022.o
+common-obj-$(CONFIG_SSI) += ssi.o
diff --git a/hw/pl022.c b/hw/ssi/pl022.c
index 536c2166fe..536c2166fe 100644
--- a/hw/pl022.c
+++ b/hw/ssi/pl022.c
diff --git a/hw/ssi.c b/hw/ssi/ssi.c
index 1264d9da23..1264d9da23 100644
--- a/hw/ssi.c
+++ b/hw/ssi/ssi.c
diff --git a/hw/timer/Makefile.objs b/hw/timer/Makefile.objs
index e69de29bb2..12781dd2a3 100644
--- a/hw/timer/Makefile.objs
+++ b/hw/timer/Makefile.objs
@@ -0,0 +1,10 @@
+common-obj-$(CONFIG_ARM_TIMER) += arm_timer.o
+common-obj-$(CONFIG_CADENCE) += cadence_ttc.o
+common-obj-$(CONFIG_DS1338) += ds1338.o
+common-obj-$(CONFIG_HPET) += hpet.o
+common-obj-$(CONFIG_I8254) += i8254_common.o i8254.o
+common-obj-$(CONFIG_M48T59) += m48t59.o
+common-obj-$(CONFIG_PL031) += pl031.o
+common-obj-$(CONFIG_PUV3) += puv3_ost.o
+common-obj-$(CONFIG_TWL92230) += twl92230.o
+common-obj-$(CONFIG_XILINX) += xilinx_timer.o
diff --git a/hw/arm_timer.c b/hw/timer/arm_timer.c
index 644987046a..644987046a 100644
--- a/hw/arm_timer.c
+++ b/hw/timer/arm_timer.c
diff --git a/hw/cadence_ttc.c b/hw/timer/cadence_ttc.c
index ba584f4719..ba584f4719 100644
--- a/hw/cadence_ttc.c
+++ b/hw/timer/cadence_ttc.c
diff --git a/hw/ds1338.c b/hw/timer/ds1338.c
index 8987cdc9e0..8987cdc9e0 100644
--- a/hw/ds1338.c
+++ b/hw/timer/ds1338.c
diff --git a/hw/hpet.c b/hw/timer/hpet.c
index 95dd01d147..95dd01d147 100644
--- a/hw/hpet.c
+++ b/hw/timer/hpet.c
diff --git a/hw/i8254.c b/hw/timer/i8254.c
index 20c0c3601d..20c0c3601d 100644
--- a/hw/i8254.c
+++ b/hw/timer/i8254.c
diff --git a/hw/i8254_common.c b/hw/timer/i8254_common.c
index 5342df4a34..5342df4a34 100644
--- a/hw/i8254_common.c
+++ b/hw/timer/i8254_common.c
diff --git a/hw/m48t59.c b/hw/timer/m48t59.c
index 5019e0632b..5019e0632b 100644
--- a/hw/m48t59.c
+++ b/hw/timer/m48t59.c
diff --git a/hw/pl031.c b/hw/timer/pl031.c
index 764940be7e..764940be7e 100644
--- a/hw/pl031.c
+++ b/hw/timer/pl031.c
diff --git a/hw/puv3_ost.c b/hw/timer/puv3_ost.c
index 0c3d827978..0c3d827978 100644
--- a/hw/puv3_ost.c
+++ b/hw/timer/puv3_ost.c
diff --git a/hw/twl92230.c b/hw/timer/twl92230.c
index b730d853f7..b730d853f7 100644
--- a/hw/twl92230.c
+++ b/hw/timer/twl92230.c
diff --git a/hw/xilinx_timer.c b/hw/timer/xilinx_timer.c
index 0c39cff089..0c39cff089 100644
--- a/hw/xilinx_timer.c
+++ b/hw/timer/xilinx_timer.c
diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs
index e63e287ce0..5c2064422e 100644
--- a/hw/usb/Makefile.objs
+++ b/hw/usb/Makefile.objs
@@ -21,7 +21,12 @@ common-obj-$(CONFIG_USB_NETWORK) += dev-network.o
# FIXME: make configurable too
CONFIG_USB_BLUETOOTH := y
common-obj-$(CONFIG_USB_BLUETOOTH) += dev-bluetooth.o
-common-obj-$(CONFIG_USB_SMARTCARD) += dev-smartcard-reader.o
+
+ifeq ($(CONFIG_USB_SMARTCARD),y)
+common-obj-y += dev-smartcard-reader.o
+common-obj-y += ccid-card-passthru.o
+common-obj-$(CONFIG_SMARTCARD_NSS) += ccid-card-emulated.o
+endif
# usb redirection
common-obj-$(CONFIG_USB_REDIR) += redirect.o quirks.o
diff --git a/hw/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c
index c8f8ba3792..c8f8ba3792 100644
--- a/hw/ccid-card-emulated.c
+++ b/hw/usb/ccid-card-emulated.c
diff --git a/hw/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c
index 984bd0bf4c..984bd0bf4c 100644
--- a/hw/ccid-card-passthru.c
+++ b/hw/usb/ccid-card-passthru.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index e69de29bb2..ed63495a7f 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -0,0 +1,4 @@
+common-obj-$(CONFIG_VIRTIO) += virtio-rng.o
+common-obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o
+common-obj-$(CONFIG_VIRTIO) += virtio-bus.o
+
diff --git a/hw/virtio-bus.c b/hw/virtio/virtio-bus.c
index 1596a1c92f..1596a1c92f 100644
--- a/hw/virtio-bus.c
+++ b/hw/virtio/virtio-bus.c
diff --git a/hw/virtio-pci.c b/hw/virtio/virtio-pci.c
index 943b429d94..943b429d94 100644
--- a/hw/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
diff --git a/hw/virtio-rng.c b/hw/virtio/virtio-rng.c
index 6079b2a3a9..6079b2a3a9 100644
--- a/hw/virtio-rng.c
+++ b/hw/virtio/virtio-rng.c
diff --git a/hw/watchdog/Makefile.objs b/hw/watchdog/Makefile.objs
index e69de29bb2..f57133b729 100644
--- a/hw/watchdog/Makefile.objs
+++ b/hw/watchdog/Makefile.objs
@@ -0,0 +1,2 @@
+common-obj-y += watchdog.o
+common-obj-$(CONFIG_PCI) += wdt_i6300esb.o
diff --git a/hw/watchdog.c b/hw/watchdog/watchdog.c
index cb4e1f9e47..cb4e1f9e47 100644
--- a/hw/watchdog.c
+++ b/hw/watchdog/watchdog.c
diff --git a/hw/wdt_i6300esb.c b/hw/watchdog/wdt_i6300esb.c
index 1407fbadb2..1407fbadb2 100644
--- a/hw/wdt_i6300esb.c
+++ b/hw/watchdog/wdt_i6300esb.c
diff --git a/hw/xen/Makefile.objs b/hw/xen/Makefile.objs
index e69de29bb2..4b209a7b9a 100644
--- a/hw/xen/Makefile.objs
+++ b/hw/xen/Makefile.objs
@@ -0,0 +1,2 @@
+# xen backend driver support
+common-obj-$(CONFIG_XEN_BACKEND) += xen_backend.o xen_devconfig.o
diff --git a/hw/xen_backend.c b/hw/xen/xen_backend.c
index 2a8c9f5d1a..2a8c9f5d1a 100644
--- a/hw/xen_backend.c
+++ b/hw/xen/xen_backend.c
diff --git a/hw/xen_devconfig.c b/hw/xen/xen_devconfig.c
index fa998eff04..fa998eff04 100644
--- a/hw/xen_devconfig.c
+++ b/hw/xen/xen_devconfig.c