VirtualBox

source: vbox/trunk/src/VBox/ValidationKit/bootsectors/Makefile.kmk@ 103131

Last change on this file since 103131 was 102271, checked in by vboxsync, 11 months ago

ValKit/bs3-cpu-basic-3: Full 64-bit lea testcase. Use python (3+) to generate the bulk of it, as the nasm preprocessor is too slow and uses too much memory (19+ GiBs). bugref:10371

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 17.1 KB
Line 
1# $Id: Makefile.kmk 102271 2023-11-23 00:41:45Z vboxsync $
2## @file
3# VirtualBox Validation Kit - Bootsector Tests for Test Drivers or standalone testing.
4#
5
6#
7# Copyright (C) 2006-2023 Oracle and/or its affiliates.
8#
9# This file is part of VirtualBox base platform packages, as
10# available from https://www.virtualbox.org.
11#
12# This program is free software; you can redistribute it and/or
13# modify it under the terms of the GNU General Public License
14# as published by the Free Software Foundation, in version 3 of the
15# License.
16#
17# This program is distributed in the hope that it will be useful, but
18# WITHOUT ANY WARRANTY; without even the implied warranty of
19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20# General Public License for more details.
21#
22# You should have received a copy of the GNU General Public License
23# along with this program; if not, see <https://www.gnu.org/licenses>.
24#
25# The contents of this file may alternatively be used under the terms
26# of the Common Development and Distribution License Version 1.0
27# (CDDL), a copy of it is provided in the "COPYING.CDDL" file included
28# in the VirtualBox distribution, in which case the provisions of the
29# CDDL are applicable instead of those of the GPL.
30#
31# You may elect to license modified versions of this file under the
32# terms and conditions of either the GPL or the CDDL or both.
33#
34# SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
35#
36
37SUB_DEPTH = ../../../..
38include $(KBUILD_PATH)/subheader.kmk
39
40
41#
42# Make sure our Config.kmk gets included when kmk is running from a parent directory.
43#
44ifndef VBOX_BOOTSECTORS_CONFIG_KMK_INCLUDED
45 include $(PATH_SUB_CURRENT)/Config.kmk
46endif
47
48
49#
50# Include sub-makefile.
51#
52# The VBOX_WITH_BS3KIT feature requires NASM 2.12 and either MSVC or gcc
53# with ms_abi function attribute (gcc v4.4+, MSVC default).
54# Some 32-bit gcc compilers come without 64-bit support (e.g. EL5).
55#
56if defined(VBOX_WITH_OPEN_WATCOM)
57 if1of ($(KBUILD_TARGET), win)
58 VBOX_WITH_BS3KIT = 1
59 else if $(VBOX_GCC_VERSION_CC) >= 40400 # ms_abi was added in 4.4
60 if1of ($(KBUILD_TARGET), linux)
61 ifneq ($(VBOX_GCC_m64),)
62 VBOX_WITH_BS3KIT = 1
63 endif
64 endif
65 endif
66 ifdef VBOX_WITH_BS3KIT
67 include $(PATH_SUB_CURRENT)/bs3kit/Makefile.kmk
68 endif
69endif
70
71
72#
73# Boot Sector "Linker" tool.
74#
75TOOL_VBoxBootSectorLd = Joins one or more BS2 object files into a floppy img.
76TOOL_VBoxBootSectorLd_LINK_MISCBIN_OUTPUT =
77TOOL_VBoxBootSectorLd_LINK_MISCBIN_DEPEND =
78TOOL_VBoxBootSectorLd_LINK_MISCBIN_DEPORD = $(VBoxBs2Linker_1_TARGET)
79define TOOL_VBoxBootSectorLd_LINK_MISCBIN_CMDS
80 $(VBoxBs2Linker_1_TARGET) -o $(out) $(objs) $(othersrc)
81endef
82
83BLDPROGS += VBoxBs2Linker
84VBoxBs2Linker_TEMPLATE = VBoxBldProg
85VBoxBs2Linker_SOURCES = VBoxBs2Linker.cpp
86
87
88#
89# Makes a boot sector test image.
90#
91TEMPLATE_VBoxBsTestImg = kBuild tool config for building boot sector stuff.
92TEMPLATE_VBoxBsTestImg_INST = $(INST_VALIDATIONKIT)bootsectors/
93TEMPLATE_VBoxBsTestImg_BINSUFF = .img
94TEMPLATE_VBoxBsTestImg_MODE = 0644
95TEMPLATE_VBoxBsTestImg_ASTOOL = YASM
96TEMPLATE_VBoxBsTestImg_ASFLAGS = -f bin -P $(VBOX_PATH_BOOTSECTORS_SRC)/bootsector2-first.mac $(VBOX_YASM_Wno-segreg-in-64bit) --mapfile
97TEMPLATE_VBoxBsTestImg_ASDEFS = ASM_FORMAT_BIN
98TEMPLATE_VBoxBsTestImg_INCS = \
99 . \
100 ../../VMM/testcase/Instructions
101TEMPLATE_VBoxBsTestImg_LDTOOL = VBoxBootSectorLd
102
103
104#
105# The boot sector tests.
106#
107MISCBINS += bootsector-shutdown
108bootsector-shutdown_TEMPLATE = VBoxBsTestImg
109bootsector-shutdown_SOURCES = bootsector-shutdown.asm
110
111MISCBINS += bootsector-pae
112bootsector-pae_TEMPLATE = VBoxBsTestImg
113bootsector-pae_SOURCES = bootsector-pae.asm
114
115MISCBINS += bootsector-empty
116bootsector-empty_TEMPLATE = VBoxBsTestImg
117bootsector-empty_SOURCES = bootsector-empty.asm
118
119MISCBINS += bootsector2-test1
120bootsector2-test1_TEMPLATE = VBoxBsTestImg
121bootsector2-test1_SOURCES = bootsector2-test1.asm
122
123MISCBINS += bootsector2-cpu-hidden-regs-1
124bootsector2-cpu-hidden-regs-1_TEMPLATE = VBoxBsTestImg
125bootsector2-cpu-hidden-regs-1_SOURCES = bootsector2-cpu-hidden-regs-1.asm
126
127MISCBINS += bootsector2-cpu-instr-1
128bootsector2-cpu-instr-1_TEMPLATE = VBoxBsTestImg
129bootsector2-cpu-instr-1_SOURCES = bootsector2-cpu-instr-1.asm
130
131MISCBINS += bootsector2-cpu-pf-1
132bootsector2-cpu-pf-1_TEMPLATE = VBoxBsTestImg
133bootsector2-cpu-pf-1_SOURCES = bootsector2-cpu-pf-1.asm
134
135MISCBINS += bootsector2-cpu-xcpt-1
136bootsector2-cpu-xcpt-1_TEMPLATE = VBoxBsTestImg
137bootsector2-cpu-xcpt-1_SOURCES = bootsector2-cpu-xcpt-1.asm
138
139MISCBINS += bootsector2-cpu-xcpt-2
140bootsector2-cpu-xcpt-2_TEMPLATE = VBoxBsTestImg
141bootsector2-cpu-xcpt-2_SOURCES = bootsector2-cpu-xcpt-2.asm
142
143MISCBINS += bootsector2-cpu-a20-1
144bootsector2-cpu-a20-1_TEMPLATE = VBoxBsTestImg
145bootsector2-cpu-a20-1_SOURCES = bootsector2-cpu-a20-1.asm
146
147MISCBINS += bootsector2-cpu-basic-1
148bootsector2-cpu-basic-1_TEMPLATE = VBoxBsTestImg
149bootsector2-cpu-basic-1_SOURCES = bootsector2-cpu-basic-1.asm
150
151MISCBINS += bootsector2-cpu-ac-loop
152bootsector2-cpu-ac-loop_TEMPLATE = VBoxBsTestImg
153bootsector2-cpu-ac-loop_SOURCES = bootsector2-cpu-ac-loop.asm
154
155MISCBINS += bootsector2-cpu-db-loop
156bootsector2-cpu-db-loop_TEMPLATE = VBoxBsTestImg
157bootsector2-cpu-db-loop_SOURCES = bootsector2-cpu-db-loop.asm
158
159MISCBINS += bootsector2-boot-registers-1
160bootsector2-boot-registers-1_TEMPLATE = VBoxBsTestImg
161bootsector2-boot-registers-1_SOURCES = bootsector2-boot-registers-1.asm
162
163MISCBINS += bootsector2-triple-fault-1
164bootsector2-triple-fault-1_TEMPLATE = VBoxBsTestImg
165bootsector2-triple-fault-1_SOURCES = bootsector2-triple-fault-1.asm
166
167
168ifeq ($(USERNAME),birdxx)
169 if1of ($(KBUILD_HOST).$(KBUILD_HOST_ARCH), win.amd64)
170 #
171 # Generated instruction tests (work in progress).
172 #
173
174 VBOX_PATH_VBINSTST = $(PATH_ROOT)/src/VBox/VMM/testcase/Instructions
175 VBOX_VBINSTST_GEN = $(VBOX_PATH_VBINSTST)/InstructionTestGen.py
176 VBOX_BOOTSECTOR2_VBINSTST_AMD64_GEN = $(VBOX_BLD_PYTHON) $(VBOX_VBINSTST_GEN) \
177 --split 3 --target bs2-r0-64 --output-base $(bootsectors_0_OUTDIR)/VBInsTst-64 --test-size tiny
178 VBOX_BOOTSECTOR2_VBINSTST_AMD64_FILES = $(shell $(VBOX_BOOTSECTOR2_VBINSTST_AMD64_GEN) --makefile-mode)
179
180 #$$(bootsectors_0_OUTDIR)/VBInsTst.ts + $$(VBOX_BOOTSECTOR2_VBINSTST_AMD64_FILES): $(VBOX_VBINSTST_GEN) | $$(dir $$@)
181 # $(VBOX_BOOTSECTOR2_VBINSTST_AMD64_GEN)
182 # $(APPEND) -t $@
183 #
184 #bootsectors_SOURCES += $(bootsectors_0_OUTDIR)/bootsector2-vbinstst-1.img
185 #bootsectors_CLEAN += $(VBOX_BOOTSECTOR2_VBINSTST_AMD64_FILES)
186 #
187 #$$(bootsectors_0_OUTDIR)/bootsector2-vbinstst-1.img: \
188 # $(PATH_SUB_CURRENT)/bootsector2-vbinstst-64-1.asm \
189 # $$(bootsectors_0_OUTDIR)/VBInsTst-64.asm
190 # $(TOOL_$(VBOX_ASTOOL)_AS) -f bin -D ASM_FORMAT_BIN -I $(dir $@) -I $(PATH_ROOT)/include -I $(VBOX_PATH_VBINSTST) -o $@ -L nasm -l $@.lst $<
191
192 MISCBINS += bootsector2-vbinstst-kernel
193 bootsector2-vbinstst-kernel_TEMPLATE = VBoxBsTestImg
194 bootsector2-vbinstst-kernel_SOURCES = \
195 bootsector2-vbinstst-kernel.asm
196
197
198 MISCBINS += bootsector2-vbinstst-64-1
199 bootsector2-vbinstst-64-1_TEMPLATE = VBoxBsTestImg
200 bootsector2-vbinstst-64-1_DEFS = \
201 BS2_BIG_IMAGE_LM64 \
202 BS2_BIG_IMAGE_GEN_SOURCE_FILE=bs2-vbinstst-64-1.asm \
203 BS2_BIG_IMAGE_GEN_TEST_NAME=\"bs2-vbinstst-64-1\"
204 bootsector2-vbinstst-64-1_INCS = $(bootsector2-vbinstst-64-1_0_OUTDIR)/
205 bootsector2-vbinstst-64-1_SOURCES = \
206 bootsector2-vbinstst-kernel.asm \
207 bootsector2-vbinstst-big-template.asm
208 bootsector2-vbinstst-64-1_INTERMEDIATES = \
209 $(bootsector2-vbinstst-64-1_0_OUTDIR)/bs2-vbinstst-64-1.asm
210 bootsector2-vbinstst-64-1_CLEAN = \
211 $(bootsector2-vbinstst-64-1_0_OUTDIR)/bs2-vbinstst-64-1.asm
212
213 $$(bootsector2-vbinstst-64-1_0_OUTDIR)/bs2-vbinstst-64-1.asm: $(VBOX_VBINSTST_GEN) | $$(dir $$@)
214 $(REDIRECT) -0 /dev/null -- $(VBOX_BLD_PYTHON) $(VBOX_VBINSTST_GEN) --target bs2-r0-64-big --output-base $(basename $@) --test-size medium
215
216 MISCBINS += bootsector2-vbinstst-32-1
217 bootsector2-vbinstst-32-1_TEMPLATE = VBoxBsTestImg
218 bootsector2-vbinstst-32-1_DEFS = \
219 BS2_BIG_IMAGE_PP32 \
220 BS2_BIG_IMAGE_GEN_SOURCE_FILE=bs2-vbinstst-32-1.asm \
221 BS2_BIG_IMAGE_GEN_TEST_NAME=\"bs2-vbinstst-32-1\"
222 bootsector2-vbinstst-32-1_INCS = $(bootsector2-vbinstst-32-1_0_OUTDIR)/
223 bootsector2-vbinstst-32-1_SOURCES = \
224 bootsector2-vbinstst-kernel.asm \
225 bootsector2-vbinstst-big-template.asm
226 bootsector2-vbinstst-32-1_INTERMEDIATES = \
227 $(bootsector2-vbinstst-32-1_0_OUTDIR)/bs2-vbinstst-32-1.asm
228 bootsector2-vbinstst-32-1_CLEAN = \
229 $(bootsector2-vbinstst-32-1_0_OUTDIR)/bs2-vbinstst-32-1.asm
230
231 $$(bootsector2-vbinstst-32-1_0_OUTDIR)/bs2-vbinstst-32-1.asm: $(VBOX_VBINSTST_GEN) | $$(dir $$@)
232 $(REDIRECT) -0 /dev/null -- $(VBOX_BLD_PYTHON) $(VBOX_VBINSTST_GEN) --target bs2-r0-32-big --output-base $(basename $@) --test-size medium
233
234 endif
235endif # bird-only
236
237
238ifdef VBOX_WITH_BS3KIT
239 #
240 # Bs3kit
241 #
242
243 #
244 # APIC
245 #
246 MISCBINS += bs3-apic-1
247 bs3-apic-1_TEMPLATE = VBoxBS3KitImg
248 bs3-apic-1_SOURCES = \
249 bs3kit/bs3-first-rm.asm \
250 bs3-apic-1.c \
251 bs3-apic-1-32.c32
252
253
254 # CPU basics #2 (first being bootsector2-cpu-basic-1).
255 MISCBINS += bs3-cpu-basic-2
256 bs3-cpu-basic-2_TEMPLATE = VBoxBS3KitImg
257 bs3-cpu-basic-2_INCS = .
258 bs3-cpu-basic-2_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-cpu-basic-2-template.c
259 bs3-cpu-basic-2_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-cpu-basic-2-template.c
260 bs3-cpu-basic-2_SOURCES = \
261 bs3kit/bs3-first-rm.asm \
262 bs3-cpu-basic-2.c \
263 bs3-cpu-basic-2-x0.c \
264 bs3-cpu-basic-2-32.c32 \
265 bs3-cpu-basic-2-pf.c32 \
266 bs3kit/bs3-cmn-instantiate-x0.c16 \
267 bs3kit/bs3-cmn-instantiate.c32 \
268 bs3kit/bs3-cmn-instantiate.c64 \
269 bs3-cpu-basic-2-asm.asm
270 bs3-cpu-basic-2-template.o:: \
271 $$(bs3-cpu-basic-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate-x0.o16 \
272 $$(bs3-cpu-basic-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
273 $$(bs3-cpu-basic-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
274 $$(bs3-cpu-basic-2_0_OUTDIR)/bs3-cpu-basic-2-asm.o16
275
276 # CPU basics #3 (first being bootsector2-cpu-basic-1).
277 MISCBINS += bs3-cpu-basic-3
278 bs3-cpu-basic-3_TEMPLATE = VBoxBS3KitImgBig
279 bs3-cpu-basic-3_INCS = .
280 bs3-cpu-basic-3_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-cpu-basic-3-cmn-template.c
281 #bs3-cpu-basic-3_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-cpu-basic-3-mode-template.c
282 bs3-cpu-basic-3_SOURCES = \
283 bs3kit/bs3-first-rm.asm \
284 bs3-cpu-basic-3.c \
285 bs3kit/bs3-cmn-instantiate-x0.c16 \
286 bs3kit/bs3-cmn-instantiate.c32 \
287 bs3kit/bs3-cmn-instantiate.c64 \
288 bs3-cpu-basic-3-asm.asm \
289 $(bs3-cpu-basic-3-high_1_TARGET)
290 bs3-cpu-basic-3-cmn-template.o:: \
291 $$(bs3-cpu-basic-3_0_OUTDIR)/bs3kit/bs3-cmn-instantiate-x0.o16 \
292 $$(bs3-cpu-basic-3_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
293 $$(bs3-cpu-basic-3_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
294 $$(bs3-cpu-basic-3_0_OUTDIR)/bs3-cpu-basic-3-asm.o16
295
296 MISCBINS += bs3-cpu-basic-3-high
297 bs3-cpu-basic-3-high_TEMPLATE = VBoxBS3KitHighImg
298 bs3-cpu-basic-3-high_INCS = . $(bs3-cpu-basic-3-high_0_OUTDIR)
299 bs3-cpu-basic-3-high_SOURCES = \
300 bs3kit/bs3-first-high-image.asm \
301 bs3-cpu-basic-3-high-asm.asm
302 bs3-cpu-basic-3-high_INTERMEDIATES = $(bs3-cpu-basic-3-high_0_OUTDIR)/bs3-cpu-basic-3-high-lea64.inc
303 bs3-cpu-basic-3-high_CLEANS = $(bs3-cpu-basic-3-high_0_OUTDIR)/bs3-cpu-basic-3-high-lea64.inc
304 $$(bs3-cpu-basic-3-high_0_OUTDIR)/bs3-cpu-basic-3-high-lea64.inc: \
305 $(PATH_SUB_CURRENT)/bs3-cpu-basic-3-high-lea64.py | $$(dir $$@)
306 $(call MSG_GENERATE,bs3-cpu-basic-3-high,$@)
307 $(QUIET)$(REDIRECT) -0 /dev/null -- $(TIME) $(VBOX_BLD_PYTHON) "$<" "$@"
308
309 #
310 # CPU weird stuff #1.
311 #
312 MISCBINS += bs3-cpu-weird-1
313 bs3-cpu-weird-1_TEMPLATE = VBoxBS3KitImg
314 bs3-cpu-weird-1_INCS = .
315 bs3-cpu-weird-1_SOURCES = \
316 bs3kit/bs3-first-rm.asm \
317 bs3-cpu-weird-1.c \
318 bs3-cpu-weird-1-x0.c \
319 bs3-cpu-weird-1-asm.asm
320
321 #
322 # 64-bit CPU state #1.
323 #
324 MISCBINS += bs3-cpu-state64-1
325 bs3-cpu-state64-1_TEMPLATE = VBoxBS3KitImg
326 bs3-cpu-state64-1_INCS = .
327 bs3-cpu-state64-1_SOURCES = \
328 bs3kit/bs3-first-init-all-lm64.asm \
329 bs3-cpu-state64-1.c64 \
330 bs3-cpu-state64-1-asm.asm
331
332 #
333 # FPU state corruption checker.
334 #
335 MISCBINS += bs3-fpustate-1
336 bs3-fpustate-1_TEMPLATE = VBoxBS3KitImg
337 bs3-fpustate-1_INCS = .
338 bs3-fpustate-1_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-fpustate-1-template.c
339 bs3-fpustate-1_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-fpustate-1-template.c
340 bs3-fpustate-1_SOURCES = \
341 bs3kit/bs3-first-rm.asm \
342 bs3-fpustate-1.c \
343 bs3kit/bs3-cmn-instantiate.c16 \
344 bs3kit/bs3-cmn-instantiate.c32 \
345 bs3kit/bs3-cmn-instantiate.c64 \
346 bs3-fpustate-1-asm.asm
347 bs3-fpustate-1-template.o:: \
348 $$(bs3-fpustate-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o16 \
349 $$(bs3-fpustate-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
350 $$(bs3-fpustate-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
351 $$(bs3-fpustate-1_0_OUTDIR)/bs3-fpustate-1-asm.o16
352
353 #
354 # CPU instruction decoding experiments.
355 #
356 MISCBINS += bs3-cpu-decoding-1
357 bs3-cpu-decoding-1_TEMPLATE = VBoxBS3KitImg
358 bs3-cpu-decoding-1_INCS = .
359 bs3-cpu-decoding-1_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-cpu-decoding-1-template.c
360 bs3-cpu-decoding-1_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-cpu-decoding-1-template.c
361 bs3-cpu-decoding-1_SOURCES = \
362 bs3kit/bs3-first-init-all-pp32.asm \
363 bs3-cpu-decoding-1.c32 \
364 bs3-cpu-decoding-1-asm.asm
365 # bs3kit/bs3-cmn-instantiate.c16 \
366 # bs3kit/bs3-cmn-instantiate.c32 \
367 # bs3kit/bs3-cmn-instantiate.c64
368 bs3-cpu-decoding-1-template.o:: \
369 $$(bs3-cpu-decoding-1_0_OUTDIR)/bs3-cpu-decoding-1-asm.o16
370 # $$(bs3-cpu-decoding-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o16 \
371 # $$(bs3-cpu-decoding-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
372 # $$(bs3-cpu-decoding-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
373
374
375 #
376 # CPU instructions #2 (first being bootsector2-cpu-instr-1).
377 #
378 MISCBINS += bs3-cpu-instr-2
379 bs3-cpu-instr-2_TEMPLATE = VBoxBS3KitImg
380 bs3-cpu-instr-2_INCS = .
381 bs3-cpu-instr-2_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-cpu-instr-2-template.c
382 bs3-cpu-instr-2_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-cpu-instr-2-template.c
383 bs3-cpu-instr-2_SOURCES = \
384 bs3kit/bs3-first-rm.asm \
385 bs3-cpu-instr-2.c \
386 bs3-cpu-instr-2-asm.asm \
387 bs3kit/bs3-cmn-instantiate-x0.c16 \
388 bs3kit/bs3-cmn-instantiate.c32 \
389 bs3kit/bs3-cmn-instantiate.c64
390 bs3-cpu-instr-2-template.o:: \
391 $$(bs3-cpu-instr-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate-x0.o16 \
392 $$(bs3-cpu-instr-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
393 $$(bs3-cpu-instr-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
394 $$(bs3-cpu-instr-2_0_OUTDIR)/bs3-cpu-instr-2-asm.o16
395
396 #
397 # CPU instructions #3 - SSE, ++.
398 #
399 MISCBINS += bs3-cpu-instr-3
400 bs3-cpu-instr-3_TEMPLATE = VBoxBS3KitImg
401 bs3-cpu-instr-3_INCS = .
402 bs3-cpu-instr-3_SOURCES = \
403 bs3kit/bs3-first-init-all-pe32.asm \
404 bs3-cpu-instr-3.c32 \
405 bs3-cpu-instr-3-asm.asm
406 bs3-cpu-instr-3-template.o:: \
407 $$(bs3-cpu-instr-3_0_OUTDIR)/bs3-cpu-instr-3-asm.o16
408
409 #
410 # CPU generated instruction tests #1
411 #
412 MISCBINS += bs3-cpu-generated-1
413 bs3-cpu-generated-1_TEMPLATE = VBoxBS3KitImg
414 bs3-cpu-generated-1_INCS = .
415 bs3-cpu-generated-1_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-cpu-generated-1-template.c
416 bs3-cpu-generated-1_SOURCES = \
417 bs3kit/bs3-first-rm.asm \
418 bs3-cpu-generated-1.c \
419 bs3-cpu-generated-1-asm.asm \
420 bs3kit/bs3-cmn-instantiate-x0.c16 \
421 bs3kit/bs3-cmn-instantiate.c32 \
422 bs3kit/bs3-cmn-instantiate.c64 \
423 $(bs3-cpu-generated-1_0_OUTDIR)/bs3-cpu-generated-1-data.c16
424 bs3-cpu-generated-1_CLEAN = $(bs3-cpu-generated-1_0_OUTDIR)/bs3-cpu-generated-1-data.c16
425
426 bs3-cpu-generated-1-template.o:: \
427 $$(bs3-cpu-generated-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate-x0.o16 \
428 $$(bs3-cpu-generated-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
429 $$(bs3-cpu-generated-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
430 $$(bs3-cpu-generated-1_0_OUTDIR)/bs3-cpu-generated-1-asm.o16
431
432 $$(bs3-cpu-generated-1_0_OUTDIR)/bs3-cpu-generated-1-data.c16: \
433 $(PATH_SUB_CURRENT)/bs3-cpu-generated-1-data.py \
434 $(PATH_SUB_CURRENT)/../../VMM/VMMAll/IEMAllInstPython.py \
435 $(PATH_SUB_CURRENT)/../../VMM/VMMAll/IEMAllInst*.cpp.h \
436 | $$(dir $$@)
437 $(REDIRECT) -0 /dev/null -- $(VBOX_BLD_PYTHON) $< $@
438
439 #
440 # Memory allocation.
441 #
442 MISCBINS += bs3-memalloc-1
443 bs3-memalloc-1_TEMPLATE = VBoxBS3KitImg
444 bs3-memalloc-1_INCS = .
445 bs3-memalloc-1_SOURCES = \
446 bs3kit/bs3-first-init-all-lm64.asm \
447 bs3-memalloc-1.c64
448
449
450 #
451 # Timer Interrupts
452 #
453 MISCBINS += bs3-timers-1
454 bs3-timers-1_TEMPLATE = VBoxBS3KitImg
455 bs3-timers-1_INCS = .
456 bs3-timers-1_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-timers-1-template.c
457 bs3-timers-1_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-timers-1-template.c
458 bs3-timers-1_SOURCES = \
459 bs3kit/bs3-first-rm.asm \
460 bs3-timers-1.c \
461 bs3-timers-1-x0.c \
462 bs3-timers-1-asm.asm
463
464 #
465 # Timing
466 #
467 MISCBINS += bs3-timing-1
468 bs3-timing-1_TEMPLATE = VBoxBS3KitImg
469 bs3-timing-1_INCS = .
470 bs3-timing-1_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-timing-1-template.c
471 bs3-timing-1_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-timing-1-template.c
472 bs3-timing-1_SOURCES = \
473 bs3kit/bs3-first-rm.asm \
474 bs3-timing-1.c \
475 bs3-timing-1-32.c32
476
477 #
478 # Lock contention and interruption.
479 #
480 MISCBINS += bs3-locking-1
481 bs3-locking-1_TEMPLATE = VBoxBS3KitImg
482 bs3-locking-1_INCS = .
483 bs3-locking-1_SOURCES = \
484 bs3kit/bs3-first-rm.asm \
485 bs3-locking-1.c
486
487endif # VBOX_WITH_BS3KIT
488
489
490#
491# Executable version of the bs3-timing-1 bootsector.
492#
493PROGRAMS += bs3-timing-1-exe
494bs3-timing-1-exe_TEMPLATE = VBoxValidationKitR3
495bs3-timing-1-exe_NAME = bs3-timing-1
496bs3-timing-1-exe_SOURCES = bs3-timing-1-exe.c
497
498
499#
500# pylint
501#
502VBOX_VALIDATIONKIT_PYTHON_SOURCES += $(wildcard $(PATH_SUB_CURRENT)/*.py)
503$(evalcall def_vbox_validationkit_process_python_sources)
504
505include $(FILE_KBUILD_SUB_FOOTER)
506
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette