b8e27d19cf99937e404264836c753c999ca8d2cbvboxsync# $Id$
b8e27d19cf99937e404264836c753c999ca8d2cbvboxsync## @file
57a7aeb014cdd1900c8bfecb0f9dcc7b96a61cc9vboxsync# Sub-makefile for VBoxDTrace.
b8e27d19cf99937e404264836c753c999ca8d2cbvboxsync#
0f35a0af8419a03d0f456ff4de479bb547425635vboxsync# Contributed by: bird
b8e27d19cf99937e404264836c753c999ca8d2cbvboxsync#
0f35a0af8419a03d0f456ff4de479bb547425635vboxsync
b8e27d19cf99937e404264836c753c999ca8d2cbvboxsync#
0f35a0af8419a03d0f456ff4de479bb547425635vboxsync# Copyright (C) 2012-2015 Oracle Corporation
b8e27d19cf99937e404264836c753c999ca8d2cbvboxsync#
0f35a0af8419a03d0f456ff4de479bb547425635vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
0f35a0af8419a03d0f456ff4de479bb547425635vboxsync# available from http://www.virtualbox.org. This file is free software;
0f35a0af8419a03d0f456ff4de479bb547425635vboxsync# you can redistribute it and/or modify it under the terms of the Common
0f35a0af8419a03d0f456ff4de479bb547425635vboxsync# Development and Distribution License Version 1.0 (CDDL) only, as it
0f35a0af8419a03d0f456ff4de479bb547425635vboxsync# comes in the "COPYING.CDDL" file of the VirtualBox OSE distribution.
0f35a0af8419a03d0f456ff4de479bb547425635vboxsync# VirtualBox OSE is distributed in the hope that it will be useful, but
0f35a0af8419a03d0f456ff4de479bb547425635vboxsync# WITHOUT ANY WARRANTY of any kind.
b8e27d19cf99937e404264836c753c999ca8d2cbvboxsync#
b8e27d19cf99937e404264836c753c999ca8d2cbvboxsync
b8e27d19cf99937e404264836c753c999ca8d2cbvboxsyncSUB_DEPTH = ../../../../
0f35a0af8419a03d0f456ff4de479bb547425635vboxsyncinclude $(KBUILD_PATH)/subheader.kmk
b8e27d19cf99937e404264836c753c999ca8d2cbvboxsync
57a7aeb014cdd1900c8bfecb0f9dcc7b96a61cc9vboxsync
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync#
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync# Globals.
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync#
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsyncVBOX_EXTPACK_VBOXDTRACE_NAME := Oracle VBoxDTrace Extension Pack
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsyncVBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME := Oracle_VBoxDTrace_Extension_Pack
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsyncVBOX_PATH_EXTPACK_VBOXDTRACE = $(PATH_STAGE)/$(INST_EXTPACK)$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsyncINST_EXTPACK_VBOXDTRACE = $(INST_EXTPACK)$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)/
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync
17e0c71f57a604d26908610a59288adf383506bbvboxsyncVBOXDT_PATH := $(PATH_ROOT)/src/VBox/ExtPacks/VBoxDTrace
17e0c71f57a604d26908610a59288adf383506bbvboxsyncVBOXDT_PATH_ONNV := $(VBOXDT_PATH)/onnv
17e0c71f57a604d26908610a59288adf383506bbvboxsyncVBOXDT_PATH_UTS := $(VBOXDT_PATH_ONNV)/uts
17e0c71f57a604d26908610a59288adf383506bbvboxsyncVBOXDT_PATH_CMD := $(VBOXDT_PATH_ONNV)/cmd
17e0c71f57a604d26908610a59288adf383506bbvboxsyncVBOXDT_PATH_LIBCTF := $(VBOXDT_PATH_ONNV)/lib/libctf
17e0c71f57a604d26908610a59288adf383506bbvboxsyncVBOXDT_PATH_CMN_CTF := $(VBOXDT_PATH_ONNV)/common/ctf
17e0c71f57a604d26908610a59288adf383506bbvboxsyncVBOXDT_PATH_LIBDTRACE := $(VBOXDT_PATH_ONNV)/lib/libdtrace
17e0c71f57a604d26908610a59288adf383506bbvboxsyncVBOXDT_PATH_CMN_DTRACE := $(VBOXDT_PATH_ONNV)/common/dtrace
17e0c71f57a604d26908610a59288adf383506bbvboxsync
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync
474278b33a2f1f88d62bf288b3bfef0721b7f7a7vboxsyncifndef VBOX_ONLY_EXTPACKS
bfa1d26eaead4b1c78fd46a0411c3c10373b9f6bvboxsync #
bfa1d26eaead4b1c78fd46a0411c3c10373b9f6bvboxsync # The generic wrapper that selects native or extpack dtrace cmd and adds our
bfa1d26eaead4b1c78fd46a0411c3c10373b9f6bvboxsync # library path to the command line.
bfa1d26eaead4b1c78fd46a0411c3c10373b9f6bvboxsync #
bfa1d26eaead4b1c78fd46a0411c3c10373b9f6bvboxsync # Note! This is not installed as part of the extension pack, but always shipped
bfa1d26eaead4b1c78fd46a0411c3c10373b9f6bvboxsync # with the base VBox installation.
bfa1d26eaead4b1c78fd46a0411c3c10373b9f6bvboxsync #
bfa1d26eaead4b1c78fd46a0411c3c10373b9f6bvboxsync PROGRAMS += VBoxDTrace
bfa1d26eaead4b1c78fd46a0411c3c10373b9f6bvboxsync VBoxDTrace_TEMPLATE := VBOXR3EXE
bfa1d26eaead4b1c78fd46a0411c3c10373b9f6bvboxsync VBoxDTrace_SOURCES := VBoxDTraceWrapper.cpp
bfa1d26eaead4b1c78fd46a0411c3c10373b9f6bvboxsync VBoxDTrace_LIBS = $(LIB_RUNTIME)
bfa1d26eaead4b1c78fd46a0411c3c10373b9f6bvboxsyncendif
57a7aeb014cdd1900c8bfecb0f9dcc7b96a61cc9vboxsync
57a7aeb014cdd1900c8bfecb0f9dcc7b96a61cc9vboxsync
cb790f6aeaec1afac15f87b7e58653cc6ab53cb1vboxsyncif defined(VBOX_WITH_EXTPACK_VBOXDTRACE) && defined(VBOX_WITH_EXTPACK)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync #
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync # Extend the extension pack templates.
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync #
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync TEMPLATE_VBoxR3ExtPackDTrace = For the ring-3 context modules in the VBoxDTrace extension pack.
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync TEMPLATE_VBoxR3ExtPackDTrace_EXTENDS = VBoxR3ExtPack
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync TEMPLATE_VBoxR3ExtPackDTrace_INST = $(INST_EXTPACK_VBOXDTRACE)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync TEMPLATE_VBoxR0ExtPackDTrace = For the ring-0 context modules in the VBoxDTrace extension pack.
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync TEMPLATE_VBoxR0ExtPackDTrace_EXTENDS = VBoxR0ExtPack
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync TEMPLATE_VBoxR0ExtPackDTrace_INST = $(INST_EXTPACK_VBOXDTRACE)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync TEMPLATE_VBoxInsExtPackDTrace = For the install targets for the VBoxDTrace extension pack.
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync TEMPLATE_VBoxInsExtPackDTrace_EXTENDS = VBoxR0ExtPack
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync TEMPLATE_VBoxInsExtPackDTrace_INST = $(INST_EXTPACK_VBOXDTRACE)
57a7aeb014cdd1900c8bfecb0f9dcc7b96a61cc9vboxsync
57a7aeb014cdd1900c8bfecb0f9dcc7b96a61cc9vboxsync
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync #
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync # Install the description.
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync #
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync INSTALLS += VBoxDTraceIns
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceIns_TEMPLATE = VBoxInsExtPackDTrace
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceIns_SOURCES = \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBoxDTraceIns_0_OUTDIR)/ExtPack.xml \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync COPYING=>ExtPack-SourceCodeLicense.txt
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(call VBOX_EDIT_VERSION_RULE_FN,VBoxDTraceIns,ExtPack.xml)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync #
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync # VBoxDTraceMain - The module which the VirtualBox Main API talks to.
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync #
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync DLLS += VBoxDTraceMain
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceMain_TEMPLATE = VBoxR3ExtPackDTrace
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceMain_SOURCES = VBoxDTraceMain.cpp
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync #
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync # The ring-3 VBoxDTrace command implementation (library).
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync #
5900cb0c638f8c8fec36b2e36ecfb4c391722406vboxsync ifneq ($(KBUILD_TARGET),solaris) # Temporarily disabled on Solaris (not really needed)...
5900cb0c638f8c8fec36b2e36ecfb4c391722406vboxsync DLLS += VBoxDTraceCmd
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceCmd_TEMPLATE = VBoxR3ExtPackDTrace
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceCmd_DEFS = RTMEM_WRAP_TO_EF_APIS
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync #VBoxDTraceCmd_DEFS += YYDEBUG
60d584e12c7de82718fa0228650bfceee34a49f6vboxsync VBoxDTraceCmd_DEFS.linux = _XOPEN_SOURCE=700
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceCmd_SDKS = VBOX_ZLIB
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync ifn1of ($(KBUILD_TARGET), win)
cb790f6aeaec1afac15f87b7e58653cc6ab53cb1vboxsync VBoxDTraceCmd_CFLAGS = -Wno-format $(VBOX_GCC_Wno-overlength-strings) -Wno-sign-compare -Wno-strict-prototypes -Wno-missing-prototypes -Wno-missing-declarations -Wno-shadow
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceCmd_INCS = \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync include \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_UTS)/common \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBCTF)/common \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_CMN_CTF)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceCmd_SOURCES = \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_CMD)/dtrace/dtrace.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_as.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_aggregate.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_buf.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_cc.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_cg.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_consume.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_decl.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_dis.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_dof.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_error.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_handle.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_ident.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_inttab.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_list.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_map.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_module.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_program.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_open.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_options.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_parser.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_pcb.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_pragma.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_printf.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_proc.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_provider.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_regset.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_string.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_strtab.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_subr.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_work.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_xlator.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBoxDTraceCmd_0_OUTDIR)/dt_errtags.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBoxDTraceCmd_0_OUTDIR)/dt_names.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_CMN_CTF)/ctf_create.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_CMN_CTF)/ctf_error.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_CMN_CTF)/ctf_decl.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_CMN_CTF)/ctf_hash.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_CMN_CTF)/ctf_labels.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_CMN_CTF)/ctf_lookup.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_CMN_CTF)/ctf_open.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_CMN_CTF)/ctf_types.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_CMN_CTF)/ctf_util.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBCTF)/common/ctf_subr.c \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBCTF)/common/ctf_lib.c
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync
2db70aa45e27ac0203958d468e274fecd2057167vboxsync # Source not used or wanted:
2db70aa45e27ac0203958d468e274fecd2057167vboxsync # $(VBOXDT_PATH_LIBDTRACE)/common/dt_link.c
2db70aa45e27ac0203958d468e274fecd2057167vboxsync # $(VBOXDT_PATH_LIBDTRACE)/common/dt_pid.c
2db70aa45e27ac0203958d468e274fecd2057167vboxsync
2db70aa45e27ac0203958d468e274fecd2057167vboxsync # Generate sources
2db70aa45e27ac0203958d468e274fecd2057167vboxsync $$(VBoxDTraceCmd_0_OUTDIR)/dt_errtags.c: \
2db70aa45e27ac0203958d468e274fecd2057167vboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_errtags.h \
2db70aa45e27ac0203958d468e274fecd2057167vboxsync $(VBOXDT_PATH_LIBDTRACE)/common/mkerrtags.sed \
2db70aa45e27ac0203958d468e274fecd2057167vboxsync | $$(dir $$@)
2db70aa45e27ac0203958d468e274fecd2057167vboxsync $(MSG_GENERATE,VBoxDTraceCmd,$@,$<)
2db70aa45e27ac0203958d468e274fecd2057167vboxsync $(SED) -n -f $(VBOXDT_PATH_LIBDTRACE)/common/mkerrtags.sed --output $@ $<
2db70aa45e27ac0203958d468e274fecd2057167vboxsync
2db70aa45e27ac0203958d468e274fecd2057167vboxsync $$(VBoxDTraceCmd_0_OUTDIR)/dt_names.c: \
2db70aa45e27ac0203958d468e274fecd2057167vboxsync $(VBOXDT_PATH_UTS)/common/sys/dtrace.h \
2db70aa45e27ac0203958d468e274fecd2057167vboxsync $(VBOXDT_PATH_LIBDTRACE)/common/mknames.sed \
2db70aa45e27ac0203958d468e274fecd2057167vboxsync | $$(dir $$@)
2db70aa45e27ac0203958d468e274fecd2057167vboxsync $(MSG_GENERATE,VBoxDTraceCmd,$@,$<)
2db70aa45e27ac0203958d468e274fecd2057167vboxsync $(SED) -n -f $(VBOXDT_PATH_LIBDTRACE)/common/mknames.sed --output $@ $<
2db70aa45e27ac0203958d468e274fecd2057167vboxsync
17e0c71f57a604d26908610a59288adf383506bbvboxsync ifdef VBOX_HAVE_BISON
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync USES += yacc
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceCmd_USES += yacc
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceCmd_YACCTOOL = BISON
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceCmd_YACCFLAGS = -d -y
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceCmd_SOURCES += \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_grammar.y
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceCmd_INCS += $(VBoxDTraceCmd_0_OUTDIR)/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync else
17e0c71f57a604d26908610a59288adf383506bbvboxsync VBoxDTraceCmd_SOURCES += \
17e0c71f57a604d26908610a59288adf383506bbvboxsync $(VBOXDT_PATH)/generated/dt_grammar.c
17e0c71f57a604d26908610a59288adf383506bbvboxsync VBoxDTraceCmd_INCS += \
17e0c71f57a604d26908610a59288adf383506bbvboxsync $(VBOXDT_PATH)/generated/
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
40a0e67351734096f397117bda4774e5d66abd06vboxsync
17e0c71f57a604d26908610a59288adf383506bbvboxsync ifdef VBOX_HAVE_FLEX
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync USES += lex
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceCmd_USES += lex
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceCmd_LEXTOOL = FLEX
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceCmd_LEXFLAGS = -l -B #-d -T
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceCmd_SOURCES += \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_LIBDTRACE)/common/dt_lex.l
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync else
17e0c71f57a604d26908610a59288adf383506bbvboxsync VBoxDTraceCmd_SOURCES += \
17e0c71f57a604d26908610a59288adf383506bbvboxsync $(VBOXDT_PATH)/generated/dt_lex.c
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
17e0c71f57a604d26908610a59288adf383506bbvboxsync VBoxDTraceCmd_DEFS += USING_FLEX
40a0e67351734096f397117bda4774e5d66abd06vboxsync
17e0c71f57a604d26908610a59288adf383506bbvboxsync #
17e0c71f57a604d26908610a59288adf383506bbvboxsync # Updates the sources generated by flex and biosn.
17e0c71f57a604d26908610a59288adf383506bbvboxsync # The SED processing removes the paths the from #line statements.
17e0c71f57a604d26908610a59288adf383506bbvboxsync #
17e0c71f57a604d26908610a59288adf383506bbvboxsync vboxdtrace-update-generated-sources: \
17e0c71f57a604d26908610a59288adf383506bbvboxsync $$(VBoxDTraceCmd_0_OUTDIR)/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_grammar.c \
17e0c71f57a604d26908610a59288adf383506bbvboxsync $$(VBoxDTraceCmd_0_OUTDIR)/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_grammar.h \
17e0c71f57a604d26908610a59288adf383506bbvboxsync $$(VBoxDTraceCmd_0_OUTDIR)/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_lex.c
17e0c71f57a604d26908610a59288adf383506bbvboxsync $(foreach file,dt_grammar.c dt_grammar.h dt_lex.c \
17e0c71f57a604d26908610a59288adf383506bbvboxsync ,$(NLTAB)$(SED) -e 's,$(VBOXDT_PATH_LIBDTRACE)/common/,,g'\
17e0c71f57a604d26908610a59288adf383506bbvboxsync -e 's,$(VBoxDTraceCmd_0_OUTDIR)/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/,,g' \
17e0c71f57a604d26908610a59288adf383506bbvboxsync --output $(VBOXDT_PATH)/generated/$(file) \
17e0c71f57a604d26908610a59288adf383506bbvboxsync $(VBoxDTraceCmd_0_OUTDIR)/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/$(file))
5900cb0c638f8c8fec36b2e36ecfb4c391722406vboxsync endif # Temporarily disabled on Solaris.
2db70aa45e27ac0203958d468e274fecd2057167vboxsync
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync #
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync # The ring-0 part of VBoxDTrace.
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync #
40d686cc67ad7ada9dfca6b2d6ab9adb4616ea10vboxsync ifneq ($(KBUILD_TARGET),solaris) # disabled on solaris - neiter needed nor currently able to build it here.
40d686cc67ad7ada9dfca6b2d6ab9adb4616ea10vboxsync SYSMODS += VBoxDTraceR0
40d686cc67ad7ada9dfca6b2d6ab9adb4616ea10vboxsync endif
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceR0_TEMPLATE = VBoxR0ExtPackDTrace
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceR0_DEFS = IN_VBOXDTRACE_R0 IN_RT_R0
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync ifeq ($(VBOX_LDR_FMT),elf)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceR0_LDFLAGS = -e ModuleInit
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceR0_INCS = \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync include \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_UTS)/common
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceR0_SOURCES = \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceR0.cpp \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceR0A.asm \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOXDT_PATH_UTS)/common/dtrace/dtrace.c
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceR0_LIBS = \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(PATH_STAGE_LIB)/RuntimeR0$(VBOX_SUFF_LIB)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync ifneq ($(filter pe lx,$(VBOX_LDR_FMT)),)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBoxDTraceR0_LIBS += \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(PATH_STAGE_LIB)/SUPR0$(VBOX_SUFF_LIB)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
b8e27d19cf99937e404264836c753c999ca8d2cbvboxsync
b8e27d19cf99937e404264836c753c999ca8d2cbvboxsync
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync #
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync # Packing.
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync #
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync ifndef VBOX_WITHOUT_EXTPACK_VBOXDTRACE_PACKING
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync PACKING += $(VBOX_PATH_PACKAGES)/$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)-$(VBOX_VERSION_STRING)r$(VBOX_SVN_REV).vbox-extpack
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync ifndef VBOX_WITH_EXTPACK_OS_ARCHS
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync ifeq ($(USER),bird) # for now
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBOX_WITH_EXTPACK_OS_ARCHS = $(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync # Build the file list. The macro takes 1=darwin.x86, 2=dist/VirtualBox.app/Contents/MacOS, 3=dylib
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBOX_VBOXDTRACE_FILES_MACRO = \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(PATH_OUT_BASE)/$(1)/$(KBUILD_TYPE)/$(2)/ExtensionPacks/$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)/$(1)/VBoxDTraceMain.$(3)=>$(1)/VBoxDTraceMain.$(3) \
9fdfcdfc99d975325c0e225e488fa39c59486f44vboxsync $(if $(intersects $1, solaris.x86 solaris.amd64),, \
9fdfcdfc99d975325c0e225e488fa39c59486f44vboxsync $(PATH_OUT_BASE)/$(1)/$(KBUILD_TYPE)/$(2)/ExtensionPacks/$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)/$(1)/VBoxDTraceCmd.$(3)=>$(1)/VBoxDTraceCmd.$(3) \
40d686cc67ad7ada9dfca6b2d6ab9adb4616ea10vboxsync $(PATH_OUT_BASE)/$(1)/$(KBUILD_TYPE)/$(2)/ExtensionPacks/$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)/$(1)/VBoxDTraceR0.r0=>$(1)/VBoxDTraceR0.r0 \
40d686cc67ad7ada9dfca6b2d6ab9adb4616ea10vboxsync )
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBOX_VBOXDTRACE_FILES := \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOX_PATH_EXTPACK_VBOXDTRACE)/ExtPack.xml=>ExtPack.xml \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOX_PATH_EXTPACK_VBOXDTRACE)/ExtPack-SourceCodeLicense.txt=>ExtPack-SourceCodeLicense.txt
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync if1of (darwin.amd64, $(VBOX_WITH_EXTPACK_OS_ARCHS))
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,darwin.amd64,dist/VirtualBox.app/Contents/MacOS,dylib)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync if1of (darwin.x86, $(VBOX_WITH_EXTPACK_OS_ARCHS))
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,darwin.x86,dist/VirtualBox.app/Contents/MacOS,dylib)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync if1of (freebsd.amd64, $(VBOX_WITH_EXTPACK_OS_ARCHS))
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,freebsd.amd64,bin,so)
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync endif
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync if1of (freebsd.x86, $(VBOX_WITH_EXTPACK_OS_ARCHS))
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,freebsd.x86,bin,so)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync if1of (linux.amd64, $(VBOX_WITH_EXTPACK_OS_ARCHS))
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,linux.amd64,bin,so)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync if1of (linux.x86, $(VBOX_WITH_EXTPACK_OS_ARCHS))
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,linux.x86,bin,so)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync if1of (os2.x86, $(VBOX_WITH_EXTPACK_OS_ARCHS))
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,os2.x86,bin,so)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync if1of (solaris.amd64, $(VBOX_WITH_EXTPACK_OS_ARCHS))
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,solaris.amd64,bin,so)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync if1of (solaris.x86, $(VBOX_WITH_EXTPACK_OS_ARCHS))
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,solaris.x86,bin,so)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync if1of (win.amd64, $(VBOX_WITH_EXTPACK_OS_ARCHS))
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,win.amd64,bin,dll)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync if1of (win.x86, $(VBOX_WITH_EXTPACK_OS_ARCHS))
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,win.x86,bin,dll)
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync endif
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync # Pack it all up using a temporary staging directory.
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $(VBOX_PATH_PACKAGES)/$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)-$(VBOX_VERSION_STRING)r$(VBOX_SVN_REV).vbox-extpack: \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync $$(foreach file, $$(VBOX_VBOXDTRACE_FILES), $$(firstword $$(subst =>,$$(SP),$$(file)))) \
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync | $(VBOX_PATH_PACKAGES)/
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync $(RM) -f $(wildcard $(VBOX_PATH_PACKAGES)/$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)-*.vbox-extpack) \
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync $(VBoxDTraceIns_0_OUTDIR)/ExtPack.manifest \
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync $(VBoxDTraceIns_0_OUTDIR)/ExtPack.signature
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync # Stage all the files
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync $(RM) -Rf $(VBoxDTraceIns_0_OUTDIR)/Stage/
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync $(foreach file, $(VBOX_VBOXDTRACE_FILES),\
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync $(NLTAB)$(MKDIR) -p $(dir $(lastword $(subst =>,$(SP)$(VBoxDTraceIns_0_OUTDIR)/Stage/,$(file)))) \
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync $(NLTAB)$(CP) $(subst =>,$(SP)$(VBoxDTraceIns_0_OUTDIR)/Stage/,$(file)) )
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync # Create the manifest
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync $(VBOX_RTMANIFEST) \
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync --manifest $(VBoxDTraceIns_0_OUTDIR)/Stage/ExtPack.manifest \
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync --chdir $(VBoxDTraceIns_0_OUTDIR)/Stage/ \
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync $(foreach file, $(VBOX_VBOXDTRACE_FILES), $(lastword $(subst =>,$(SP),$(file))))
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync $(APPEND) $(VBoxDTraceIns_0_OUTDIR)/Stage/ExtPack.signature "todo"
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync $(CHMOD) a+r \
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync $(VBoxDTraceIns_0_OUTDIR)/Stage/ExtPack.manifest \
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync $(VBoxDTraceIns_0_OUTDIR)/Stage/ExtPack.signature
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync # Tar it up.
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync tar -cvf - -C $(VBoxDTraceIns_0_OUTDIR)/Stage/ . | gzip -9c > $@
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync # Clean up
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync $(RM) -Rf $(VBoxDTraceIns_0_OUTDIR)/Stage/
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsync BLDDIRS += $(VBOX_PATH_PACKAGES)/
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync
c5b4c95c88f89929b940da85d746fc4d487b63cavboxsyncendif # VBOX_WITH_EXTPACK_VBOXDTRACE
f15d62124e1a1e08c506f76b562aaa1f41876403vboxsync
17e0c71f57a604d26908610a59288adf383506bbvboxsync
0f35a0af8419a03d0f456ff4de479bb547425635vboxsyncinclude $(FILE_KBUILD_SUB_FOOTER)
b8e27d19cf99937e404264836c753c999ca8d2cbvboxsync