Makefile.kmk revision 5763f13421bf47d142d5165590170a5d991daede
4e8732935d428b2a70151b178a95cbba5d3839f5wrowe# $Id$
19d8729755d7f4d9503029a628dacbbdabcd2264wrowe## @file
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# Sub-Makefile for the IPRT testcases.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding#
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding#
4e8732935d428b2a70151b178a95cbba5d3839f5wrowe# Copyright (C) 2006-2007 Sun Microsystems, Inc.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding#
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# This file is part of VirtualBox Open Source Edition (OSE), as
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# available from http://www.virtualbox.org. This file is free software;
4e8732935d428b2a70151b178a95cbba5d3839f5wrowe# you can redistribute it and/or modify it under the terms of the GNU
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# General Public License (GPL) as published by the Free Software
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# Foundation, in version 2 as it comes in the "COPYING" file of the
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
4e8732935d428b2a70151b178a95cbba5d3839f5wrowe#
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# The contents of this file may alternatively be used under the terms
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# of the Common Development and Distribution License Version 1.0
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# (CDDL) only, as it comes in the "COPYING.CDDL" file of the
4e8732935d428b2a70151b178a95cbba5d3839f5wrowe# VirtualBox OSE distribution, in which case the provisions of the
4e8732935d428b2a70151b178a95cbba5d3839f5wrowe# CDDL are applicable instead of those of the GPL.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding#
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# You may elect to license modified versions of this file under the
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# terms and conditions of either the GPL or the CDDL or both.
19d8729755d7f4d9503029a628dacbbdabcd2264wrowe#
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# Clara, CA 95054 USA or visit http://www.sun.com if you need
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# additional information or have any questions.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding#
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingifdef VBOX_KBUILD_HACKING
4e8732935d428b2a70151b178a95cbba5d3839f5wroweSUB_DEPTH = ../../../..
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingelse
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingSUB_DEPTH = ..
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingDEPTH ?= ../../../..
9ec65cbae2f760e485a1c54df5b19853688d5c91wroweendif
9ec65cbae2f760e485a1c54df5b19853688d5c91wroweinclude $(KBUILD_PATH)/subheader.kmk
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingifdef VBOX_WITH_TESTCASES
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe#
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe# Globals
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding#
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# WARNING: Careful with this wrt to the other sub-makefiles this joins.
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe#
0bcc003d275c6b0a9060d43be89762b218cbc2c7wroweTEMPLATE = VBOXR3TSTEXE
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
4439ba95daf7b82794fe338726790e2dab89d119wrowe#
4439ba95daf7b82794fe338726790e2dab89d119wrowe# Target lists
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding#
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingPROGRAMS += \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstAvl \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstBitOperations \
0bcc003d275c6b0a9060d43be89762b218cbc2c7wrowe tstCidr \
0bcc003d275c6b0a9060d43be89762b218cbc2c7wrowe tstCritSect \
0bcc003d275c6b0a9060d43be89762b218cbc2c7wrowe tstDeadlock \
0bcc003d275c6b0a9060d43be89762b218cbc2c7wrowe tstDir \
0bcc003d275c6b0a9060d43be89762b218cbc2c7wrowe tstDir-2 \
0bcc003d275c6b0a9060d43be89762b218cbc2c7wrowe tstEnv \
f1a6b66f00bc686cd247d727dfcc35eeaa58b535wrowe tstErrUnique \
0bcc003d275c6b0a9060d43be89762b218cbc2c7wrowe tstFile \
f1a6b66f00bc686cd247d727dfcc35eeaa58b535wrowe tstFileLock \
0bcc003d275c6b0a9060d43be89762b218cbc2c7wrowe tstGetOpt \
0bcc003d275c6b0a9060d43be89762b218cbc2c7wrowe tstHeapSimple \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstInlineAsm \
4e8732935d428b2a70151b178a95cbba5d3839f5wrowe tstLdr \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstLdr-2 \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstLdr-3 \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstLdr-4 \
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe tstLdrLoad \
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe tstLog \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstMove \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstMp-1 \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstNoCrt-1 \
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe tstPath \
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe tstPrfRT \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstRTFsQueries \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstStrFormat \
26b9ccb55ff33097af4914f2e4bd36fec99a039dwrowe tstStrToNum \
0bcc003d275c6b0a9060d43be89762b218cbc2c7wrowe tstTime \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstTime-2 \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstTime-3 \
4439ba95daf7b82794fe338726790e2dab89d119wrowe tstTime-4 \
4439ba95daf7b82794fe338726790e2dab89d119wrowe tstTimer \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstTimeSpec \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstTSC \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstUtf8 \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstUuid
0bcc003d275c6b0a9060d43be89762b218cbc2c7wrowe# tstSems
0bcc003d275c6b0a9060d43be89762b218cbc2c7wrowePROGRAMS.win += \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstRTProcWait \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstCritSectW32 \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstFileAppendWin-1 \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding ntGetTimerResolution
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingPROGRAMS.linux += \
4e8732935d428b2a70151b178a95cbba5d3839f5wrowe tstRTProcWait \
4e8732935d428b2a70151b178a95cbba5d3839f5wrowe tstBitOperationsPIC3 \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstInlineAsmPIC \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding tstInlineAsmPIC3 \
990e1969a428b8844e07aad088df41340cd009d4wrowe tstSemMutex
4439ba95daf7b82794fe338726790e2dab89d119wrowePROGRAMS.l4 += \
4439ba95daf7b82794fe338726790e2dab89d119wrowe tstIoCtl
4439ba95daf7b82794fe338726790e2dab89d119wroweSYSMODS += \
4439ba95daf7b82794fe338726790e2dab89d119wrowe tstLdrObj \
4439ba95daf7b82794fe338726790e2dab89d119wrowe tstLdrObjR0
4439ba95daf7b82794fe338726790e2dab89d119wroweif1of ($(VBOX_LDR_FMT)), lx pe)
4439ba95daf7b82794fe338726790e2dab89d119wroweLIBRARIES += \
4439ba95daf7b82794fe338726790e2dab89d119wrowe tstLdr-4Imp
4439ba95daf7b82794fe338726790e2dab89d119wroweendif
4439ba95daf7b82794fe338726790e2dab89d119wrowe
4439ba95daf7b82794fe338726790e2dab89d119wrowe
4439ba95daf7b82794fe338726790e2dab89d119wrowe
4439ba95daf7b82794fe338726790e2dab89d119wrowe#
4439ba95daf7b82794fe338726790e2dab89d119wrowe# Target configs in almost alphabetical order.
4439ba95daf7b82794fe338726790e2dab89d119wrowe#
4439ba95daf7b82794fe338726790e2dab89d119wrowe
4e37bfe24d9ab0f4dc6e3a76c9ec2bc4231a61b8wrowetstAvl_SOURCES = tstAvl.cpp
4439ba95daf7b82794fe338726790e2dab89d119wrowe
4439ba95daf7b82794fe338726790e2dab89d119wrowetstBitOperations_TEMPLATE = VBOXR3TSTEXE
4439ba95daf7b82794fe338726790e2dab89d119wrowetstBitOperations_SOURCES = tstBitOperations.cpp
4439ba95daf7b82794fe338726790e2dab89d119wrowe
4439ba95daf7b82794fe338726790e2dab89d119wrowetstBitOperationsPIC3_SOURCES = tstBitOperations.cpp
4439ba95daf7b82794fe338726790e2dab89d119wrowetstBitOperationsPIC3_CXXFLAGS = -fPIC -fomit-frame-pointer -O3
4439ba95daf7b82794fe338726790e2dab89d119wrowetstBitOperationsPIC3_DEFS = PIC
4439ba95daf7b82794fe338726790e2dab89d119wrowe
4439ba95daf7b82794fe338726790e2dab89d119wrowetstCidr_SOURCES = tstCidr.cpp
4439ba95daf7b82794fe338726790e2dab89d119wrowe
4e37bfe24d9ab0f4dc6e3a76c9ec2bc4231a61b8wrowetstCritSect_SOURCES = tstCritSect.cpp
4439ba95daf7b82794fe338726790e2dab89d119wrowe
4439ba95daf7b82794fe338726790e2dab89d119wrowetstCritSectW32_SOURCES = tstCritSect.cpp
4439ba95daf7b82794fe338726790e2dab89d119wrowetstCritSectW32_DEFS = TRY_WIN32_CRIT
4439ba95daf7b82794fe338726790e2dab89d119wrowe
4439ba95daf7b82794fe338726790e2dab89d119wrowetstDeadlock_SOURCES = tstDeadlock.cpp
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingtstDir_SOURCES = tstDir.cpp
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
tstDir-2_SOURCES = tstDir-2.cpp
tstEnv_SOURCES = tstEnv.cpp
# Note: tstErrUnique.cpp depends on a header generated by the makefile above us.
tstErrUnique_SOURCES = tstErrUnique.cpp
tstErrUnique_INCS = $(PATH_TARGET)/
tstErrUnique.cpp_DEPS = $(PATH_TARGET)/errmsgdata.h
tstFile_SOURCES = tstFile.cpp
tstFileAppendWin-1_SOURCES = tstFileAppendWin-1.cpp
tstFileLock_SOURCES = tstFileLock.cpp
tstGetOpt_SOURCES = tstGetOpt.cpp
tstHeapSimple_SOURCES = tstHeapSimple.cpp
tstIoCtl_SOURCES = tstIoCtl.cpp
tstInlineAsm_SOURCES = tstInlineAsm.cpp
tstInlineAsmPIC_SOURCES = tstInlineAsm.cpp
tstInlineAsmPIC_CXXFLAGS = -fPIC
tstInlineAsmPIC_DEFS = PIC
tstInlineAsmPIC3_SOURCES = tstInlineAsm.cpp
tstInlineAsmPIC3_CXXFLAGS = -fPIC -fomit-frame-pointer -O3
tstInlineAsmPIC3_DEFS = PIC
tstLdr_SOURCES = tstLdr.cpp
tstLdr-2_SOURCES = tstLdr-2.cpp
tstLdr-2_DEFS = IN_DIS_R3
tstLdr-2_LIBS = \
$(PATH_LIB)/DisasmR3$(VBOX_SUFF_LIB)
tstLdrObj_TEMPLATE = VBOXGC
tstLdrObj_INST = $(INST_TESTCASE)
tstLdrObj_SYSSUFF = .gc
tstLdrObj_SOURCES = tstLdrObj.cpp
tstLdrObj_DEFS = IN_DIS_GC IN_RT_GC DIS_CORE_ONLY
ifeq ($(VBOX_LDR_FMT32),elf)
tstLdrObj_DEFS += VBOX_SOME_IMPORT_FUNCTION
endif
tstLdrObj_LIBS = \
$(PATH_LIB)/DisasmGC$(VBOX_SUFF_LIB) \
$(PATH_LIB)/RuntimeGC$(VBOX_SUFF_LIB)
ifeq ($(VBOX_LDR_FMT32),pe)
tstLdrObj_LDFLAGS = -Entry:Entrypoint
tstLdrObj_LIBS += \
$(PATH_LIB)/VMMGCBuiltin$(VBOX_SUFF_LIB)
endif # PE
ifeq ($(VBOX_LDR_FMT32),elf)
tstLdrObj_LDFLAGS = -e Entrypoint
endif
ifeq ($(VBOX_LDR_FMT32),lx)
tstLdrObj_LIBS += \
$(PATH_LIB)/VMMGCBuiltin$(VBOX_SUFF_LIB)
endif
tstLdr-3_SOURCES = tstLdr-3.cpp
tstLdr-3_DEFS = IN_DIS_R3
tstLdr-3_LIBS = \
$(PATH_LIB)/DisasmR3$(VBOX_SUFF_LIB)
tstLdr-4Imp_TEMPLATE = VBOXR0
ifeq ($(VBOX_LDR_FMT),lx)
tstLdr-4Imp_SOURCES = tstLdr-4Imp-os2.def
else ifeq ($(VBOX_LDR_FMT),pe)
tstLdr-4Imp_SOURCES.win = tstLdr-4Imp-win.def
endif
tstLdrObjR0_TEMPLATE = VBOXR0
tstLdrObjR0_INST = $(INST_TESTCASE)
tstLdrObjR0_SYSSUFF = .r0
tstLdrObjR0_SOURCES = tstLdrObjR0.cpp tstLdrDisasmTest.cpp
tstLdrObjR0_DEFS = IN_DIS_R0 IN_RT_R0 DIS_CORE_ONLY
ifeq ($(VBOX_LDR_FMT32),elf)
tstLdrObjR0_DEFS += VBOX_SOME_IMPORT_FUNCTION
endif
tstLdrObjR0_LIBS = \
$(PATH_LIB)/DisasmR0$(VBOX_SUFF_LIB) \
$(PATH_LIB)/RuntimeR0$(VBOX_SUFF_LIB)
ifeq ($(VBOX_LDR_FMT),pe)
tstLdrObjR0_LDFLAGS = -Entry:Entrypoint
tstLdrObjR0_LIBS += \
$(PATH_LIB)/SUPR0$(VBOX_SUFF_LIB) \
$(TARGET_tstLdr-4Imp)
endif
ifeq ($(VBOX_LDR_FMT),elf)
tstLdrObjR0_LDFLAGS = -e Entrypoint
endif
ifeq ($(VBOX_LDR_FMT),lx)
tstLdrObjR0_LIBS += \
$(PATH_LIB)/SUPR0$(VBOX_SUFF_LIB) \
$(TARGET_tstLdr-4Imp)
endif
tstLdr-4_SOURCES = tstLdr-4.cpp tstLdrDisasmTest.cpp
tstLdr-4_DEFS = IN_DIS_R3
tstLdr-4_LIBS = \
$(PATH_LIB)/DisasmR3$(VBOX_SUFF_LIB)
tstLdrLoad_SOURCES = tstLdrLoad.cpp
tstLog_SOURCES = tstLog.cpp
tstMove_SOURCES = tstMove.cpp
tstMp-1_SOURCES = tstMp-1.cpp
tstNoCrt-1_DEFS = RT_WITHOUT_NOCRT_WRAPPER_ALIASES
tstNoCrt-1_SOURCES = \
tstNoCrt-1.cpp \
../common/string/memcpy.asm \
../common/string/mempcpy.asm \
../common/string/memmove.asm \
../common/string/memset.asm \
../common/string/memchr.asm \
../common/string/memcmp.asm \
../common/string/strchr.asm \
../common/string/strcmp.asm \
../common/string/strlen.asm
tstPath_SOURCES = tstPath.cpp
tstPrfRT_SOURCES = tstPrfRT.cpp
tstRTFsQueries_SOURCES = tstRTFsQueries.cpp
tstRTProcWait_SOURCES = tstRTProcWait.cpp
tstSemMutex_SOURCES = tstSemMutex.cpp
tstSems_SOURCES = tstSems.cpp
tstStrFormat_SOURCES = tstStrFormat.cpp
tstStrToNum_SOURCES = tstStrToNum.cpp
tstTime_SOURCES = tstTime.cpp
tstTime-2_SOURCES = tstTime-2.cpp
tstTime-3_SOURCES = tstTime-3.cpp
tstTime-4_SOURCES = tstTime-4.cpp
tstTimer_SOURCES = tstTimer.cpp
tstTimeSpec_SOURCES = tstTimeSpec.cpp
tstTSC_SOURCES = tstTSC.cpp
tstTSC_CXXFLAGS.linux += -O3
tstUuid_SOURCES = tstUuid.cpp
tstUtf8_SOURCES = tstUtf8.cpp
ntGetTimerResolution_SOURCES = ntGetTimerResolution.cpp
ntGetTimerResolution_SDKS.win = WINPSDK W2K3DDK VBOX_NTDLL
endif # VBOX_WITH_TESTCASES
include $(KBUILD_PATH)/subfooter.kmk