VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/SharedFolders/driver/Makefile.kmk

Last change on this file was 98511, checked in by vboxsync, 16 months ago

IPRT,/Config.kmk,Add/*.kmk: Drop int64.lib, use our own implementation from IPRT. bugref:10261

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.6 KB
Line 
1# $Id: Makefile.kmk 98511 2023-02-08 21:31:43Z vboxsync $
2## @file
3# Sub-Makefile for the VirtualBox Windows Guest Shared Folders FSD.
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# SPDX-License-Identifier: GPL-3.0-only
26#
27
28SUB_DEPTH = ../../../../../..
29include $(KBUILD_PATH)/subheader.kmk
30
31#
32# VBoxSF
33# Note! On X86 this is only used for windows 8 and later.
34# Note! On X86 we must link against ntoskrnl.lib from the default WDK when /guard:cf is enabled,
35# or the linker barfs at loadcfg.obj not containing a large enough load config structure.
36#
37SYSMODS += VBoxSF
38VBoxSF_TEMPLATE = VBoxGuestR0Drv
39VBoxSF_DEFS = LOG_TO_BACKDOOR VBOX_WITH_HGCM IN_RING0
40#VBoxSF_DEFS += LOG_ENABLED
41
42VBoxSF_SDKS = ReorderCompilerIncs $(VBOX_WINDDK_GST_WLH)
43
44VBoxSF_LDFLAGS.x86 = -Entry:DriverEntry@8
45VBoxSF_LDFLAGS.amd64 = -Entry:DriverEntry
46VBoxSF_SOURCES = \
47 vbsf.cpp \
48 net.cpp \
49 file.cpp \
50 info.cpp \
51 path.cpp \
52 vbsfhlp.cpp \
53 VBoxSF.rc
54VBoxSF_SOURCES.x86 = \
55 Win2kWorkarounds.c \
56 Win2kWorkaroundsA.asm
57
58VBoxSF_LIBS = \
59 $(PATH_SDK_$(VBOX_WINDDK_GST_WLH)_LIB.$(KBUILD_TARGET_ARCH))/rxce.lib \
60 $(VBoxSF_0_OUTDIR)/rdbsslib.lib \
61 $(PATH_SDK_$(VBOX_WINDDK_GST_WLH)_LIB.$(KBUILD_TARGET_ARCH))/copysup.lib \
62 $(PATH_SDK_$(VBOX_WINDDK_GST_WLH)_LIB.$(KBUILD_TARGET_ARCH))/hal.lib \
63 $(PATH_SDK_$(VBOX_WINDDK_GST_WLH)_LIB.$(KBUILD_TARGET_ARCH))/ksecdd.lib \
64 $(VBOX_LIB_VBGL_R0) \
65 $(VBOX_LIB_IPRT_GUEST_R0) # before ntoskrnl.lib
66ifneq ($(VBOX_VCC_CC_GUARD_CF),)
67 VBoxSF_LIBS += \
68 $(PATH_SDK_$(VBOX_WINDDK_GST)_LIB.$(KBUILD_TARGET_ARCH))/ntoskrnl.lib \
69 $(PATH_SDK_$(VBOX_WINDDK_GST)_LIB.$(KBUILD_TARGET_ARCH))/BufferOverflowK.lib
70else
71 VBoxSF_LIBS += \
72 $(PATH_SDK_$(VBOX_WINDDK_GST_WLH)_LIB.$(KBUILD_TARGET_ARCH))/ntoskrnl.lib \
73 $(PATH_SDK_$(VBOX_WINDDK_GST_WLH)_LIB.$(KBUILD_TARGET_ARCH))/BufferOverflowK.lib
74endif
75
76VBoxSF_CLEAN = \
77 $(VBoxSF_0_OUTDIR)/rdbsslib.lib
78
79VBoxSF_USES.win += vboximportchecker
80VBoxSF_VBOX_IMPORT_CHECKER.win.x86 = w8/r0
81VBoxSF_VBOX_IMPORT_CHECKER.win.amd64 = xp64/r0
82
83
84ifeq ($(KBUILD_TARGET_ARCH),x86)
85 #
86 # This driver version is used for Windows 2000, XP, W2K3, Vista and 7.
87 #
88 SYSMODS += VBoxSFW2K
89 VBoxSFW2K_EXTENDS := VBoxSF
90 VBoxSFW2K_SDKS = ReorderCompilerIncs $(VBOX_WINDDK_GST_W2K3)
91 VBoxSFW2K_LIBS = \
92 $(PATH_SDK_$(VBOX_WINDDK_GST_W2K3)_LIB.x86)/rxce.lib \
93 $(VBoxSFW2K_0_OUTDIR)/rdbsslib.lib \
94 $(PATH_SDK_$(VBOX_WINDDK_GST_W2K3)_LIB.x86)/copysup.lib \
95 $(PATH_SDK_$(VBOX_WINDDK_GST_W2K3)_LIB.x86)/hal.lib \
96 $(PATH_SDK_$(VBOX_WINDDK_GST_W2K3)_LIB.x86)/ksecdd.lib \
97 \
98 $(VBOX_LIB_VBGL_R0) \
99 $(VBOX_LIB_IPRT_GUEST_R0) # before ntoskrnl.lib
100 ifneq ($(VBOX_VCC_CC_GUARD_CF),)
101 VBoxSFW2K_LIBS += \
102 $(PATH_SDK_$(VBOX_WINDDK_GST)_LIB.x86)/ntoskrnl.lib \
103 $(PATH_SDK_$(VBOX_WINDDK_GST)_LIB.x86)/BufferOverflowK.lib
104 else
105 VBoxSFW2K_LIBS += \
106 $(PATH_SDK_$(VBOX_WINDDK_GST_W2K3)_LIB.x86)/ntoskrnl.lib \
107 $(PATH_SDK_$(VBOX_WINDDK_GST_W2K3)_LIB.x86)/BufferOverflowK.lib
108 endif
109 VBoxSFW2K_CLEAN = \
110 $(VBoxSFW2K_0_OUTDIR)/rdbsslib.lib
111 VBoxSFW2K_USES.win += vboximportchecker
112 VBoxSFW2K_VBOX_IMPORT_CHECKER.win.x86 = w2k/r0
113endif
114
115include $(FILE_KBUILD_SUB_FOOTER)
116
117$(call KB_FN_AUTO_CMD_DEPS,$(VBoxSF_0_OUTDIR)/rdbsslib.lib)
118
119ifeq ($(KBUILD_TARGET_ARCH),x86)
120 $(VBoxSF_0_OUTDIR)/rdbsslib.lib: $$(PATH_SDK_$(VBOX_WINDDK_GST_WLH)_LIB.$(KBUILD_TARGET_ARCH))/rdbsslib.lib | $$(dir $$@) $(VBOX_EDIT_COFF_LIB)
121 $(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
122 $(VBOX_EDIT_COFF_LIB) --input "$(PATH_SDK_$(VBOX_WINDDK_GST_WLH)_LIB.$(KBUILD_TARGET_ARCH))/rdbsslib.lib" --output "$@" \
123 --select "write.obj" \
124 --redefine-sym "__imp__CcFlushCache@16=_g_pfnWrFlushCache" \
125 --redefine-sym "__imp__CcPurgeCacheSection@16=_g_pfnWrPurgeCacheSection" \
126 --select "read.obj" \
127 --redefine-sym "__imp__CcFlushCache@16=_g_pfnRdFlushCache"
128
129 $(call KB_FN_AUTO_CMD_DEPS,$(VBoxSFW2K_0_OUTDIR)/rdbsslib.lib)
130 $(VBoxSFW2K_0_OUTDIR)/rdbsslib.lib: $$(PATH_SDK_$(VBOX_WINDDK_GST_W2K3)_LIB.$(KBUILD_TARGET_ARCH))/rdbsslib.lib | $$(dir $$@) $(VBOX_EDIT_COFF_LIB)
131 $(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
132 $(VBOX_EDIT_COFF_LIB) --input "$(PATH_SDK_$(VBOX_WINDDK_GST_W2K3)_LIB.$(KBUILD_TARGET_ARCH))/rdbsslib.lib" --output "$@" \
133 --select "write.obj" \
134 --redefine-sym "__imp__CcFlushCache@16=_g_pfnWrFlushCache" \
135 --redefine-sym "__imp__CcPurgeCacheSection@16=_g_pfnWrPurgeCacheSection" \
136 --select "read.obj" \
137 --redefine-sym "__imp__CcFlushCache@16=_g_pfnRdFlushCache"
138else
139 $(VBoxSF_0_OUTDIR)/rdbsslib.lib: $$(PATH_SDK_$(VBOX_WINDDK_GST_WLH)_LIB.$(KBUILD_TARGET_ARCH))/rdbsslib.lib | $$(dir $$@) $(VBOX_EDIT_COFF_LIB)
140 $(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
141 $(VBOX_EDIT_COFF_LIB) --input "$(PATH_SDK_$(VBOX_WINDDK_GST_WLH)_LIB.$(KBUILD_TARGET_ARCH))/rdbsslib.lib" --output "$@" \
142 --select "write.obj" \
143 --redefine-sym "__imp_CcFlushCache=g_pfnWrFlushCache" \
144 --redefine-sym "__imp_CcPurgeCacheSection=g_pfnWrPurgeCacheSection" \
145 --select "read.obj" \
146 --redefine-sym "__imp_CcFlushCache=g_pfnRdFlushCache"
147endif
148
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use