Makefile.kmk revision 3238841f4d74fd0e37778c270ae81b177a98e21b
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# $Id$
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync## @file
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# Sub-Makefile for the Devices testcases.
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync#
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync#
64904cbef7c0fd8bdd56c7b992f7649870c37ba8vboxsync# Copyright (C) 2006-2007 Sun Microsystems, Inc.
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync#
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# available from http://www.virtualbox.org. This file is free software;
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# you can redistribute it and/or modify it under the terms of the GNU
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# General Public License (GPL) as published by the Free Software
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync#
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# Clara, CA 95054 USA or visit http://www.sun.com if you need
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# additional information or have any questions.
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync#
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncSUB_DEPTH = ../../../..
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncinclude $(KBUILD_PATH)/subheader.kmk
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync#
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync# Globals
1f9898006130eea293505db4e7ff762c5dde2f3avboxsync#
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncVBOX_PATH_DEVICES_SRC ?= $(PATH_ROOT)/src/VBox/Devices
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncVBOX_DEVICES_TEST_OUT_DIR := $(PATH_TARGET)/Devices/testcase
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncBLDDIRS += $(VBOX_DEVICES_TEST_OUT_DIR)
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync#
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# We setup one 'other' target for executing the structure & alignment
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# validation testcases. Perhaps a bit hackish, but extremely useful.
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync#
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncifeq ($(KBUILD_TARGET),$(KBUILD_HOST))
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync ifeq ($(filter-out x86.x86 amd64.amd64 x86.amd64, $(KBUILD_TARGET_ARCH).$(KBUILD_HOST_ARCH)),)
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync OTHERS += \
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync $(VBOX_DEVICES_TEST_OUT_DIR)/tstDeviceStructSize.run
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync endif
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncendif
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# The normal testing pass.
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncTESTING += \
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync $(VBOX_DEVICES_TEST_OUT_DIR)/tstDeviceStructSize.run
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync#
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# The testcase generator.
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync#
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncPROGRAMS += tstDeviceStructSizeGC
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsynctstDeviceStructSizeGC_TEMPLATE = VBOXGCEXE
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsynctstDeviceStructSizeGC_DEFS =
41f8cc7fbc412262dc183a6fc8349f1169edd3d0vboxsyncifdef VBOX_WITH_USB
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsynctstDeviceStructSizeGC_DEFS += VBOX_WITH_USB IN_USB_GC
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncendif
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncifdef VBOX_WITH_AHCI
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsynctstDeviceStructSizeGC_DEFS += VBOX_WITH_AHCI
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncendif
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsyncifdef VBOX_WITH_E1000
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsynctstDeviceStructSizeGC_DEFS += VBOX_WITH_E1000
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncendif
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncifdef VBOX_WITH_VIRTIO
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsynctstDeviceStructSizeGC_DEFS += VBOX_WITH_VIRTIO
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncendif
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncifdef VBOX_WITH_BUSLOGIC
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsynctstDeviceStructSizeGC_DEFS += VBOX_WITH_BUSLOGIC
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncendif
9d6ec5298306cff889de1374fc0c714f42a63307vboxsyncifdef VBOX_WITH_SCSI
b891b477f403c0a8a1eea185f9bc4ef9c99caf2dvboxsynctstDeviceStructSizeGC_DEFS += VBOX_WITH_SCSI
324e9d5fe84f23a35c4feb6853ed3ee9b3b1fad9vboxsyncendif
60468377ea17fdce430870d87a375af4019293bcvboxsyncifdef VBOX_WITH_LSILOGIC
45c462a65387ada09a80826a8413c53e229b15f6vboxsynctstDeviceStructSizeGC_DEFS += VBOX_WITH_LSILOGIC
7dfd3f41f200bede0714c89735d9cc8d310e3f1cvboxsyncendif
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncifdef VBOX_WITH_HPET
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsynctstDeviceStructSizeGC_DEFS += VBOX_WITH_HPET
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncendif
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncifdef VBOX_WITH_HGSMI
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsynctstDeviceStructSizeGC_DEFS += VBOX_WITH_HGSMI
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncendif
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsyncifdef VBOX_WITH_VIDEOHWACCEL
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsynctstDeviceStructSizeGC_DEFS += VBOX_WITH_VIDEOHWACCEL
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncendif
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsynctstDeviceStructSizeGC_SOURCES = tstDeviceStructSizeGC.cpp
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsynctstDeviceStructSizeGC_INCS = \
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync $(VBOX_PATH_DEVICES_SRC) \
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync $(VBOX_PATH_DEVICES_SRC)/Bus \
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync $(VBOX_DEVICES_TEST_OUT_DIR)
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync#
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync# The testcase it self.
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync#
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncPROGRAMS += tstDeviceStructSize
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsynctstDeviceStructSize_TEMPLATE = VBOXR3AUTOTST
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsynctstDeviceStructSize_DEFS =
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncifdef VBOX_WITH_USB
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsynctstDeviceStructSize_DEFS += VBOX_WITH_USB IN_USB_GC
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncendif
54211a0f33e1613ca0f749141ee8ec6fc0ea5c68vboxsyncifdef VBOX_WITH_AHCI
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsynctstDeviceStructSize_DEFS += VBOX_WITH_AHCI
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncendif
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsyncifdef VBOX_WITH_E1000
41f8cc7fbc412262dc183a6fc8349f1169edd3d0vboxsynctstDeviceStructSize_DEFS += VBOX_WITH_E1000
41f8cc7fbc412262dc183a6fc8349f1169edd3d0vboxsyncendif
41f8cc7fbc412262dc183a6fc8349f1169edd3d0vboxsyncifdef VBOX_WITH_VIRTIO
1f9898006130eea293505db4e7ff762c5dde2f3avboxsynctstDeviceStructSize_DEFS += VBOX_WITH_VIRTIO
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsyncendif
e39e9ca944f684a8b310c320b54aa43bbaa072davboxsyncifdef VBOX_WITH_BUSLOGIC
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsynctstDeviceStructSize_DEFS += VBOX_WITH_BUSLOGIC
41f8cc7fbc412262dc183a6fc8349f1169edd3d0vboxsyncendif
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsyncifdef VBOX_WITH_LSILOGIC
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsynctstDeviceStructSize_DEFS += VBOX_WITH_LSILOGIC
1f9898006130eea293505db4e7ff762c5dde2f3avboxsyncendif
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsyncifdef VBOX_WITH_HPET
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsynctstDeviceStructSize_DEFS += VBOX_WITH_HPET
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsyncendif
ed19769af08e55577841c14043bf70dfee870556vboxsyncifdef VBOX_WITH_SMC
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsynctstDeviceStructSize_DEFS += VBOX_WITH_SMC
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsyncendif
1f9898006130eea293505db4e7ff762c5dde2f3avboxsyncifdef VBOX_WITH_LPC
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsynctstDeviceStructSize_DEFS += VBOX_WITH_LPC
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsyncendif
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsyncifdef VBOX_WITH_HGSMI
41f8cc7fbc412262dc183a6fc8349f1169edd3d0vboxsynctstDeviceStructSize_DEFS += VBOX_WITH_HGSMI
41f8cc7fbc412262dc183a6fc8349f1169edd3d0vboxsyncendif
41f8cc7fbc412262dc183a6fc8349f1169edd3d0vboxsyncifdef VBOX_WITH_VIDEOHWACCEL
1f9898006130eea293505db4e7ff762c5dde2f3avboxsynctstDeviceStructSize_DEFS += VBOX_WITH_VIDEOHWACCEL
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsyncendif
e39e9ca944f684a8b310c320b54aa43bbaa072davboxsynctstDeviceStructSize_INCS = \
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync $(VBOX_PATH_DEVICES_SRC) \
41f8cc7fbc412262dc183a6fc8349f1169edd3d0vboxsync $(VBOX_PATH_DEVICES_SRC)/Bus \
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync $(VBOX_DEVICES_TEST_OUT_DIR)
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsynctstDeviceStructSize_SOURCES = tstDeviceStructSize.cpp
1f9898006130eea293505db4e7ff762c5dde2f3avboxsynctstDeviceStructSize_CLEAN = \
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync $(VBOX_DEVICES_TEST_OUT_DIR)/tstDeviceStructSizeGC.h \
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync $(VBOX_DEVICES_TEST_OUT_DIR)/tstDeviceStructSize.run
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsynctstDeviceStructSize.cpp_DEPS = $(VBOX_DEVICES_TEST_OUT_DIR)/tstDeviceStructSizeGC.h
41f8cc7fbc412262dc183a6fc8349f1169edd3d0vboxsync
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync#
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync# Run rule for tstDeviceStructSize.
d62febb39dd135fb36e4a6cc8347a8fbb32740davboxsync#
1f9898006130eea293505db4e7ff762c5dde2f3avboxsync
d62febb39dd135fb36e4a6cc8347a8fbb32740davboxsync# 1. Dump selected structure in the VMMGC.gc debug info.
d62febb39dd135fb36e4a6cc8347a8fbb32740davboxsync# 2. Generate a testcase from the dump
d62febb39dd135fb36e4a6cc8347a8fbb32740davboxsync## future
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# 1&2. Manually dump selected structures and members.
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync$(VBOX_DEVICES_TEST_OUT_DIR)/tstDeviceStructSizeGC.h: $$(INSTARGET_tstDeviceStructSizeGC) | $$(dir $$@)
41f8cc7fbc412262dc183a6fc8349f1169edd3d0vboxsync $(call MSG_GENERATE,,$@)
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync $(QUIET)$(REDIRECT) -wo $@ -- $^
78f04b74aefa851f2b51815a7260b47d5be8c776vboxsync
1f9898006130eea293505db4e7ff762c5dde2f3avboxsync# 3. run it.
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync$(VBOX_DEVICES_TEST_OUT_DIR)/tstDeviceStructSize.run: $$(INSTARGET_tstDeviceStructSize) | $$(dir $$@)
1f9898006130eea293505db4e7ff762c5dde2f3avboxsync $(QUIET)$(RM) -f $@
1f9898006130eea293505db4e7ff762c5dde2f3avboxsync $^
1f9898006130eea293505db4e7ff762c5dde2f3avboxsync $(QUIET)$(APPEND) "$@" "done"
1f9898006130eea293505db4e7ff762c5dde2f3avboxsync
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync# alias for the struct test.
41f8cc7fbc412262dc183a6fc8349f1169edd3d0vboxsyncrun-struct-tests: $(VBOX_DEVICES_TEST_OUT_DIR)/tstDeviceStructSize.run
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync
65c72795ab90d3daefa759b716fbb5c6352c7a56vboxsync
41f8cc7fbc412262dc183a6fc8349f1169edd3d0vboxsyncinclude $(KBUILD_PATH)/subfooter.kmk
41f8cc7fbc412262dc183a6fc8349f1169edd3d0vboxsync
41f8cc7fbc412262dc183a6fc8349f1169edd3d0vboxsync