# $Id: Makefile.kmk 53974 2015-01-27 17:50:17Z vboxsync $ ## @file # Sub-makefile for VBoxDTrace. # # Contributed by: bird # # # Copyright (C) 2012-2015 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; # you can redistribute it and/or modify it under the terms of the Common # Development and Distribution License Version 1.0 (CDDL) only, as it # comes in the "COPYING.CDDL" file of the VirtualBox OSE distribution. # VirtualBox OSE is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY of any kind. # SUB_DEPTH = ../../../../ include $(KBUILD_PATH)/subheader.kmk # # The generic wrapper that selects native or extpack dtrace cmd and adds our # library path to the command line. # # Note! This is not installed as part of the extension pack, but always shipped # with the base VBox installation. # PROGRAMS += VBoxDTrace VBoxDTrace_TEMPLATE := VBOXR3EXE VBoxDTrace_SOURCES := VBoxDTraceWrapper.cpp VBoxDTrace_LIBS = $(LIB_RUNTIME) # # Install the description. # INSTALLS += VBoxDTraceIns VBoxDTraceIns_TEMPLATE = VBoxInsExtPackDTrace VBoxDTraceIns_SOURCES = \ $(VBoxDTraceIns_0_OUTDIR)/ExtPack.xml \ COPYING=>ExtPack-SourceCodeLicense.txt $(call VBOX_EDIT_VERSION_RULE_FN,VBoxDTraceIns,ExtPack.xml) # # The ring-3 VBoxDTrace command implementation (library). # DLLS += VBoxDTraceCmd VBoxDTraceCmd_TEMPLATE = VBoxR3ExtPackDTrace VBoxDTraceCmd_DEFS = RTMEM_WRAP_TO_EF_APIS #VBoxDTraceCmd_DEFS += YYDEBUG VBoxDTraceCmd_SDKS = VBOX_ZLIB ifn1of ($(KBUILD_TARGET), win) VBoxDTraceCmd_CFLAGS = -Wno-format -Wno-overlength-strings -Wno-sign-compare -Wno-strict-prototypes -Wno-missing-prototypes -Wno-missing-declarations -Wno-shadow endif VBoxDTraceCmd_INCS = \ include \ $(VBOXDT_PATH_UTS)/common \ $(VBOXDT_PATH_LIBCTF)/common \ $(VBOXDT_PATH_LIBDTRACE)/common \ $(VBOXDT_PATH_CMN_CTF) VBoxDTraceCmd_SOURCES = \ $(VBOXDT_PATH_CMD)/dtrace/dtrace.c \ \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_as.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_aggregate.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_buf.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_cc.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_cg.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_consume.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_decl.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_dis.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_dof.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_error.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_handle.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_ident.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_inttab.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_list.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_map.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_module.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_program.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_open.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_options.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_parser.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_pcb.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_pragma.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_printf.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_proc.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_provider.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_regset.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_string.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_strtab.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_subr.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_work.c \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_xlator.c \ \ $(VBoxDTraceCmd_0_OUTDIR)/dt_errtags.c \ $(VBoxDTraceCmd_0_OUTDIR)/dt_names.c \ \ $(VBOXDT_PATH_CMN_CTF)/ctf_create.c \ $(VBOXDT_PATH_CMN_CTF)/ctf_error.c \ $(VBOXDT_PATH_CMN_CTF)/ctf_decl.c \ $(VBOXDT_PATH_CMN_CTF)/ctf_hash.c \ $(VBOXDT_PATH_CMN_CTF)/ctf_labels.c \ $(VBOXDT_PATH_CMN_CTF)/ctf_lookup.c \ $(VBOXDT_PATH_CMN_CTF)/ctf_open.c \ $(VBOXDT_PATH_CMN_CTF)/ctf_types.c \ $(VBOXDT_PATH_CMN_CTF)/ctf_util.c \ \ $(VBOXDT_PATH_LIBCTF)/common/ctf_subr.c \ $(VBOXDT_PATH_LIBCTF)/common/ctf_lib.c if 1 USES += yacc VBoxDTraceCmd_USES += yacc VBoxDTraceCmd_YACCTOOL = BISON VBoxDTraceCmd_YACCFLAGS = -d -y VBoxDTraceCmd_SOURCES += \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_grammar.y VBoxDTraceCmd_INCS += $(VBoxDTraceCmd_0_OUTDIR)/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common else # TODO: generate these. endif if 1 USES += lex VBoxDTraceCmd_USES += lex VBoxDTraceCmd_LEXTOOL = FLEX VBoxDTraceCmd_LEXFLAGS = -l -B #-d -T VBoxDTraceCmd_DEFS += USING_FLEX VBoxDTraceCmd_SOURCES += \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_lex.l else # TODO: generate this. endif VBoxDTraceCmd_LIBS = \ $(LIB_RUNTIME) # Generate sources $$(VBoxDTraceCmd_0_OUTDIR)/dt_errtags.c: \ $(VBOXDT_PATH_LIBDTRACE)/common/dt_errtags.h \ $(VBOXDT_PATH_LIBDTRACE)/common/mkerrtags.sed \ | $$(dir $$@) $(MSG_GENERATE,VBoxDTraceCmd,$@,$<) $(SED) -n -f $(VBOXDT_PATH_LIBDTRACE)/common/mkerrtags.sed --output $@ $< $$(VBoxDTraceCmd_0_OUTDIR)/dt_names.c: \ $(VBOXDT_PATH_UTS)/common/sys/dtrace.h \ $(VBOXDT_PATH_LIBDTRACE)/common/mknames.sed \ | $$(dir $$@) $(MSG_GENERATE,VBoxDTraceCmd,$@,$<) $(SED) -n -f $(VBOXDT_PATH_LIBDTRACE)/common/mknames.sed --output $@ $< # # Source not used or wanted: \ # $(VBOXDT_PATH_LIBDTRACE)/common/dt_link.c # $(VBOXDT_PATH_LIBDTRACE)/common/dt_pid.c # # # The ring-0 part of VBoxDTrace. # SYSMODS += VBoxDTraceR0 VBoxDTraceR0_TEMPLATE = VBoxR0ExtPackDTrace VBoxDTraceR0_DEFS = IN_VBOXDTRACE_R0 IN_RT_R0 ifeq ($(VBOX_LDR_FMT),elf) VBoxDTraceR0_LDFLAGS = -e ModuleInit endif VBoxDTraceR0_INCS = \ include \ $(VBOXDT_PATH_UTS)/common VBoxDTraceR0_SOURCES = \ VBoxDTraceR0.cpp \ VBoxDTraceR0A.asm \ $(VBOXDT_PATH_UTS)/common/dtrace/dtrace.c VBoxDTraceR0_LIBS = \ $(PATH_STAGE_LIB)/RuntimeR0$(VBOX_SUFF_LIB) ifneq ($(filter pe lx,$(VBOX_LDR_FMT)),) VBoxDTraceR0_LIBS += \ $(PATH_STAGE_LIB)/SUPR0$(VBOX_SUFF_LIB) endif include $(FILE_KBUILD_SUB_FOOTER)