VirtualBox

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

最後變更 在這個檔案從59865是 59865,由 vboxsync 提交於 9 年 前

bs3kit: Updates

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 13.0 KB
 
1# $Id: Makefile.kmk 59865 2016-02-29 10:27:24Z vboxsync $
2## @file
3# VirtualBox Validation Kit - Bootsector Kit v3
4#
5
6#
7# Copyright (C) 2006-2016 Oracle Corporation
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.alldomusa.eu.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 post-link tool (used via the parent Config.kmk).
33BLDPROGS += VBoxBs3Linker
34VBoxBs3Linker_TEMPLATE = VBoxBldProg
35VBoxBs3Linker_SOURCES = $(VBOX_PATH_BS3KIT_SRC)/VBoxBs3Linker.cpp
36
37
38# 64-bit relocation conversion tool (used via the parent Config.kmk).
39BLDPROGS += VBoxBs3ObjConverter
40VBoxBs3ObjConverter_TEMPLATE = VBoxBldProg
41VBoxBs3ObjConverter_SOURCES = $(VBOX_PATH_BS3KIT_SRC)/VBoxBs3ObjConverter.cpp
42
43
44# The boot sector.
45MISCBINS += bs3-bootsector
46bs3-bootsector_TEMPLATE = VBoxBS3KitBS
47bs3-bootsector_SOURCES = bs3-bootsector.asm
48
49
50#
51# Common sources to be compiled into _p16, _p32 and _p64 versions.
52#
53VBOX_BS3KIT_COMMON_SOURCES = \
54 bs3-cmn-A20Disable.asm \
55 bs3-cmn-A20Enable.asm \
56 bs3-cmn-KbdRead.asm \
57 bs3-cmn-KbdWait.asm \
58 bs3-cmn-KbdWrite.asm \
59 bs3-cmn-Shutdown.asm \
60 bs3-cmn-Panic.asm \
61 bs3-cmn-PrintChr.asm \
62 bs3-cmn-Printf.c \
63 bs3-cmn-PrintU32.asm \
64 bs3-cmn-PrintX32.asm \
65 bs3-cmn-PrintStr.c \
66 bs3-cmn-PrintStrColonSpaces.asm \
67 bs3-cmn-PrintStrSpacesColonSpace.c \
68 bs3-cmn-StrFormatV.c \
69 bs3-cmn-StrPrintf.c \
70 bs3-cmn-StrLen.c \
71 bs3-cmn-StrNLen.c \
72 bs3-cmn-StrCpy.c \
73 bs3-cmn-MemCpy.c \
74 bs3-cmn-MemPCpy.c \
75 bs3-cmn-MemMove.c \
76 bs3-cmn-MemZero.asm \
77 bs3-cmn-MemAlloc.c \
78 bs3-cmn-MemAllocZ.c \
79 bs3-cmn-MemFree.c \
80 bs3-cmn-PagingData.c \
81 bs3-cmn-PagingInitRootForPP.c \
82 bs3-cmn-PagingInitRootForPAE.c \
83 bs3-cmn-PagingInitRootForLM.c \
84 bs3-cmn-SlabInit.c \
85 bs3-cmn-SlabAlloc.c \
86 bs3-cmn-SlabAllocEx.c \
87 bs3-cmn-SlabFree.c \
88 bs3-cmn-SlabListInit.c \
89 bs3-cmn-SlabListAdd.c \
90 bs3-cmn-SlabListAlloc.c \
91 bs3-cmn-SlabListAllocEx.c \
92 bs3-cmn-SlabListFree.c \
93 bs3-cmn-SwitchToRing0.asm \
94 bs3-cmn-SwitchToRing1.asm \
95 bs3-cmn-SwitchToRing2.asm \
96 bs3-cmn-SwitchToRing3.asm \
97 bs3-cmn-SwitchTo16Bit.asm \
98 bs3-cmn-SwitchTo32Bit.asm \
99 bs3-cmn-SwitchTo64Bit.asm \
100 bs3-cmn-TestData.c \
101 bs3-cmn-TestInit.c \
102 bs3-cmn-TestFailed.c \
103 bs3-cmn-TestSkipped.c \
104 bs3-cmn-TestSub.c \
105 bs3-cmn-TestSubDone.c \
106 bs3-cmn-TestSubErrorCount.c \
107 bs3-cmn-TestTerm.c \
108 bs3-cmn-TestSendCmdWithStr.asm \
109 bs3-cmn-TestSendCmdWithU32.asm \
110 bs3-cmn-TestIsVmmDevTestingPresent.asm \
111 bs3-cmn-Trap16SetGate.c \
112 bs3-cmn-Trap32Init.c \
113 bs3-cmn-Trap32SetGate.c \
114 bs3-cmn-Trap64SetGate.c \
115 bs3-cmn-TrapDefaultHandler.c \
116 bs3-cmn-TrapPrintFrame.c \
117 bs3-cmn-TrapSetHandler.c \
118 ../../../Runtime/common/asm/ASMBitFirstClear.asm \
119 ../../../Runtime/common/asm/ASMBitFirstSet.asm \
120 ../../../Runtime/common/asm/ASMBitNextClear.asm \
121 ../../../Runtime/common/asm/ASMBitNextSet.asm \
122 ../../../Runtime/common/asm/ASMBitFirstSetU16.asm \
123 ../../../Runtime/common/asm/ASMBitFirstSetU32.asm \
124 ../../../Runtime/common/asm/ASMBitFirstSetU64.asm \
125 ../../../Runtime/common/asm/ASMBitLastSetU16.asm \
126 ../../../Runtime/common/asm/ASMBitLastSetU32.asm \
127 ../../../Runtime/common/asm/ASMBitLastSetU64.asm \
128 ../../../Runtime/common/asm/ASMMemFirstMismatchingU8.asm \
129 ../../../Runtime/common/asm/ASMSerializeInstruction-cpuid.asm \
130 ../../../Runtime/common/asm/ASMSerializeInstruction-iret.asm \
131 ../../../Runtime/common/asm/ASMSerializeInstruction-rdtscp.asm \
132
133# The 16-bit BS3Kit library.
134LIBRARIES += bs3kit-common-16
135bs3kit-common-16_TEMPLATE = VBoxBS3KitImg
136bs3kit-common-16_INSTTYPE = none
137bs3kit-common-16_DEFS = TMPL_PE16 BS3_CMN_ONLY
138bs3kit-common-16_ASDEFS = RT_ASMDEFS_INC_FIRST_FILE
139bs3kit-common-16_SOURCES = $(VBOX_BS3KIT_COMMON_SOURCES) \
140 bs3-system-data.asm \
141 bs3-rm-InitAll.c \
142 bs3-rm-InitMemory.c \
143 bs3-cmn-hexdigits.c \
144 bs3-cmn-CpuDetectData.c \
145 bs3-cmn-PerCpuData.c \
146 bs3-cmn-ConvertRMStackToP16UsingCxReturnToAx.asm \
147 bs3-wc16-U8DR.asm \
148 bs3-wc16-U8DQ.asm \
149 bs3-wc16-I8DR.asm \
150 bs3-wc16-I8DQ.asm \
151 bs3-wc16-I8RS.asm \
152 bs3-wc16-U8RS.asm \
153 bs3-wc16-U8LS.asm \
154 bs3-wc16-U4D.asm \
155 bs3-wc16-I4D.asm \
156
157# The 32-bit BS3Kit library.
158LIBRARIES += bs3kit-common-32
159bs3kit-common-32_TEMPLATE = VBoxBS3KitImg32
160bs3kit-common-32_INSTTYPE = none
161bs3kit-common-32_DEFS = TMPL_PE32 BS3_CMN_ONLY
162bs3kit-common-32_ASDEFS = RT_ASMDEFS_INC_FIRST_FILE
163bs3kit-common-32_SOURCES = $(VBOX_BS3KIT_COMMON_SOURCES) \
164 bs3-wc32-U8D.asm \
165 bs3-wc32-I8D.asm \
166 bs3-wc32-I8RS.asm \
167 bs3-wc32-U8RS.asm \
168 bs3-wc32-U8LS.asm \
169 bs3-c32-Trap32Generic.asm \
170 bs3-c32-Trap32ResumeFrame.asm
171
172# The 64-bit BS3Kit library.
173LIBRARIES += bs3kit-common-64-asm
174bs3kit-common-64-asm_TEMPLATE = VBoxBS3KitImg64
175bs3kit-common-64_asm_INSTTYPE = none
176bs3kit-common-64-asm_DEFS = TMPL_LM64 BS3_CMN_ONLY
177bs3kit-common-64-asm_ASDEFS = RT_ASMDEFS_INC_FIRST_FILE
178bs3kit-common-64-asm_SOURCES = $(filter %.asm,$(VBOX_BS3KIT_COMMON_SOURCES))
179
180# The 64-bit BS3Kit library.
181LIBRARIES += bs3kit-common-64-c
182bs3kit-common-64-c_TEMPLATE = VBoxBS3KitImg64
183bs3kit-common-64_c_INSTTYPE = none
184bs3kit-common-64-c_DEFS = TMPL_LM64 BS3_CMN_ONLY
185bs3kit-common-64-c_SOURCES = $(filter-out %.asm,$(VBOX_BS3KIT_COMMON_SOURCES))
186
187
188#
189# Common sources to be compiled for each CPU mode.
190#
191VBOX_BS3KIT_MODE_SOURCES = \
192 bs3-mode-SwitchToRM.asm \
193 bs3-mode-SwitchToPE16.asm \
194 bs3-mode-SwitchToPE32.asm \
195 bs3-mode-SwitchToPP16.asm \
196 bs3-mode-SwitchToPP32.asm \
197 bs3-mode-SwitchToPAE16.asm \
198 bs3-mode-SwitchToPAE32.asm \
199 bs3-mode-SwitchToLM64.asm \
200 bs3-mode-SwitchToLM32.asm \
201 bs3-mode-SwitchToLM16.asm \
202 bs3-mode-EnteredMode.asm \
203 bs3-mode-PagingGetRootForPP16.asm \
204 bs3-mode-PagingGetRootForPP32.asm \
205 bs3-mode-PagingGetRootForPAE16.asm \
206 bs3-mode-PagingGetRootForPAE32.asm \
207 bs3-mode-PagingGetRootForLM64.asm \
208 bs3-mode-TrapSystemCallHandler.asm \
209
210# The 16-bit real mode BS3Kit library.
211LIBRARIES += bs3kit-rm
212bs3kit-rm_TEMPLATE = VBoxBS3KitImg
213bs3kit-rm_INSTTYPE = none
214bs3kit-rm_DEFS = TMPL_MODE=BS3_MODE_RM
215bs3kit-rm_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \
216 bs3-first-rm.asm \
217 bs3-mode-CpuDetect.asm
218
219
220# The 16-bit BS3Kit library for 16-bit protected kernel+tss.
221LIBRARIES += bs3kit-pe16
222bs3kit-pe16_TEMPLATE = VBoxBS3KitImg
223bs3kit-pe16_INSTTYPE = none
224bs3kit-pe16_DEFS = TMPL_MODE=BS3_MODE_PE16
225bs3kit-pe16_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \
226 bs3-first-pe16.asm \
227# bs3-mode-CpuDetect.asm
228
229# The 32-bit BS3Kit library for 16-bit protected kernel+tss.
230LIBRARIES += bs3kit-pe16_32
231bs3kit-pe16_32_TEMPLATE = VBoxBS3KitImg32
232bs3kit-pe16_32_INSTTYPE = none
233bs3kit-pe16_32_DEFS = TMPL_MODE=BS3_MODE_PE16_32
234bs3kit-pe16_32_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
235
236# The v86 BS3Kit library for 16-bit protected kernel+tss.
237LIBRARIES += bs3kit-pe16_v86
238bs3kit-pe16_v86_TEMPLATE = VBoxBS3KitImg
239bs3kit-pe16_v86_INSTTYPE = none
240bs3kit-pe16_v86_DEFS = TMPL_MODE=BS3_MODE_PE16_V86
241bs3kit-pe16_v86_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
242
243# The 32-bit BS3Kit library for 32-bit protected kernel+tss.
244LIBRARIES += bs3kit-pe32
245bs3kit-pe32_TEMPLATE = VBoxBS3KitImg32
246bs3kit-pe32_INSTTYPE = none
247bs3kit-pe32_DEFS = TMPL_MODE=BS3_MODE_PE32
248bs3kit-pe32_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
249
250# The 16-bit BS3Kit library for 32-bit protected kernel+tss.
251LIBRARIES += bs3kit-pe32_16
252bs3kit-pe32_16_TEMPLATE = VBoxBS3KitImg
253bs3kit-pe32_16_INSTTYPE = none
254bs3kit-pe32_16_DEFS = TMPL_MODE=BS3_MODE_PE32_16
255bs3kit-pe32_16_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
256
257# The v8086 BS3Kit library for 32-bit protected kernel+tss.
258LIBRARIES += bs3kit-pev86
259bs3kit-pev86_TEMPLATE = VBoxBS3KitImg
260bs3kit-pev86_INSTTYPE = none
261bs3kit-pev86_DEFS = TMPL_MODE=BS3_MODE_PEV86
262bs3kit-pev86_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
263
264
265# The 16-bit BS3Kit library for 16-bit paged protected kernel+tss.
266LIBRARIES += bs3kit-pp16
267bs3kit-pp16_TEMPLATE = VBoxBS3KitImg
268bs3kit-pp16_INSTTYPE = none
269bs3kit-pp16_DEFS = TMPL_MODE=BS3_MODE_PP16
270bs3kit-pp16_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \
271 bs3-mode-CpuDetect.asm
272
273# The 32-bit BS3Kit library for 16-bit paged protected kernel+tss.
274LIBRARIES += bs3kit-pp16_32
275bs3kit-pp16_32_TEMPLATE = VBoxBS3KitImg32
276bs3kit-pp16_32_INSTTYPE = none
277bs3kit-pp16_32_DEFS = TMPL_MODE=BS3_MODE_PP16_32
278bs3kit-pp16_32_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
279
280# The v8086 BS3Kit library for 16-bit paged protected kernel+tss.
281LIBRARIES += bs3kit-pp16_v86
282bs3kit-pp16_v86_TEMPLATE = VBoxBS3KitImg
283bs3kit-pp16_v86_INSTTYPE = none
284bs3kit-pp16_v86_DEFS = TMPL_MODE=BS3_MODE_PP16_V86
285bs3kit-pp16_v86_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
286
287# The 32-bit BS3Kit library for 32-bit paged protected kernel+tss.
288LIBRARIES += bs3kit-pp32
289bs3kit-pp32_TEMPLATE = VBoxBS3KitImg32
290bs3kit-pp32_INSTTYPE = none
291bs3kit-pp32_DEFS = TMPL_MODE=BS3_MODE_PP32
292bs3kit-pp32_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
293
294# The 16-bit BS3Kit library for 32-bit paged protected kernel+tss.
295LIBRARIES += bs3kit-pp32_16
296bs3kit-pp32_16_TEMPLATE = VBoxBS3KitImg
297bs3kit-pp32_16_INSTTYPE = none
298bs3kit-pp32_16_DEFS = TMPL_MODE=BS3_MODE_PP32_16
299bs3kit-pp32_16_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
300
301# The v8086 BS3Kit library for 32-bit paged protected kernel+tss.
302LIBRARIES += bs3kit-ppv86
303bs3kit-ppv86_TEMPLATE = VBoxBS3KitImg
304bs3kit-ppv86_INSTTYPE = none
305bs3kit-ppv86_DEFS = TMPL_MODE=BS3_MODE_PPV86
306bs3kit-ppv86_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
307
308
309# The 16-bit BS3Kit library for 16-bit PAE paged protected kernel+tss.
310LIBRARIES += bs3kit-pae16
311bs3kit-pae16_TEMPLATE = VBoxBS3KitImg
312bs3kit-pae16_INSTTYPE = none
313bs3kit-pae16_DEFS = TMPL_MODE=BS3_MODE_PAE16
314bs3kit-pae16_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \
315 bs3-mode-CpuDetect.asm
316
317# The 16-bit BS3Kit library for 16-bit PAE paged protected kernel+tss.
318LIBRARIES += bs3kit-pae16_32
319bs3kit-pae16_32_TEMPLATE = VBoxBS3KitImg32
320bs3kit-pae16_32_INSTTYPE = none
321bs3kit-pae16_32_DEFS = TMPL_MODE=BS3_MODE_PAE16_32
322bs3kit-pae16_32_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
323
324# The v8086 BS3Kit library for 16-bit PAE paged protected kernel+tss.
325LIBRARIES += bs3kit-pae16_v86
326bs3kit-pae16_v86_TEMPLATE = VBoxBS3KitImg
327bs3kit-pae16_v86_INSTTYPE = none
328bs3kit-pae16_v86_DEFS = TMPL_MODE=BS3_MODE_PAE16_V86
329bs3kit-pae16_v86_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
330
331# The 32-bit BS3Kit library for 32-bit PAE paged protected kernel+tss.
332LIBRARIES += bs3kit-pae32
333bs3kit-pae32_TEMPLATE = VBoxBS3KitImg32
334bs3kit-pae32_INSTTYPE = none
335bs3kit-pae32_DEFS = TMPL_MODE=BS3_MODE_PAE32
336bs3kit-pae32_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
337
338# The 16-bit BS3Kit library for 32-bit PAE paged protected kernel+tss.
339LIBRARIES += bs3kit-pae32_16
340bs3kit-pae32_16_TEMPLATE = VBoxBS3KitImg
341bs3kit-pae32_16_INSTTYPE = none
342bs3kit-pae32_16_DEFS = TMPL_MODE=BS3_MODE_PAE32_16
343bs3kit-pae32_16_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
344
345# The v8086 BS3Kit library for 32-bit PAE paged protected kernel+tss.
346LIBRARIES += bs3kit-paev86
347bs3kit-paev86_TEMPLATE = VBoxBS3KitImg
348bs3kit-paev86_INSTTYPE = none
349bs3kit-paev86_DEFS = TMPL_MODE=BS3_MODE_PAEV86
350bs3kit-paev86_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
351
352
353# The 16-bit long mode BS3Kit library.
354LIBRARIES += bs3kit-lm16
355bs3kit-lm16_TEMPLATE = VBoxBS3KitImg
356bs3kit-lm16_INSTTYPE = none
357bs3kit-lm16_DEFS = TMPL_MODE=BS3_MODE_LM16
358bs3kit-lm16_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
359
360# The 32-bit long mode BS3Kit library.
361LIBRARIES += bs3kit-lm32
362bs3kit-lm32_TEMPLATE = VBoxBS3KitImg32
363bs3kit-lm32_INSTTYPE = none
364bs3kit-lm32_DEFS = TMPL_MODE=BS3_MODE_LM32
365bs3kit-lm32_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
366
367# The 64-bit long mode BS3Kit library.
368LIBRARIES += bs3kit-lm64-asm
369bs3kit-lm64-asm_TEMPLATE = VBoxBS3KitImg64
370bs3kit-lm64-asm_INSTTYPE = none
371bs3kit-lm64-asm_DEFS = TMPL_MODE=BS3_MODE_LM64
372bs3kit-lm64-asm_SOURCES = $(filter %.asm,$(VBOX_BS3KIT_MODE_SOURCES))
373
374# The 64-bit long mode BS3Kit library.
375LIBRARIES += bs3kit-lm64-c
376bs3kit-lm64-c_TEMPLATE = VBoxBS3KitImg64
377bs3kit-lm64-c_INSTTYPE = none
378bs3kit-lm64-c_DEFS = TMPL_MODE=BS3_MODE_LM64
379bs3kit-lm64-c_SOURCES = $(filter-out %.asm, $(VBOX_BS3KIT_MODE_SOURCES))
380
381
382#
383# shutdown example.
384#
385MISCBINS += bs3-shutdown
386bs3-shutdown_TEMPLATE = VBoxBS3KitImg
387bs3-shutdown_SOURCES = \
388 bs3-first-pe16.asm \
389 bs3-shutdown.c
390
391
392include $(FILE_KBUILD_SUB_FOOTER)
393
394.PRECIOUS: $(PATH_OBJ)/bs3-shutdown/bs3-shutdown.map
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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