1 | # $Id: Makefile.kmk 84540 2020-05-26 15:06:13Z vboxsync $
|
---|
2 | ## @file
|
---|
3 | # Sub-makefile for VBoxDTrace.
|
---|
4 | #
|
---|
5 | # Contributed by: bird
|
---|
6 | #
|
---|
7 |
|
---|
8 | #
|
---|
9 | # Copyright (C) 2012-2020 Oracle Corporation
|
---|
10 | #
|
---|
11 | # This file is part of VirtualBox Open Source Edition (OSE), as
|
---|
12 | # available from http://www.virtualbox.org. This file is free software;
|
---|
13 | # you can redistribute it and/or modify it under the terms of the Common
|
---|
14 | # Development and Distribution License Version 1.0 (CDDL) only, as it
|
---|
15 | # comes in the "COPYING.CDDL" file of the VirtualBox OSE distribution.
|
---|
16 | # VirtualBox OSE is distributed in the hope that it will be useful, but
|
---|
17 | # WITHOUT ANY WARRANTY of any kind.
|
---|
18 | #
|
---|
19 |
|
---|
20 | SUB_DEPTH = ../../../../
|
---|
21 | include $(KBUILD_PATH)/subheader.kmk
|
---|
22 |
|
---|
23 |
|
---|
24 | #
|
---|
25 | # Globals.
|
---|
26 | #
|
---|
27 | VBOX_EXTPACK_VBOXDTRACE_NAME := Oracle VBoxDTrace Extension Pack
|
---|
28 | VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME := Oracle_VBoxDTrace_Extension_Pack
|
---|
29 | VBOX_PATH_EXTPACK_VBOXDTRACE = $(PATH_STAGE)/$(INST_EXTPACK)$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)
|
---|
30 | INST_EXTPACK_VBOXDTRACE = $(INST_EXTPACK)$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)/
|
---|
31 |
|
---|
32 | VBOXDT_PATH := $(PATH_ROOT)/src/VBox/ExtPacks/VBoxDTrace
|
---|
33 | VBOXDT_PATH_ONNV := $(VBOXDT_PATH)/onnv
|
---|
34 | VBOXDT_PATH_UTS := $(VBOXDT_PATH_ONNV)/uts
|
---|
35 | VBOXDT_PATH_CMD := $(VBOXDT_PATH_ONNV)/cmd
|
---|
36 | VBOXDT_PATH_LIBCTF := $(VBOXDT_PATH_ONNV)/lib/libctf
|
---|
37 | VBOXDT_PATH_CMN_CTF := $(VBOXDT_PATH_ONNV)/common/ctf
|
---|
38 | VBOXDT_PATH_LIBDTRACE := $(VBOXDT_PATH_ONNV)/lib/libdtrace
|
---|
39 | VBOXDT_PATH_CMN_DTRACE := $(VBOXDT_PATH_ONNV)/common/dtrace
|
---|
40 |
|
---|
41 |
|
---|
42 | ifndef VBOX_ONLY_EXTPACKS
|
---|
43 | #
|
---|
44 | # The generic wrapper that selects native or extpack dtrace cmd and adds our
|
---|
45 | # library path to the command line.
|
---|
46 | #
|
---|
47 | # Note! This is not installed as part of the extension pack, but always shipped
|
---|
48 | # with the base VBox installation.
|
---|
49 | #
|
---|
50 | PROGRAMS += VBoxDTrace
|
---|
51 | VBoxDTrace_TEMPLATE := VBOXR3EXE
|
---|
52 | VBoxDTrace_SOURCES := VBoxDTraceWrapper.cpp
|
---|
53 | VBoxDTrace_LIBS = $(LIB_RUNTIME)
|
---|
54 | $(call VBOX_SET_VER_INFO_DLL,VBoxDTrace,VirtualBox DTrace Chooser)
|
---|
55 | endif
|
---|
56 |
|
---|
57 |
|
---|
58 | if defined(VBOX_WITH_EXTPACK_VBOXDTRACE) && defined(VBOX_WITH_EXTPACK)
|
---|
59 |
|
---|
60 | #
|
---|
61 | # Extend the extension pack templates.
|
---|
62 | #
|
---|
63 | TEMPLATE_VBoxR3ExtPackDTrace = For the ring-3 context modules in the VBoxDTrace extension pack.
|
---|
64 | TEMPLATE_VBoxR3ExtPackDTrace_EXTENDS = VBoxR3ExtPack
|
---|
65 | TEMPLATE_VBoxR3ExtPackDTrace_INST = $(INST_EXTPACK_VBOXDTRACE)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/
|
---|
66 | TEMPLATE_VBoxR3ExtPackDTrace_DEFS = $(TEMPLATE_VBoxR3ExtPack_DEFS) VBOX_IN_DTRACE_EXTPACK
|
---|
67 | if "$(VBOX_VCC_TOOL_STEM)" >= "VCC140"
|
---|
68 | # -wd4456: declaration of 'rval' hides previous local declaration
|
---|
69 | # -wd4477: 'fprintf' : format string '%02lu' requires an argument of type 'unsigned long', but variadic argument 1 has type 'ulong_t'
|
---|
70 | # -wd4457: warning C4457: declaration of 'arg' hides function parameter
|
---|
71 | TEMPLATE_VBoxR3ExtPackDTrace_CFLAGS.win = $(TEMPLATE_VBoxR3ExtPack_CFLAGS.win) -wd4456 -wd4477 -wd4457
|
---|
72 | endif
|
---|
73 |
|
---|
74 | TEMPLATE_VBoxR0ExtPackDTrace = For the ring-0 context modules in the VBoxDTrace extension pack.
|
---|
75 | TEMPLATE_VBoxR0ExtPackDTrace_EXTENDS = VBoxR0ExtPack
|
---|
76 | TEMPLATE_VBoxR0ExtPackDTrace_INST = $(INST_EXTPACK_VBOXDTRACE)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/
|
---|
77 | TEMPLATE_VBoxR0ExtPackDTrace_DEFS = $(TEMPLATE_VBoxR0ExtPack_DEFS) VBOX_IN_DTRACE_EXTPACK
|
---|
78 |
|
---|
79 | TEMPLATE_VBoxInsExtPackDTrace = For the install targets for the VBoxDTrace extension pack.
|
---|
80 | TEMPLATE_VBoxInsExtPackDTrace_EXTENDS = VBoxR0ExtPack
|
---|
81 | TEMPLATE_VBoxInsExtPackDTrace_INST = $(INST_EXTPACK_VBOXDTRACE)
|
---|
82 |
|
---|
83 |
|
---|
84 | #
|
---|
85 | # Install the description.
|
---|
86 | #
|
---|
87 | INSTALLS += VBoxDTraceIns
|
---|
88 | VBoxDTraceIns_TEMPLATE = VBoxInsExtPackDTrace
|
---|
89 | VBoxDTraceIns_SOURCES = \
|
---|
90 | $(VBoxDTraceIns_0_OUTDIR)/ExtPack.xml \
|
---|
91 | COPYING=>ExtPack-SourceCodeLicense.txt
|
---|
92 | $(call VBOX_EDIT_VERSION_RULE_FN,VBoxDTraceIns,ExtPack.xml)
|
---|
93 |
|
---|
94 |
|
---|
95 | #
|
---|
96 | # VBoxDTraceMain - The module which the VirtualBox Main API talks to.
|
---|
97 | #
|
---|
98 | DLLS += VBoxDTraceMain
|
---|
99 | VBoxDTraceMain_TEMPLATE = VBoxR3ExtPackDTrace
|
---|
100 | VBoxDTraceMain_SOURCES = VBoxDTraceMain.cpp
|
---|
101 | $(call VBOX_SET_VER_INFO_DLL,VBoxDTraceMain,VBoxDTrace Main module)
|
---|
102 |
|
---|
103 |
|
---|
104 | #
|
---|
105 | # The ring-3 VBoxDTrace command implementation (library).
|
---|
106 | #
|
---|
107 | ifneq ($(KBUILD_TARGET),solaris) # Temporarily disabled on Solaris (not really needed)...
|
---|
108 | DLLS += VBoxDTraceCmd
|
---|
109 | VBoxDTraceCmd_TEMPLATE = VBoxR3ExtPackDTrace
|
---|
110 | ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING
|
---|
111 | VBoxDTraceCmd_DEFS = RTMEM_WRAP_TO_EF_APIS VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME="$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)"
|
---|
112 | else
|
---|
113 | VBoxDTraceCmd_DEFS = RTMEM_WRAP_TO_EF_APIS VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME=\"$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)\"
|
---|
114 | endif
|
---|
115 | #VBoxDTraceCmd_DEFS += YYDEBUG
|
---|
116 | VBoxDTraceCmd_DEFS.linux = _XOPEN_SOURCE=700 _LARGEFILE64_SOURCE
|
---|
117 | VBoxDTraceCmd_DEFS.win = YY_USE_PROTOS=1 YYENABLE_NLS=0 YYLTYPE_IS_TRIVIAL=0
|
---|
118 | VBoxDTraceCmd_SDKS = VBOX_ZLIB
|
---|
119 | ifn1of ($(KBUILD_TARGET), win)
|
---|
120 | VBoxDTraceCmd_CFLAGS = -Wno-format $(VBOX_GCC_Wno-overlength-strings) -Wno-sign-compare -Wno-strict-prototypes -Wno-missing-prototypes -Wno-missing-declarations -Wno-shadow
|
---|
121 | endif
|
---|
122 | VBoxDTraceCmd_INCS = \
|
---|
123 | include \
|
---|
124 | $(VBOXDT_PATH_UTS)/common \
|
---|
125 | $(VBOXDT_PATH_LIBCTF)/common \
|
---|
126 | $(VBOXDT_PATH_LIBDTRACE)/common \
|
---|
127 | $(VBOXDT_PATH_CMN_CTF)
|
---|
128 | VBoxDTraceCmd_SOURCES = \
|
---|
129 | $(VBOXDT_PATH_CMD)/dtrace/dtrace.c \
|
---|
130 | \
|
---|
131 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_as.c \
|
---|
132 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_aggregate.c \
|
---|
133 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_buf.c \
|
---|
134 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_cc.c \
|
---|
135 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_cg.c \
|
---|
136 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_consume.c \
|
---|
137 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_decl.c \
|
---|
138 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_dis.c \
|
---|
139 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_dof.c \
|
---|
140 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_error.c \
|
---|
141 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_handle.c \
|
---|
142 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_ident.c \
|
---|
143 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_inttab.c \
|
---|
144 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_list.c \
|
---|
145 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_map.c \
|
---|
146 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_module.c \
|
---|
147 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_program.c \
|
---|
148 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_open.c \
|
---|
149 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_options.c \
|
---|
150 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_parser.c \
|
---|
151 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_pcb.c \
|
---|
152 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_pragma.c \
|
---|
153 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_printf.c \
|
---|
154 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_proc.c \
|
---|
155 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_provider.c \
|
---|
156 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_regset.c \
|
---|
157 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_string.c \
|
---|
158 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_strtab.c \
|
---|
159 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_subr.c \
|
---|
160 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_work.c \
|
---|
161 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_xlator.c \
|
---|
162 | \
|
---|
163 | $(VBoxDTraceCmd_0_OUTDIR)/dt_errtags.c \
|
---|
164 | $(VBoxDTraceCmd_0_OUTDIR)/dt_names.c \
|
---|
165 | \
|
---|
166 | $(VBOXDT_PATH_CMN_CTF)/ctf_create.c \
|
---|
167 | $(VBOXDT_PATH_CMN_CTF)/ctf_error.c \
|
---|
168 | $(VBOXDT_PATH_CMN_CTF)/ctf_decl.c \
|
---|
169 | $(VBOXDT_PATH_CMN_CTF)/ctf_hash.c \
|
---|
170 | $(VBOXDT_PATH_CMN_CTF)/ctf_labels.c \
|
---|
171 | $(VBOXDT_PATH_CMN_CTF)/ctf_lookup.c \
|
---|
172 | $(VBOXDT_PATH_CMN_CTF)/ctf_open.c \
|
---|
173 | $(VBOXDT_PATH_CMN_CTF)/ctf_types.c \
|
---|
174 | $(VBOXDT_PATH_CMN_CTF)/ctf_util.c \
|
---|
175 | \
|
---|
176 | $(VBOXDT_PATH_LIBCTF)/common/ctf_subr.c \
|
---|
177 | $(VBOXDT_PATH_LIBCTF)/common/ctf_lib.c
|
---|
178 |
|
---|
179 | # Source not used or wanted:
|
---|
180 | # $(VBOXDT_PATH_LIBDTRACE)/common/dt_link.c
|
---|
181 | # $(VBOXDT_PATH_LIBDTRACE)/common/dt_pid.c
|
---|
182 |
|
---|
183 | # Generate sources
|
---|
184 | VBoxDTraceCmd_CLEAN = \
|
---|
185 | $(VBoxDTraceCmd_0_OUTDIR)/dt_errtags.c \
|
---|
186 | $(VBoxDTraceCmd_0_OUTDIR)/dt_names.c
|
---|
187 |
|
---|
188 | $$(VBoxDTraceCmd_0_OUTDIR)/dt_errtags.c: \
|
---|
189 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_errtags.h \
|
---|
190 | $(VBOXDT_PATH_LIBDTRACE)/common/mkerrtags.sed \
|
---|
191 | | $$(dir $$@)
|
---|
192 | $(MSG_GENERATE,VBoxDTraceCmd,$@,$<)
|
---|
193 | $(SED) -n -f $(VBOXDT_PATH_LIBDTRACE)/common/mkerrtags.sed --output $@ $<
|
---|
194 |
|
---|
195 | $$(VBoxDTraceCmd_0_OUTDIR)/dt_names.c: \
|
---|
196 | $(VBOXDT_PATH_UTS)/common/sys/dtrace.h \
|
---|
197 | $(VBOXDT_PATH_LIBDTRACE)/common/mknames.sed \
|
---|
198 | | $$(dir $$@)
|
---|
199 | $(MSG_GENERATE,VBoxDTraceCmd,$@,$<)
|
---|
200 | $(SED) -n -f $(VBOXDT_PATH_LIBDTRACE)/common/mknames.sed --output $@ $<
|
---|
201 |
|
---|
202 | ifdef VBOX_HAVE_BISON
|
---|
203 | USES += yacc
|
---|
204 | VBoxDTraceCmd_USES += yacc
|
---|
205 | VBoxDTraceCmd_YACCTOOL = BISON
|
---|
206 | VBoxDTraceCmd_YACCFLAGS = -d -y
|
---|
207 | VBoxDTraceCmd_SOURCES += \
|
---|
208 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_grammar.y
|
---|
209 | VBoxDTraceCmd_INCS += $(VBoxDTraceCmd_0_OUTDIR)/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common
|
---|
210 | else
|
---|
211 | VBoxDTraceCmd_SOURCES += \
|
---|
212 | $(VBOXDT_PATH)/generated/dt_grammar.c
|
---|
213 | VBoxDTraceCmd_INCS += \
|
---|
214 | $(VBOXDT_PATH)/generated/
|
---|
215 | endif
|
---|
216 |
|
---|
217 | ifdef VBOX_HAVE_FLEX
|
---|
218 | USES += lex
|
---|
219 | VBoxDTraceCmd_USES += lex
|
---|
220 | VBoxDTraceCmd_LEXTOOL = FLEX
|
---|
221 | VBoxDTraceCmd_LEXFLAGS = -l -B #-d -T
|
---|
222 | VBoxDTraceCmd_SOURCES += \
|
---|
223 | $(VBOXDT_PATH_LIBDTRACE)/common/dt_lex.l
|
---|
224 | else
|
---|
225 | VBoxDTraceCmd_SOURCES += \
|
---|
226 | $(VBOXDT_PATH)/generated/dt_lex.c
|
---|
227 | endif
|
---|
228 | ifeq ($(KBUILD_HOST),linux)
|
---|
229 | if $(VBOX_GCC_VERSION_CXX) >= 70000
|
---|
230 | VBoxDTraceCmd_CFLAGS += -Wno-implicit-fallthrough
|
---|
231 | endif
|
---|
232 | endif
|
---|
233 | VBoxDTraceCmd_DEFS += USING_FLEX
|
---|
234 | $(call VBOX_SET_VER_INFO_DLL,VBoxDTraceCmd,VBoxDTrace Command Implementation)
|
---|
235 |
|
---|
236 | #
|
---|
237 | # Updates the sources generated by flex and biosn.
|
---|
238 | # The SED processing removes the paths the from #line statements.
|
---|
239 | #
|
---|
240 | vboxdtrace-update-generated-sources: \
|
---|
241 | $$(VBoxDTraceCmd_0_OUTDIR)/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_grammar.c \
|
---|
242 | $$(VBoxDTraceCmd_0_OUTDIR)/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_grammar.h \
|
---|
243 | $$(VBoxDTraceCmd_0_OUTDIR)/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_lex.c
|
---|
244 | $(foreach file,dt_grammar.c dt_grammar.h dt_lex.c \
|
---|
245 | ,$(NLTAB)$(SED) -e 's,$(VBOXDT_PATH_LIBDTRACE)/common/,,g'\
|
---|
246 | -e 's,$(VBoxDTraceCmd_0_OUTDIR)/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/,,g' \
|
---|
247 | --output $(VBOXDT_PATH)/generated/$(file) \
|
---|
248 | $(VBoxDTraceCmd_0_OUTDIR)/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/$(file))
|
---|
249 | endif # Temporarily disabled on Solaris.
|
---|
250 |
|
---|
251 | #
|
---|
252 | # The ring-0 part of VBoxDTrace.
|
---|
253 | #
|
---|
254 | ifneq ($(KBUILD_TARGET),solaris) # disabled on solaris - neiter needed nor currently able to build it here.
|
---|
255 | SYSMODS += VBoxDTraceR0
|
---|
256 | endif
|
---|
257 | VBoxDTraceR0_TEMPLATE = VBoxR0ExtPackDTrace
|
---|
258 | VBoxDTraceR0_DEFS = IN_VBOXDTRACE_R0 IN_RT_R0
|
---|
259 | ifeq ($(VBOX_LDR_FMT),elf)
|
---|
260 | VBoxDTraceR0_LDFLAGS = -e ModuleInit
|
---|
261 | endif
|
---|
262 | VBoxDTraceR0_INCS = \
|
---|
263 | include \
|
---|
264 | $(VBOXDT_PATH_UTS)/common
|
---|
265 | VBoxDTraceR0_SOURCES = \
|
---|
266 | VBoxDTraceR0.cpp \
|
---|
267 | VBoxDTraceR0A.asm \
|
---|
268 | $(VBOXDT_PATH_UTS)/common/dtrace/dtrace.c
|
---|
269 | VBoxDTraceR0_LIBS = \
|
---|
270 | $(PATH_STAGE_LIB)/RuntimeR0$(VBOX_SUFF_LIB)
|
---|
271 | ifneq ($(filter pe lx,$(VBOX_LDR_FMT)),)
|
---|
272 | VBoxDTraceR0_LIBS += \
|
---|
273 | $(PATH_STAGE_LIB)/SUPR0$(VBOX_SUFF_LIB)
|
---|
274 | endif
|
---|
275 | $(call VBOX_SET_VER_INFO_R0,VBoxDTraceR0,VBoxDTrace Core (ring-0))
|
---|
276 |
|
---|
277 |
|
---|
278 | #
|
---|
279 | # Packing.
|
---|
280 | #
|
---|
281 | ifndef VBOX_WITHOUT_EXTPACK_VBOXDTRACE_PACKING
|
---|
282 | PACKING += $(VBOX_PATH_PACKAGES)/$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)-$(VBOX_VERSION_STRING)r$(VBOX_SVN_REV).vbox-extpack
|
---|
283 | endif
|
---|
284 |
|
---|
285 | ifndef VBOX_WITH_EXTPACK_OS_ARCHS
|
---|
286 | ifeq ($(USER),bird) # for now
|
---|
287 | VBOX_WITH_EXTPACK_OS_ARCHS = $(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)
|
---|
288 | endif
|
---|
289 | endif
|
---|
290 |
|
---|
291 | # Build the file list. The macro takes 1=darwin.x86, 2=dist/VirtualBox.app/Contents/MacOS, 3=dylib
|
---|
292 | VBOX_VBOXDTRACE_FILES_MACRO = \
|
---|
293 | $(PATH_OUT_BASE)/$(1)/$(KBUILD_TYPE)/$(2)/ExtensionPacks/$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)/$(1)/VBoxDTraceMain.$(3)=>$(1)/VBoxDTraceMain.$(3) \
|
---|
294 | $(if $(intersects $1, solaris.x86 solaris.amd64),, \
|
---|
295 | $(PATH_OUT_BASE)/$(1)/$(KBUILD_TYPE)/$(2)/ExtensionPacks/$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)/$(1)/VBoxDTraceCmd.$(3)=>$(1)/VBoxDTraceCmd.$(3) \
|
---|
296 | $(PATH_OUT_BASE)/$(1)/$(KBUILD_TYPE)/$(2)/ExtensionPacks/$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)/$(1)/VBoxDTraceR0.r0=>$(1)/VBoxDTraceR0.r0 \
|
---|
297 | )
|
---|
298 |
|
---|
299 | VBOX_VBOXDTRACE_FILES := \
|
---|
300 | $(VBOX_PATH_EXTPACK_VBOXDTRACE)/ExtPack.xml=>ExtPack.xml \
|
---|
301 | $(VBOX_PATH_EXTPACK_VBOXDTRACE)/ExtPack-SourceCodeLicense.txt=>ExtPack-SourceCodeLicense.txt
|
---|
302 |
|
---|
303 | if1of (darwin.amd64, $(VBOX_WITH_EXTPACK_OS_ARCHS))
|
---|
304 | VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,darwin.amd64,dist/VirtualBox.app/Contents/MacOS,dylib)
|
---|
305 | endif
|
---|
306 | if1of (darwin.x86, $(VBOX_WITH_EXTPACK_OS_ARCHS))
|
---|
307 | VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,darwin.x86,dist/VirtualBox.app/Contents/MacOS,dylib)
|
---|
308 | endif
|
---|
309 | if1of (freebsd.amd64, $(VBOX_WITH_EXTPACK_OS_ARCHS))
|
---|
310 | VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,freebsd.amd64,bin,so)
|
---|
311 | endif
|
---|
312 | if1of (freebsd.x86, $(VBOX_WITH_EXTPACK_OS_ARCHS))
|
---|
313 | VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,freebsd.x86,bin,so)
|
---|
314 | endif
|
---|
315 | if1of (linux.amd64, $(VBOX_WITH_EXTPACK_OS_ARCHS))
|
---|
316 | VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,linux.amd64,bin,so)
|
---|
317 | endif
|
---|
318 | if1of (linux.x86, $(VBOX_WITH_EXTPACK_OS_ARCHS))
|
---|
319 | VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,linux.x86,bin,so)
|
---|
320 | endif
|
---|
321 | if1of (os2.x86, $(VBOX_WITH_EXTPACK_OS_ARCHS))
|
---|
322 | VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,os2.x86,bin,so)
|
---|
323 | endif
|
---|
324 | if1of (solaris.amd64, $(VBOX_WITH_EXTPACK_OS_ARCHS))
|
---|
325 | VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,solaris.amd64,bin,so)
|
---|
326 | endif
|
---|
327 | if1of (solaris.x86, $(VBOX_WITH_EXTPACK_OS_ARCHS))
|
---|
328 | VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,solaris.x86,bin,so)
|
---|
329 | endif
|
---|
330 | if1of (win.amd64, $(VBOX_WITH_EXTPACK_OS_ARCHS))
|
---|
331 | VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,win.amd64,bin,dll)
|
---|
332 | endif
|
---|
333 | if1of (win.x86, $(VBOX_WITH_EXTPACK_OS_ARCHS))
|
---|
334 | VBOX_VBOXDTRACE_FILES += $(call VBOX_VBOXDTRACE_FILES_MACRO,win.x86,bin,dll)
|
---|
335 | endif
|
---|
336 |
|
---|
337 | # Pack it all up using a temporary staging directory.
|
---|
338 | $(VBOX_PATH_PACKAGES)/$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)-$(VBOX_VERSION_STRING)r$(VBOX_SVN_REV).vbox-extpack: \
|
---|
339 | $$(foreach file, $$(VBOX_VBOXDTRACE_FILES), $$(firstword $$(subst =>,$$(SP),$$(file)))) \
|
---|
340 | | $(VBOX_PATH_PACKAGES)/
|
---|
341 | $(RM) -f $(wildcard $(VBOX_PATH_PACKAGES)/$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)-*.vbox-extpack) \
|
---|
342 | $(VBoxDTraceIns_0_OUTDIR)/ExtPack.manifest \
|
---|
343 | $(VBoxDTraceIns_0_OUTDIR)/ExtPack.signature
|
---|
344 | # Stage all the files
|
---|
345 | $(RM) -Rf $(VBoxDTraceIns_0_OUTDIR)/Stage/
|
---|
346 | $(foreach file, $(VBOX_VBOXDTRACE_FILES),\
|
---|
347 | $(NLTAB)$(MKDIR) -p $(dir $(lastword $(subst =>,$(SP)$(VBoxDTraceIns_0_OUTDIR)/Stage/,$(file)))) \
|
---|
348 | $(NLTAB)$(CP) $(subst =>,$(SP)$(VBoxDTraceIns_0_OUTDIR)/Stage/,$(file)) )
|
---|
349 | # Create the manifest
|
---|
350 | $(VBOX_RTMANIFEST) \
|
---|
351 | --manifest $(VBoxDTraceIns_0_OUTDIR)/Stage/ExtPack.manifest \
|
---|
352 | --chdir $(VBoxDTraceIns_0_OUTDIR)/Stage/ \
|
---|
353 | $(foreach file, $(VBOX_VBOXDTRACE_FILES), $(lastword $(subst =>,$(SP),$(file))))
|
---|
354 | $(APPEND) $(VBoxDTraceIns_0_OUTDIR)/Stage/ExtPack.signature "todo"
|
---|
355 | $(CHMOD) a+r \
|
---|
356 | $(VBoxDTraceIns_0_OUTDIR)/Stage/ExtPack.manifest \
|
---|
357 | $(VBoxDTraceIns_0_OUTDIR)/Stage/ExtPack.signature
|
---|
358 | # Tar it up.
|
---|
359 | tar -cvf - -C $(VBoxDTraceIns_0_OUTDIR)/Stage/ . | gzip -9c > $@
|
---|
360 | # Clean up
|
---|
361 | $(RM) -Rf $(VBoxDTraceIns_0_OUTDIR)/Stage/
|
---|
362 |
|
---|
363 | BLDDIRS += $(VBOX_PATH_PACKAGES)/
|
---|
364 |
|
---|
365 | endif # VBOX_WITH_EXTPACK_VBOXDTRACE
|
---|
366 |
|
---|
367 |
|
---|
368 | include $(FILE_KBUILD_SUB_FOOTER)
|
---|
369 |
|
---|