VirtualBox

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

Last change on this file since 58588 was 58588, checked in by vboxsync, 9 years ago

bs3kit: kick off; to laptop.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 11.3 KB
Line 
1# $Id: Makefile.kmk 58588 2015-11-05 15:45:36Z vboxsync $
2## @file
3# VirtualBox Validation Kit - Bootsector Tests for Test Drivers or standalone testing.
4#
5
6#
7# Copyright (C) 2006-2015 Oracle Corporation
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.virtualbox.org. This file is free software;
11# you can redistribute it and/or modify it under the terms of the GNU
12# General Public License (GPL) as published by the Free Software
13# Foundation, in version 2 as it comes in the "COPYING" file of the
14# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16#
17# The contents of this file may alternatively be used under the terms
18# of the Common Development and Distribution License Version 1.0
19# (CDDL) only, as it comes in the "COPYING.CDDL" file of the
20# VirtualBox OSE distribution, in which case the provisions of the
21# CDDL are applicable instead of those of the GPL.
22#
23# You may elect to license modified versions of this file under the
24# terms and conditions of either the GPL or the CDDL or both.
25#
26
27SUB_DEPTH = ../../../..
28include $(KBUILD_PATH)/subheader.kmk
29
30
31#
32# Boot Sector "Linker" tool.
33#
34TOOL_VBoxBootSectorLd = Joins one or more BS2 object files into a floppy img.
35TOOL_VBoxBootSectorLd_LINK_MISCBIN_OUTPUT =
36TOOL_VBoxBootSectorLd_LINK_MISCBIN_DEPEND =
37TOOL_VBoxBootSectorLd_LINK_MISCBIN_DEPORD = $(VBoxBs2Linker_1_TARGET)
38define TOOL_VBoxBootSectorLd_LINK_MISCBIN_CMDS
39 $(VBoxBs2Linker_1_TARGET) -o $(out) $(objs) $(othersrc)
40endef
41
42BLDPROGS += VBoxBs2Linker
43VBoxBs2Linker_TEMPLATE = VBoxBldProg
44VBoxBs2Linker_SOURCES = VBoxBs2Linker.cpp
45
46
47#
48# Makes a boot sector test image.
49#
50TEMPLATE_VBoxBsTestImg = kBuild tool config for building boot sector stuff.
51TEMPLATE_VBoxBsTestImg_INST = $(INST_VALIDATIONKIT)bootsectors/
52TEMPLATE_VBoxBsTestImg_BINSUFF = .img
53TEMPLATE_VBoxBsTestImg_MODE = 0644
54TEMPLATE_VBoxBsTestImg_ASTOOL = YASM
55TEMPLATE_VBoxBsTestImg_ASFLAGS:= -f bin -P $(PATH_SUB_CURRENT)/bootsector2-first.mac $(VBOX_YASM_Wno-segreg-in-64bit) --mapfile
56TEMPLATE_VBoxBsTestImg_ASDEFS = ASM_FORMAT_BIN
57TEMPLATE_VBoxBsTestImg_INCS = \
58 . \
59 ../../VMM/testcase/Instructions
60TEMPLATE_VBoxBsTestImg_LDTOOL = VBoxBootSectorLd
61
62
63#
64# The boot sector tests.
65#
66MISCBINS += bootsector-shutdown
67bootsector-shutdown_TEMPLATE = VBoxBsTestImg
68bootsector-shutdown_SOURCES = bootsector-shutdown.asm
69
70MISCBINS += bootsector-pae
71bootsector-pae_TEMPLATE = VBoxBsTestImg
72bootsector-pae_SOURCES = bootsector-pae.asm
73
74MISCBINS += bootsector-empty
75bootsector-empty_TEMPLATE = VBoxBsTestImg
76bootsector-empty_SOURCES = bootsector-empty.asm
77
78MISCBINS += bootsector2-test1
79bootsector2-test1_TEMPLATE = VBoxBsTestImg
80bootsector2-test1_SOURCES = bootsector2-test1.asm
81
82MISCBINS += bootsector2-cpu-hidden-regs-1
83bootsector2-cpu-hidden-regs-1_TEMPLATE = VBoxBsTestImg
84bootsector2-cpu-hidden-regs-1_SOURCES = bootsector2-cpu-hidden-regs-1.asm
85
86MISCBINS += bootsector2-cpu-instr-1
87bootsector2-cpu-instr-1_TEMPLATE = VBoxBsTestImg
88bootsector2-cpu-instr-1_SOURCES = bootsector2-cpu-instr-1.asm
89
90MISCBINS += bootsector2-cpu-pf-1
91bootsector2-cpu-pf-1_TEMPLATE = VBoxBsTestImg
92bootsector2-cpu-pf-1_SOURCES = bootsector2-cpu-pf-1.asm
93
94MISCBINS += bootsector2-cpu-xcpt-1
95bootsector2-cpu-xcpt-1_TEMPLATE = VBoxBsTestImg
96bootsector2-cpu-xcpt-1_SOURCES = bootsector2-cpu-xcpt-1.asm
97
98MISCBINS += bootsector2-cpu-xcpt-2
99bootsector2-cpu-xcpt-2_TEMPLATE = VBoxBsTestImg
100bootsector2-cpu-xcpt-2_SOURCES = bootsector2-cpu-xcpt-2.asm
101
102MISCBINS += bootsector2-cpu-a20-1
103bootsector2-cpu-a20-1_TEMPLATE = VBoxBsTestImg
104bootsector2-cpu-a20-1_SOURCES = bootsector2-cpu-a20-1.asm
105
106MISCBINS += bootsector2-cpu-basic-1
107bootsector2-cpu-basic-1_TEMPLATE = VBoxBsTestImg
108bootsector2-cpu-basic-1_SOURCES = bootsector2-cpu-basic-1.asm
109
110MISCBINS += bootsector2-boot-registers-1
111bootsector2-boot-registers-1_TEMPLATE = VBoxBsTestImg
112bootsector2-boot-registers-1_SOURCES = bootsector2-boot-registers-1.asm
113
114MISCBINS += bootsector2-triple-fault-1
115bootsector2-triple-fault-1_TEMPLATE = VBoxBsTestImg
116bootsector2-triple-fault-1_SOURCES = bootsector2-triple-fault-1.asm
117
118
119ifeq ($(USERNAME),birdxx)
120 if1of ($(KBUILD_HOST).$(KBUILD_HOST_ARCH),win.amd64)
121#
122# Generated instruction tests (work in progress).
123#
124
125VBOX_PATH_VBINSTST = $(PATH_ROOT)/src/VBox/VMM/testcase/Instructions
126VBOX_VBINSTST_GEN = $(VBOX_PATH_VBINSTST)/InstructionTestGen.py
127VBOX_BOOTSECTOR2_VBINSTST_AMD64_GEN = $(VBOX_BLD_PYTHON) $(VBOX_VBINSTST_GEN) \
128 --split 3 --target bs2-r0-64 --output-base $(bootsectors_0_OUTDIR)/VBInsTst-64 --test-size tiny
129VBOX_BOOTSECTOR2_VBINSTST_AMD64_FILES = $(shell $(VBOX_BOOTSECTOR2_VBINSTST_AMD64_GEN) --makefile-mode)
130
131#$$(bootsectors_0_OUTDIR)/VBInsTst.ts + $$(VBOX_BOOTSECTOR2_VBINSTST_AMD64_FILES): $(VBOX_VBINSTST_GEN) | $$(dir $$@)
132# $(VBOX_BOOTSECTOR2_VBINSTST_AMD64_GEN)
133# $(APPEND) -t $@
134#
135#bootsectors_SOURCES += $(bootsectors_0_OUTDIR)/bootsector2-vbinstst-1.img
136#bootsectors_CLEAN += $(VBOX_BOOTSECTOR2_VBINSTST_AMD64_FILES)
137#
138#$$(bootsectors_0_OUTDIR)/bootsector2-vbinstst-1.img: \
139# $(PATH_SUB_CURRENT)/bootsector2-vbinstst-64-1.asm \
140# $$(bootsectors_0_OUTDIR)/VBInsTst-64.asm
141# $(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] $<
142
143MISCBINS += bootsector2-vbinstst-kernel
144bootsector2-vbinstst-kernel_TEMPLATE = VBoxBsTestImg
145bootsector2-vbinstst-kernel_SOURCES = \
146 bootsector2-vbinstst-kernel.asm
147
148
149MISCBINS += bootsector2-vbinstst-64-1
150bootsector2-vbinstst-64-1_TEMPLATE = VBoxBsTestImg
151bootsector2-vbinstst-64-1_DEFS = \
152 BS2_BIG_IMAGE_LM64 \
153 BS2_BIG_IMAGE_GEN_SOURCE_FILE=bs2-vbinstst-64-1.asm \
154 BS2_BIG_IMAGE_GEN_TEST_NAME=\"bs2-vbinstst-64-1\"
155bootsector2-vbinstst-64-1_INCS = $(bootsector2-vbinstst-64-1_0_OUTDIR)/
156bootsector2-vbinstst-64-1_SOURCES = \
157 bootsector2-vbinstst-kernel.asm \
158 bootsector2-vbinstst-big-template.asm
159bootsector2-vbinstst-64-1_INTERMEDIATES = \
160 $(bootsector2-vbinstst-64-1_0_OUTDIR)/bs2-vbinstst-64-1.asm
161bootsector2-vbinstst-64-1_CLEAN = \
162 $(bootsector2-vbinstst-64-1_0_OUTDIR)/bs2-vbinstst-64-1.asm
163
164$$(bootsector2-vbinstst-64-1_0_OUTDIR)/bs2-vbinstst-64-1.asm: $(VBOX_VBINSTST_GEN) | $$(dir $$@)
165 $(VBOX_BLD_PYTHON) $(VBOX_VBINSTST_GEN) --target bs2-r0-64-big --output-base $(basename $@) --test-size medium
166
167MISCBINS += bootsector2-vbinstst-32-1
168bootsector2-vbinstst-32-1_TEMPLATE = VBoxBsTestImg
169bootsector2-vbinstst-32-1_DEFS = \
170 BS2_BIG_IMAGE_PP32 \
171 BS2_BIG_IMAGE_GEN_SOURCE_FILE=bs2-vbinstst-32-1.asm \
172 BS2_BIG_IMAGE_GEN_TEST_NAME=\"bs2-vbinstst-32-1\"
173bootsector2-vbinstst-32-1_INCS = $(bootsector2-vbinstst-32-1_0_OUTDIR)/
174bootsector2-vbinstst-32-1_SOURCES = \
175 bootsector2-vbinstst-kernel.asm \
176 bootsector2-vbinstst-big-template.asm
177bootsector2-vbinstst-32-1_INTERMEDIATES = \
178 $(bootsector2-vbinstst-32-1_0_OUTDIR)/bs2-vbinstst-32-1.asm
179bootsector2-vbinstst-32-1_CLEAN = \
180 $(bootsector2-vbinstst-32-1_0_OUTDIR)/bs2-vbinstst-32-1.asm
181
182$$(bootsector2-vbinstst-32-1_0_OUTDIR)/bs2-vbinstst-32-1.asm: $(VBOX_VBINSTST_GEN) | $$(dir $$@)
183 $(VBOX_BLD_PYTHON) $(VBOX_VBINSTST_GEN) --target bs2-r0-32-big --output-base $(basename $@) --test-size medium
184
185 endif
186endif # bird-only
187
188
189ifeq ($(USER),bird) # work in progress.
190
191#
192# BS3Kit
193#
194
195# Dummy CP "linker" tool.
196TOOL_VBoxBsCpLd = Dummy copy linker.
197TOOL_VBoxBsCpLd_LINK_MISCBIN_OUTPUT =
198TOOL_VBoxBsCpLd_LINK_MISCBIN_DEPEND =
199TOOL_VBoxBsCpLd_LINK_MISCBIN_DEPORD =
200define TOOL_VBoxBsCpLd_LINK_MISCBIN_CMDS
201 $(CP) -- $(objs) $(othersrc) "$(out)"
202endef
203
204# Dummy exit 1 "linker" tool.
205TOOL_VBoxBsUnusedLd = Dummy unused linker.
206TOOL_VBoxBsUnusedLd_LINK_MISCBIN_OUTPUT =
207TOOL_VBoxBsUnusedLd_LINK_MISCBIN_DEPEND =
208TOOL_VBoxBsUnusedLd_LINK_MISCBIN_DEPORD =
209define TOOL_VBoxBsUnusedLd_LINK_MISCBIN_CMDS
210 echo "cannot use this template for linking"
211 exit 1
212endef
213
214# BS3Kit template for assembly and 16-bit code.
215TEMPLATE_VBoxBS3KitImg = Template for building BS3Kit test images.
216TEMPLATE_VBoxBS3KitImg_INST = $(INST_VALIDATIONKIT)bootsectors/
217TEMPLATE_VBoxBS3KitImg_BINSUFF = .img
218TEMPLATE_VBoxBS3KitImg_MODE = 0644
219TEMPLATE_VBoxBS3KitImg_ASTOOL = NASM
220TEMPLATE_VBoxBS3KitImg_ASFLAGS := -f obj -g -w+orphan-labels #-P $(PATH_SUB_CURRENT)/bootsector2-first.mac
221TEMPLATE_VBoxBS3KitImg_ASDEFS = ASM_FORMAT_OMF __NASM__
222TEMPLATE_VBoxBS3KitImg_ARTOOL = OPENWATCOM-16
223TEMPLATE_VBoxBS3KitImg_CTOOL = OPENWATCOM-16
224TEMPLATE_VBoxBS3KitImg_CXXTOOL = OPENWATCOM-16
225TEMPLATE_VBoxBS3KitImg_CFLAGS = -nt=TEXT16 -nd=DATA16 -nc=CODE16
226TEMPLATE_VBoxBS3KitImg_CXXFLAGS = -nt=TEXT16 -nd=DATA16 -nc=CODE16
227TEMPLATE_VBoxBS3KitImg_INCS = bs3kit .
228TEMPLATE_VBoxBS3KitImg_LDTOOL = OPENWATCOM-WL
229TEMPLATE_VBoxBS3KitImg_LDFLAGS = \
230 output raw offset=0x10000 \
231 order \
232 clname CODE16 \
233 segment TEXT16 segaddr=0x1000 \
234 clname DATA16 \
235 segment DATA16 segaddr=0x1000 \
236 clname CODE32 \
237 segment TEXT32 \
238 clname DATA32 \
239 segment DATA32
240
241# BS3Kit template for 32-bit code.
242TEMPLATE_VBoxBS3KitImg32 = Template for building BS3Kit test images.
243TEMPLATE_VBoxBS3KitImg32_INSTTYPE = none
244TEMPLATE_VBoxBS3KitImg32_ASTOOL = NASM
245TEMPLATE_VBoxBS3KitImg32_ASFLAGS := -f obj -g -w+orphan-labels #-P $(PATH_SUB_CURRENT)/bootsector2-first.mac
246TEMPLATE_VBoxBS3KitImg32_ASDEFS = ASM_FORMAT_OMF __NASM__
247TEMPLATE_VBoxBS3KitImg32_ARTOOL = OPENWATCOM
248TEMPLATE_VBoxBS3KitImg32_CTOOL = OPENWATCOM
249TEMPLATE_VBoxBS3KitImg32_CXXTOOL = OPENWATCOM
250TEMPLATE_VBoxBS3KitImg32_CFLAGS = -nt=TEXT32 -nd=DATA32 -nc=CODE32
251TEMPLATE_VBoxBS3KitImg32_CXXFLAGS = -nt=TEXT32 -nd=DATA32 -nc=CODE32
252TEMPLATE_VBoxBS3KitImg32_INCS = bs3kit .
253TEMPLATE_VBoxBS3KitImg32_LDTOOL = VBoxBsUnusedLd
254
255# BS3Kit template for 64-bit code.
256TEMPLATE_VBoxBS3KitImg64 = Template for building BS3Kit test images.
257TEMPLATE_VBoxBS3KitImg64_INSTTYPE = none
258TEMPLATE_VBoxBS3KitImg64_ASTOOL = NASM
259TEMPLATE_VBoxBS3KitImg64_ASFLAGS := -f elf64 -g -w+orphan-labels #-P $(PATH_SUB_CURRENT)/bootsector2-first.mac
260TEMPLATE_VBoxBS3KitImg64_ASDEFS = ASM_FORMAT_ELF __NASM__ TMPL
261TEMPLATE_VBoxBS3KitImg64_ARTOOL = OPENWATCOM
262TEMPLATE_VBoxBS3KitImg64_CTOOL = DUMMY
263TEMPLATE_VBoxBS3KitImg64_CXXTOOL = DUMMY
264TEMPLATE_VBoxBS3KitImg64_INCS = bs3kit .
265TEMPLATE_VBoxBS3KitImg64_LDTOOL = VBoxBsUnusedLd
266
267# BS3Kit template for the bootsector.
268TEMPLATE_VBoxBS3KitBS = Template for building BS3Kit test images.
269TEMPLATE_VBoxBS3KitBS_INST = $(INST_VALIDATIONKIT)bootsectors/
270TEMPLATE_VBoxBS3KitBS_INSTTYPE = none
271TEMPLATE_VBoxBS3KitBS_BINSUFF = .img
272TEMPLATE_VBoxBS3KitBS_MODE = 0644
273TEMPLATE_VBoxBS3KitBS_ASTOOL = YASM
274TEMPLATE_VBoxBS3KitBS_ASFLAGS := -f bin --mapfile
275TEMPLATE_VBoxBS3KitBS_ASDEFS = ASM_FORMAT_BIN __YASM__
276TEMPLATE_VBoxBS3KitBS_INCS = bs3kit
277TEMPLATE_VBoxBS3KitBS_LDTOOL = VBoxBsCpLd
278
279# The boot sector.
280MISCBINS += bs3-bootsector
281bs3-bootsector_TEMPLATE = VBoxBS3KitBS
282bs3-bootsector_SOURCES = bs3kit/bs3-bootsector.asm
283
284# The BS3Kit library.
285LIBRARIES += bs3kit-common-16
286bs3kit-common-16_TEMPLATE = VBoxBS3KitImg
287bs3kit-common-16_DEFS = TMPL_PE16 BS3_CMN_ONLY
288bs3kit-common-16_SOURCES = \
289 bs3kit/bs3-shutdown.asm
290
291# The 32-bit BS3Kit library.
292LIBRARIES += bs3kit-common-32
293bs3kit-common-32_TEMPLATE = VBoxBS3KitImg32
294bs3kit-common-32_DEFS = TMPL_PE32 BS3_CMN_ONLY
295bs3kit-common-32_SOURCES = \
296 bs3kit/bs3-shutdown.asm
297
298# The 64-bit BS3Kit library.
299LIBRARIES += bs3kit-common-64
300bs3kit-common-64_TEMPLATE = VBoxBS3KitImg64
301bs3kit-common-64_DEFS = TMPL_LM64 BS3_CMN_ONLY
302bs3kit-common-64_SOURCES = \
303 bs3kit/bs3-shutdown.asm
304
305endif # experimental
306
307include $(FILE_KBUILD_SUB_FOOTER)
308
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