VirtualBox

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

Last change on this file since 105862 was 105590, checked in by vboxsync, 4 months ago

ValKit/bs3-cpu-basic-2: Added a invlpg testcase for 2 MB and 4 MB pages. bugref:10727

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 19.6 KB
Line 
1# $Id: Makefile.kmk 105590 2024-08-05 23:03:19Z 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# Tool for converting an assembly object file into a header.
90#
91BLDPROGS += VBoxBs3Obj2Hdr
92VBoxBs3Obj2Hdr_TEMPLATE = VBoxBldProg
93VBoxBs3Obj2Hdr_SOURCES = VBoxBs3Obj2Hdr.cpp
94
95
96#
97# Makes a boot sector test image.
98#
99TEMPLATE_VBoxBsTestImg = kBuild tool config for building boot sector stuff.
100TEMPLATE_VBoxBsTestImg_INST = $(INST_VALIDATIONKIT)bootsectors/
101TEMPLATE_VBoxBsTestImg_BINSUFF = .img
102TEMPLATE_VBoxBsTestImg_MODE = 0644
103TEMPLATE_VBoxBsTestImg_ASTOOL = YASM
104TEMPLATE_VBoxBsTestImg_ASFLAGS = -f bin -P $(VBOX_PATH_BOOTSECTORS_SRC)/bootsector2-first.mac $(VBOX_YASM_Wno-segreg-in-64bit) --mapfile
105TEMPLATE_VBoxBsTestImg_ASDEFS = ASM_FORMAT_BIN
106TEMPLATE_VBoxBsTestImg_INCS = \
107 . \
108 ../../VMM/testcase/Instructions
109TEMPLATE_VBoxBsTestImg_LDTOOL = VBoxBootSectorLd
110
111
112#
113# The boot sector tests.
114#
115MISCBINS += bootsector-shutdown
116bootsector-shutdown_TEMPLATE = VBoxBsTestImg
117bootsector-shutdown_SOURCES = bootsector-shutdown.asm
118
119MISCBINS += bootsector-pae
120bootsector-pae_TEMPLATE = VBoxBsTestImg
121bootsector-pae_SOURCES = bootsector-pae.asm
122
123MISCBINS += bootsector-empty
124bootsector-empty_TEMPLATE = VBoxBsTestImg
125bootsector-empty_SOURCES = bootsector-empty.asm
126
127MISCBINS += bootsector2-test1
128bootsector2-test1_TEMPLATE = VBoxBsTestImg
129bootsector2-test1_SOURCES = bootsector2-test1.asm
130
131MISCBINS += bootsector2-cpu-hidden-regs-1
132bootsector2-cpu-hidden-regs-1_TEMPLATE = VBoxBsTestImg
133bootsector2-cpu-hidden-regs-1_SOURCES = bootsector2-cpu-hidden-regs-1.asm
134
135MISCBINS += bootsector2-cpu-instr-1
136bootsector2-cpu-instr-1_TEMPLATE = VBoxBsTestImg
137bootsector2-cpu-instr-1_SOURCES = bootsector2-cpu-instr-1.asm
138
139MISCBINS += bootsector2-cpu-pf-1
140bootsector2-cpu-pf-1_TEMPLATE = VBoxBsTestImg
141bootsector2-cpu-pf-1_SOURCES = bootsector2-cpu-pf-1.asm
142
143MISCBINS += bootsector2-cpu-xcpt-1
144bootsector2-cpu-xcpt-1_TEMPLATE = VBoxBsTestImg
145bootsector2-cpu-xcpt-1_SOURCES = bootsector2-cpu-xcpt-1.asm
146
147MISCBINS += bootsector2-cpu-xcpt-2
148bootsector2-cpu-xcpt-2_TEMPLATE = VBoxBsTestImg
149bootsector2-cpu-xcpt-2_SOURCES = bootsector2-cpu-xcpt-2.asm
150
151MISCBINS += bootsector2-cpu-a20-1
152bootsector2-cpu-a20-1_TEMPLATE = VBoxBsTestImg
153bootsector2-cpu-a20-1_SOURCES = bootsector2-cpu-a20-1.asm
154
155MISCBINS += bootsector2-cpu-basic-1
156bootsector2-cpu-basic-1_TEMPLATE = VBoxBsTestImg
157bootsector2-cpu-basic-1_SOURCES = bootsector2-cpu-basic-1.asm
158
159MISCBINS += bootsector2-cpu-ac-loop
160bootsector2-cpu-ac-loop_TEMPLATE = VBoxBsTestImg
161bootsector2-cpu-ac-loop_SOURCES = bootsector2-cpu-ac-loop.asm
162
163MISCBINS += bootsector2-cpu-db-loop
164bootsector2-cpu-db-loop_TEMPLATE = VBoxBsTestImg
165bootsector2-cpu-db-loop_SOURCES = bootsector2-cpu-db-loop.asm
166
167MISCBINS += bootsector2-boot-registers-1
168bootsector2-boot-registers-1_TEMPLATE = VBoxBsTestImg
169bootsector2-boot-registers-1_SOURCES = bootsector2-boot-registers-1.asm
170
171MISCBINS += bootsector2-triple-fault-1
172bootsector2-triple-fault-1_TEMPLATE = VBoxBsTestImg
173bootsector2-triple-fault-1_SOURCES = bootsector2-triple-fault-1.asm
174
175
176ifeq ($(USERNAME),birdxx)
177 if1of ($(KBUILD_HOST).$(KBUILD_HOST_ARCH), win.amd64)
178 #
179 # Generated instruction tests (work in progress).
180 #
181
182 VBOX_PATH_VBINSTST = $(PATH_ROOT)/src/VBox/VMM/testcase/Instructions
183 VBOX_VBINSTST_GEN = $(VBOX_PATH_VBINSTST)/InstructionTestGen.py
184 VBOX_BOOTSECTOR2_VBINSTST_AMD64_GEN = $(VBOX_BLD_PYTHON) $(VBOX_VBINSTST_GEN) \
185 --split 3 --target bs2-r0-64 --output-base $(bootsectors_0_OUTDIR)/VBInsTst-64 --test-size tiny
186 VBOX_BOOTSECTOR2_VBINSTST_AMD64_FILES = $(shell $(VBOX_BOOTSECTOR2_VBINSTST_AMD64_GEN) --makefile-mode)
187
188 #$$(bootsectors_0_OUTDIR)/VBInsTst.ts + $$(VBOX_BOOTSECTOR2_VBINSTST_AMD64_FILES): $(VBOX_VBINSTST_GEN) | $$(dir $$@)
189 # $(VBOX_BOOTSECTOR2_VBINSTST_AMD64_GEN)
190 # $(APPEND) -t $@
191 #
192 #bootsectors_SOURCES += $(bootsectors_0_OUTDIR)/bootsector2-vbinstst-1.img
193 #bootsectors_CLEAN += $(VBOX_BOOTSECTOR2_VBINSTST_AMD64_FILES)
194 #
195 #$$(bootsectors_0_OUTDIR)/bootsector2-vbinstst-1.img: \
196 # $(PATH_SUB_CURRENT)/bootsector2-vbinstst-64-1.asm \
197 # $$(bootsectors_0_OUTDIR)/VBInsTst-64.asm
198 # $(TOOL_$(VBOX_ASTOOL)_AS) -f bin -D ASM_FORMAT_BIN -I $(dir $@) -I $(PATH_ROOT)/include -I $(VBOX_PATH_VBINSTST) -o $@ -L nasm -l [email protected] $<
199
200 MISCBINS += bootsector2-vbinstst-kernel
201 bootsector2-vbinstst-kernel_TEMPLATE = VBoxBsTestImg
202 bootsector2-vbinstst-kernel_SOURCES = \
203 bootsector2-vbinstst-kernel.asm
204
205
206 MISCBINS += bootsector2-vbinstst-64-1
207 bootsector2-vbinstst-64-1_TEMPLATE = VBoxBsTestImg
208 bootsector2-vbinstst-64-1_DEFS = \
209 BS2_BIG_IMAGE_LM64 \
210 BS2_BIG_IMAGE_GEN_SOURCE_FILE=bs2-vbinstst-64-1.asm \
211 BS2_BIG_IMAGE_GEN_TEST_NAME=\"bs2-vbinstst-64-1\"
212 bootsector2-vbinstst-64-1_INCS = $(bootsector2-vbinstst-64-1_0_OUTDIR)/
213 bootsector2-vbinstst-64-1_SOURCES = \
214 bootsector2-vbinstst-kernel.asm \
215 bootsector2-vbinstst-big-template.asm
216 bootsector2-vbinstst-64-1_INTERMEDIATES = \
217 $(bootsector2-vbinstst-64-1_0_OUTDIR)/bs2-vbinstst-64-1.asm
218 bootsector2-vbinstst-64-1_CLEAN = \
219 $(bootsector2-vbinstst-64-1_0_OUTDIR)/bs2-vbinstst-64-1.asm
220
221 $$(bootsector2-vbinstst-64-1_0_OUTDIR)/bs2-vbinstst-64-1.asm: $(VBOX_VBINSTST_GEN) | $$(dir $$@)
222 $(REDIRECT) -0 /dev/null -- $(VBOX_BLD_PYTHON) $(VBOX_VBINSTST_GEN) --target bs2-r0-64-big --output-base $(basename $@) --test-size medium
223
224 MISCBINS += bootsector2-vbinstst-32-1
225 bootsector2-vbinstst-32-1_TEMPLATE = VBoxBsTestImg
226 bootsector2-vbinstst-32-1_DEFS = \
227 BS2_BIG_IMAGE_PP32 \
228 BS2_BIG_IMAGE_GEN_SOURCE_FILE=bs2-vbinstst-32-1.asm \
229 BS2_BIG_IMAGE_GEN_TEST_NAME=\"bs2-vbinstst-32-1\"
230 bootsector2-vbinstst-32-1_INCS = $(bootsector2-vbinstst-32-1_0_OUTDIR)/
231 bootsector2-vbinstst-32-1_SOURCES = \
232 bootsector2-vbinstst-kernel.asm \
233 bootsector2-vbinstst-big-template.asm
234 bootsector2-vbinstst-32-1_INTERMEDIATES = \
235 $(bootsector2-vbinstst-32-1_0_OUTDIR)/bs2-vbinstst-32-1.asm
236 bootsector2-vbinstst-32-1_CLEAN = \
237 $(bootsector2-vbinstst-32-1_0_OUTDIR)/bs2-vbinstst-32-1.asm
238
239 $$(bootsector2-vbinstst-32-1_0_OUTDIR)/bs2-vbinstst-32-1.asm: $(VBOX_VBINSTST_GEN) | $$(dir $$@)
240 $(REDIRECT) -0 /dev/null -- $(VBOX_BLD_PYTHON) $(VBOX_VBINSTST_GEN) --target bs2-r0-32-big --output-base $(basename $@) --test-size medium
241
242 endif
243endif # bird-only
244
245
246ifdef VBOX_WITH_BS3KIT
247 #
248 # Bs3kit
249 #
250
251 #
252 # APIC
253 #
254 MISCBINS += bs3-apic-1
255 bs3-apic-1_TEMPLATE = VBoxBS3KitImg
256 bs3-apic-1_SOURCES = \
257 bs3kit/bs3-first-rm.asm \
258 bs3-apic-1.c \
259 bs3-apic-1-32.c32
260
261
262 # CPU basics #2 (first being bootsector2-cpu-basic-1).
263 MISCBINS += bs3-cpu-basic-2
264 bs3-cpu-basic-2_TEMPLATE = VBoxBS3KitImg
265 bs3-cpu-basic-2_INCS = .
266 bs3-cpu-basic-2_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-cpu-basic-2-template.c
267 bs3-cpu-basic-2_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-cpu-basic-2-template.c
268 bs3-cpu-basic-2_SOURCES = \
269 bs3kit/bs3-first-rm.asm \
270 bs3-cpu-basic-2.c \
271 bs3-cpu-basic-2-x0.c \
272 bs3-cpu-basic-2-32.c32 \
273 bs3-cpu-basic-2-pf.c32 \
274 bs3-cpu-basic-2-invlpg.c32 \
275 bs3kit/bs3-cmn-instantiate-x0.c16 \
276 bs3kit/bs3-cmn-instantiate.c32 \
277 bs3kit/bs3-cmn-instantiate.c64 \
278 bs3-cpu-basic-2-asm.asm
279 bs3-cpu-basic-2-template.o:: \
280 $$(bs3-cpu-basic-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate-x0.o16 \
281 $$(bs3-cpu-basic-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
282 $$(bs3-cpu-basic-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
283 $$(bs3-cpu-basic-2_0_OUTDIR)/bs3-cpu-basic-2-asm.o16
284
285 # CPU basics #3 (first being bootsector2-cpu-basic-1).
286 MISCBINS += bs3-cpu-basic-3
287 bs3-cpu-basic-3_TEMPLATE = VBoxBS3KitImgBig
288 bs3-cpu-basic-3_INCS = .
289 bs3-cpu-basic-3_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-cpu-basic-3-cmn-template.c
290 #bs3-cpu-basic-3_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-cpu-basic-3-mode-template.c
291 bs3-cpu-basic-3_SOURCES = \
292 bs3kit/bs3-first-rm.asm \
293 bs3-cpu-basic-3.c \
294 bs3kit/bs3-cmn-instantiate-x0.c16 \
295 bs3kit/bs3-cmn-instantiate.c32 \
296 bs3kit/bs3-cmn-instantiate.c64 \
297 bs3-cpu-basic-3-asm.asm \
298 $(bs3-cpu-basic-3-high_1_TARGET)
299 bs3-cpu-basic-3-cmn-template.o:: \
300 $$(bs3-cpu-basic-3_0_OUTDIR)/bs3kit/bs3-cmn-instantiate-x0.o16 \
301 $$(bs3-cpu-basic-3_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
302 $$(bs3-cpu-basic-3_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
303 $$(bs3-cpu-basic-3_0_OUTDIR)/bs3-cpu-basic-3-asm.o16
304
305 MISCBINS += bs3-cpu-basic-3-high
306 bs3-cpu-basic-3-high_TEMPLATE = VBoxBS3KitHighImg
307 bs3-cpu-basic-3-high_INCS = . $(bs3-cpu-basic-3-high_0_OUTDIR)
308 bs3-cpu-basic-3-high_SOURCES = \
309 bs3kit/bs3-first-high-image.asm \
310 bs3-cpu-basic-3-high-asm.asm
311 bs3-cpu-basic-3-high_INTERMEDIATES = $(bs3-cpu-basic-3-high_0_OUTDIR)/bs3-cpu-basic-3-high-lea64.inc
312 bs3-cpu-basic-3-high_CLEANS = $(bs3-cpu-basic-3-high_0_OUTDIR)/bs3-cpu-basic-3-high-lea64.inc
313 $$(bs3-cpu-basic-3-high_0_OUTDIR)/bs3-cpu-basic-3-high-lea64.inc: \
314 $(PATH_SUB_CURRENT)/bs3-cpu-basic-3-high-lea64.py | $$(dir $$@)
315 $(call MSG_GENERATE,bs3-cpu-basic-3-high,$@)
316 $(QUIET)$(REDIRECT) -0 /dev/null -- $(TIME) $(VBOX_BLD_PYTHON) "$<" "$@"
317
318 #
319 # CPU weird stuff #1.
320 #
321 MISCBINS += bs3-cpu-weird-1
322 bs3-cpu-weird-1_TEMPLATE = VBoxBS3KitImg
323 bs3-cpu-weird-1_INCS = .
324 bs3-cpu-weird-1_SOURCES = \
325 bs3kit/bs3-first-rm.asm \
326 bs3-cpu-weird-1.c \
327 bs3-cpu-weird-1-x0.c \
328 bs3-cpu-weird-1-asm.asm
329
330 #
331 # 64-bit CPU state #1.
332 #
333 MISCBINS += bs3-cpu-state64-1
334 bs3-cpu-state64-1_TEMPLATE = VBoxBS3KitImg
335 bs3-cpu-state64-1_INCS = .
336 bs3-cpu-state64-1_SOURCES = \
337 bs3kit/bs3-first-init-all-lm64.asm \
338 bs3-cpu-state64-1.c64 \
339 bs3-cpu-state64-1-asm.asm
340
341 #
342 # FPU state corruption checker.
343 #
344 MISCBINS += bs3-fpustate-1
345 bs3-fpustate-1_TEMPLATE = VBoxBS3KitImg
346 bs3-fpustate-1_INCS = .
347 bs3-fpustate-1_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-fpustate-1-template.c
348 bs3-fpustate-1_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-fpustate-1-template.c
349 bs3-fpustate-1_SOURCES = \
350 bs3kit/bs3-first-rm.asm \
351 bs3-fpustate-1.c \
352 bs3kit/bs3-cmn-instantiate.c16 \
353 bs3kit/bs3-cmn-instantiate.c32 \
354 bs3kit/bs3-cmn-instantiate.c64 \
355 bs3-fpustate-1-asm.asm
356 bs3-fpustate-1-template.o:: \
357 $$(bs3-fpustate-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o16 \
358 $$(bs3-fpustate-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
359 $$(bs3-fpustate-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
360 $$(bs3-fpustate-1_0_OUTDIR)/bs3-fpustate-1-asm.o16
361
362 #
363 # CPU instruction decoding experiments.
364 #
365 MISCBINS += bs3-cpu-decoding-1
366 bs3-cpu-decoding-1_TEMPLATE = VBoxBS3KitImg
367 bs3-cpu-decoding-1_INCS = .
368 bs3-cpu-decoding-1_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-cpu-decoding-1-template.c
369 bs3-cpu-decoding-1_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-cpu-decoding-1-template.c
370 bs3-cpu-decoding-1_SOURCES = \
371 bs3kit/bs3-first-init-all-pp32.asm \
372 bs3-cpu-decoding-1.c32 \
373 bs3-cpu-decoding-1-asm.asm
374 # bs3kit/bs3-cmn-instantiate.c16 \
375 # bs3kit/bs3-cmn-instantiate.c32 \
376 # bs3kit/bs3-cmn-instantiate.c64
377 bs3-cpu-decoding-1-template.o:: \
378 $$(bs3-cpu-decoding-1_0_OUTDIR)/bs3-cpu-decoding-1-asm.o16
379 # $$(bs3-cpu-decoding-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o16 \
380 # $$(bs3-cpu-decoding-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
381 # $$(bs3-cpu-decoding-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
382
383
384 #
385 # CPU instructions #2 (first being bootsector2-cpu-instr-1).
386 #
387 MISCBINS += bs3-cpu-instr-2
388 bs3-cpu-instr-2_TEMPLATE = VBoxBS3KitImg
389 bs3-cpu-instr-2_INCS = . $(bs3-cpu-instr-2_0_OUTDIR)
390 bs3-cpu-instr-2_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-cpu-instr-2-template.c
391 bs3-cpu-instr-2_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-cpu-instr-2-template.c
392 bs3-cpu-instr-2_SOURCES = \
393 bs3kit/bs3-first-rm.asm \
394 bs3-cpu-instr-2.c \
395 bs3-cpu-instr-2-asm.asm \
396 bs3-cpu-instr-2-data16.c16 \
397 bs3-cpu-instr-2-data16-amd.c16 \
398 bs3-cpu-instr-2-data16-intel.c16 \
399 bs3-cpu-instr-2-data64.c64 \
400 bs3-cpu-instr-2-data64-amd.c64 \
401 bs3-cpu-instr-2-data64-intel.c64 \
402 bs3kit/bs3-cmn-instantiate-x0.c16 \
403 bs3kit/bs3-cmn-instantiate.c32 \
404 bs3kit/bs3-cmn-instantiate.c64
405 bs3-cpu-instr-2_CLEANS = $(bs3-cpu-instr-2_0_OUTDIR)/bs3-cpu-instr-2-asm-auto.h
406
407 bs3-cpu-instr-2_bs3kit/bs3-cmn-instantiate-x0.c16_DEPS = $(bs3-cpu-instr-2_0_OUTDIR)/bs3-cpu-instr-2-asm-auto.h
408 bs3-cpu-instr-2_bs3kit/bs3-cmn-instantiate.c32_DEPS = $(bs3-cpu-instr-2_0_OUTDIR)/bs3-cpu-instr-2-asm-auto.h
409 bs3-cpu-instr-2_bs3kit/bs3-cmn-instantiate.c64_DEPS = $(bs3-cpu-instr-2_0_OUTDIR)/bs3-cpu-instr-2-asm-auto.h
410
411 $$(bs3-cpu-instr-2_0_OUTDIR)/bs3-cpu-instr-2-asm-auto.h: \
412 $$(VBoxBs3Obj2Hdr_1_TARGET) $$(bs3-cpu-instr-2_0_OUTDIR)/bs3-cpu-instr-2-asm.o16
413 $(VBoxBs3Obj2Hdr_1_TARGET) --output "$@" "$(bs3-cpu-instr-2_0_OUTDIR)/bs3-cpu-instr-2-asm.o16"
414
415 bs3-cpu-instr-2-template.o:: \
416 $$(bs3-cpu-instr-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate-x0.o16 \
417 $$(bs3-cpu-instr-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
418 $$(bs3-cpu-instr-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
419 $$(bs3-cpu-instr-2_0_OUTDIR)/bs3-cpu-instr-2-asm.o16
420
421
422
423 BLDPROGS.amd64 += bs3-cpu-instr-2-gen
424 bs3-cpu-instr-2-gen_TEMPLATE = VBoxAdvBldProg
425 bs3-cpu-instr-2-gen_SOURCES = \
426 bs3-cpu-instr-2-gen.cpp \
427 bs3-cpu-instr-2-gen-asm.asm
428
429 #
430 # CPU instructions #3 - SSE, ++.
431 #
432 MISCBINS += bs3-cpu-instr-3
433 bs3-cpu-instr-3_TEMPLATE = VBoxBS3KitImg
434 bs3-cpu-instr-3_INCS = . $(bs3-cpu-instr-3_0_OUTDIR)
435 bs3-cpu-instr-3_SOURCES = \
436 bs3kit/bs3-first-init-all-pe32.asm \
437 bs3-cpu-instr-3.c32 \
438 bs3-cpu-instr-3-asm.asm
439 bs3-cpu-instr-3.c32_DEPS = $(bs3-cpu-instr-3_0_OUTDIR)/bs3-cpu-instr-3-asm-auto.h
440 bs3-cpu-instr-3_CLEANS = $(bs3-cpu-instr-3_0_OUTDIR)/bs3-cpu-instr-3-asm-auto.h
441
442 $$(bs3-cpu-instr-3_0_OUTDIR)/bs3-cpu-instr-3-asm-auto.h: \
443 $$(VBoxBs3Obj2Hdr_1_TARGET) $$(bs3-cpu-instr-3_0_OUTDIR)/bs3-cpu-instr-3-asm.o16
444 $(VBoxBs3Obj2Hdr_1_TARGET) --output "$@" "$(bs3-cpu-instr-3_0_OUTDIR)/bs3-cpu-instr-3-asm.o16"
445
446 bs3-cpu-instr-3-template.o:: \
447 $$(bs3-cpu-instr-3_0_OUTDIR)/bs3-cpu-instr-3-asm.o16
448
449 #
450 # CPU instructions #4 - SSE, AVX, ++ FPU instructions.
451 #
452 MISCBINS += bs3-cpu-instr-4
453 bs3-cpu-instr-4_TEMPLATE = VBoxBS3KitImg
454 bs3-cpu-instr-4_INCS = . $(bs3-cpu-instr-4_0_OUTDIR)
455 bs3-cpu-instr-4_SOURCES = \
456 bs3kit/bs3-first-init-all-pe32.asm \
457 bs3-cpu-instr-4.c32 \
458 bs3-cpu-instr-4-asm.asm
459 bs3-cpu-instr-4.c32_DEPS = $(bs3-cpu-instr-4_0_OUTDIR)/bs3-cpu-instr-4-asm-auto.h
460 bs3-cpu-instr-4_CLEANS = $(bs3-cpu-instr-4_0_OUTDIR)/bs3-cpu-instr-4-asm-auto.h
461
462 $$(bs3-cpu-instr-4_0_OUTDIR)/bs3-cpu-instr-4-asm-auto.h: \
463 $$(VBoxBs3Obj2Hdr_1_TARGET) $$(bs3-cpu-instr-4_0_OUTDIR)/bs3-cpu-instr-4-asm.o16
464 $(VBoxBs3Obj2Hdr_1_TARGET) --output "$@" "$(bs3-cpu-instr-4_0_OUTDIR)/bs3-cpu-instr-4-asm.o16"
465
466 bs3-cpu-instr-4-template.o:: \
467 $$(bs3-cpu-instr-4_0_OUTDIR)/bs3-cpu-instr-4-asm.o16
468
469 #
470 # CPU generated instruction tests #1
471 #
472 MISCBINS += bs3-cpu-generated-1
473 bs3-cpu-generated-1_TEMPLATE = VBoxBS3KitImg
474 bs3-cpu-generated-1_INCS = .
475 bs3-cpu-generated-1_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-cpu-generated-1-template.c
476 bs3-cpu-generated-1_SOURCES = \
477 bs3kit/bs3-first-rm.asm \
478 bs3-cpu-generated-1.c \
479 bs3-cpu-generated-1-asm.asm \
480 bs3kit/bs3-cmn-instantiate-x0.c16 \
481 bs3kit/bs3-cmn-instantiate.c32 \
482 bs3kit/bs3-cmn-instantiate.c64 \
483 $(bs3-cpu-generated-1_0_OUTDIR)/bs3-cpu-generated-1-data.c16
484 bs3-cpu-generated-1_CLEAN = $(bs3-cpu-generated-1_0_OUTDIR)/bs3-cpu-generated-1-data.c16
485
486 bs3-cpu-generated-1-template.o:: \
487 $$(bs3-cpu-generated-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate-x0.o16 \
488 $$(bs3-cpu-generated-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
489 $$(bs3-cpu-generated-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
490 $$(bs3-cpu-generated-1_0_OUTDIR)/bs3-cpu-generated-1-asm.o16
491
492 $$(bs3-cpu-generated-1_0_OUTDIR)/bs3-cpu-generated-1-data.c16: \
493 $(PATH_SUB_CURRENT)/bs3-cpu-generated-1-data.py \
494 $(PATH_SUB_CURRENT)/../../VMM/VMMAll/IEMAllInstPython.py \
495 $(PATH_SUB_CURRENT)/../../VMM/VMMAll/IEMAllInst*.cpp.h \
496 | $$(dir $$@)
497 $(REDIRECT) -0 /dev/null -- $(VBOX_BLD_PYTHON) $< $@
498
499 #
500 # Memory allocation.
501 #
502 MISCBINS += bs3-memalloc-1
503 bs3-memalloc-1_TEMPLATE = VBoxBS3KitImg
504 bs3-memalloc-1_INCS = .
505 bs3-memalloc-1_SOURCES = \
506 bs3kit/bs3-first-init-all-lm64.asm \
507 bs3-memalloc-1.c64
508
509
510 #
511 # Timer Interrupts
512 #
513 MISCBINS += bs3-timers-1
514 bs3-timers-1_TEMPLATE = VBoxBS3KitImg
515 bs3-timers-1_INCS = .
516 bs3-timers-1_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-timers-1-template.c
517 bs3-timers-1_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-timers-1-template.c
518 bs3-timers-1_SOURCES = \
519 bs3kit/bs3-first-rm.asm \
520 bs3-timers-1.c \
521 bs3-timers-1-x0.c \
522 bs3-timers-1-asm.asm
523
524 #
525 # Timing
526 #
527 MISCBINS += bs3-timing-1
528 bs3-timing-1_TEMPLATE = VBoxBS3KitImg
529 bs3-timing-1_INCS = .
530 bs3-timing-1_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-timing-1-template.c
531 bs3-timing-1_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-timing-1-template.c
532 bs3-timing-1_SOURCES = \
533 bs3kit/bs3-first-rm.asm \
534 bs3-timing-1.c \
535 bs3-timing-1-32.c32
536
537 #
538 # Lock contention and interruption.
539 #
540 MISCBINS += bs3-locking-1
541 bs3-locking-1_TEMPLATE = VBoxBS3KitImg
542 bs3-locking-1_INCS = .
543 bs3-locking-1_SOURCES = \
544 bs3kit/bs3-first-rm.asm \
545 bs3-locking-1.c
546
547endif # VBOX_WITH_BS3KIT
548
549
550#
551# Executable version of the bs3-timing-1 bootsector.
552#
553PROGRAMS += bs3-timing-1-exe
554bs3-timing-1-exe_TEMPLATE = VBoxValidationKitR3
555bs3-timing-1-exe_NAME = bs3-timing-1
556bs3-timing-1-exe_SOURCES = bs3-timing-1-exe.c
557
558
559#
560# pylint
561#
562VBOX_VALIDATIONKIT_PYTHON_SOURCES += $(wildcard $(PATH_SUB_CURRENT)/*.py)
563$(evalcall def_vbox_validationkit_process_python_sources)
564
565include $(FILE_KBUILD_SUB_FOOTER)
566
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