VirtualBox

source: vbox/trunk/src/VBox/Installer/win/Stub/Makefile.kmk@ 95696

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

Installer/win/VBoxStub: Install the legacy windows timestamp CA if used by the build and needed by the install target. bugref:8691

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 6.7 KB
 
1# $Id: Makefile.kmk 95696 2022-07-18 09:07:10Z vboxsync $
2## @file
3# Sub-Makefile for the stub installer.
4#
5
6#
7# Copyright (C) 2009-2022 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
18SUB_DEPTH = ../../../../..
19include $(KBUILD_PATH)/subheader.kmk
20
21TEMPLATE_VBOXSTUB = Drop the signing, we will sign it later.
22TEMPLATE_VBOXSTUB_EXTENDS = VBOXR3STATIC
23TEMPLATE_VBOXSTUB_POST_CMDS = $(NO_SUCH_VARIABLE)
24
25#
26# Installer stub program
27#
28PROGRAMS += VBoxStub
29VBoxStub_TEMPLATE= VBOXSTUB
30VBoxStub_BLD_TRG_ARCH = x86
31VBoxStub_DEFS = _WIN32_WINNT=0x0501 IN_RT_R3
32
33VBoxStub_SOURCES = \
34 VBoxStub.cpp \
35 VBoxStub.rc
36
37VBoxStub_SDKS += \
38 VBOX_NTDLL
39ifeq ($(KBUILD_TARGET_ARCH),x86)
40VBoxStub_LIBS += \
41 $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib \
42 $(VBOX_LIB_RUNTIME_STATIC)
43else
44VBoxStub_LIBS += \
45 $(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_LIB)/delayimp.lib \
46 $(PATH_STAGE_LIB)/RuntimeR3-x86.lib
47endif
48
49VBoxStub_LDFLAGS = \
50 -DelayLoad:comctl32.dll
51VBoxStub_POST_CMDS = $(VBOX_CHECK_IMPORTS) --image $(out) ntdll.dll kernel32.dll
52ifeq ($(KBUILD_TYPE),asan)
53 VBoxStub_POST_CMDS += advapi32.dll
54endif
55VBoxStub_LNK_DEPS = $(VBOX_CHECK_IMPORTS)
56
57VBoxStub.cpp_DEFS += VBOX_SVN_REV=$(VBOX_SVN_REV)
58VBoxStub.cpp_DEPS = $(VBOX_SVN_REV_KMK)
59
60# If signing mode is enabled, then add the possibility to install the code
61# signing certificates (public key only) automatically in /silent mode.
62ifdef VBOX_SIGNING_MODE
63
64 VBoxStub_SOURCES += VBoxStubCertUtil.cpp
65 VBoxStub_CLEAN += $(VBoxStub_0_OUTDIR)/VBoxStubPublicCert.h
66 VBoxStub.cpp_DEPS += $(VBoxStub_0_OUTDIR)/VBoxStubPublicCert.h
67 VBoxStub.cpp_INCS += $(VBoxStub_0_OUTDIR)
68 VBoxStub.cpp_DEFS += VBOX_WITH_CODE_SIGNING
69 ifdef VBOX_WITH_VBOX_LEGACY_TS_CA
70 VBoxStub.cpp_DEFS += VBOX_WITH_VBOX_LEGACY_TS_CA
71 endif
72
73 $$(VBoxStub_0_OUTDIR)/VBoxStubPublicCert.h: | $$(dir $$@) $(VBOX_RTSIGNTOOL) $(PATH_STAGE_SYS)/VBoxSup.sys
74 $(RM) -f -- "$@" "[email protected]" "[email protected]" "[email protected]" "[email protected]"
75
76 $(VBOX_RTSIGNTOOL) extract-exe-signer-cert --signature-index 0 --exe "$(PATH_STAGE_SYS)/VBoxSup.sys" --output "[email protected]" --der
77 $(VBOX_BIN2C) -ascii --append VBoxStubTrustedCert0 "[email protected]" $@
78 $(APPEND) "[email protected]" " { g_abVBoxStubTrustedCert0, sizeof(g_abVBoxStubTrustedCert0) }, "
79 if defined(VBOX_CERTIFICATE_SUBJECT_NAME) && defined(VBOX_CERTIFICATE_SHA2_SUBJECT_NAME)
80 $(VBOX_RTSIGNTOOL) extract-exe-signer-cert --signature-index 1 --exe "$(PATH_STAGE_SYS)/VBoxSup.sys" --output "[email protected]" --der
81 $(VBOX_BIN2C) -ascii --append VBoxStubTrustedCert1 "[email protected]" $@
82 $(APPEND) "[email protected]" " { g_abVBoxStubTrustedCert1, sizeof(g_abVBoxStubTrustedCert1) }, "
83 endif
84 if $(intersects win_planb,$(VBOX_WITH_CORP_CODE_SIGNING))
85 $(VBOX_RTSIGNTOOL) extract-exe-signer-cert --signature-index 1 --exe "$(VBOX_RTSIGNTOOL)" --output "[email protected]" --der
86 $(VBOX_BIN2C) -ascii --append VBoxStubTrustedCert2 "[email protected]" $@
87 $(APPEND) "[email protected]" " { g_abVBoxStubTrustedCert2, sizeof(g_abVBoxStubTrustedCert2) }, "
88 endif
89 $(APPEND) -n "$@" \
90 "" \
91 "struct { uint8_t const *pab; uint32_t cb; }" "g_aVBoxStubTrustedCerts[] = " \
92 "{"
93 $(SED) --append "$@" -e "" "[email protected]"
94 $(APPEND) -n "$@" \
95 "};"
96 $(RM) -f -- "[email protected]" "[email protected]" "[email protected]" "[email protected]"
97 ifdef VBOX_WITH_VBOX_LEGACY_TS_CA
98 $(VBOX_BIN2C) -ascii --append VBoxLegacyWinCA "$(VBOX_LEGACY_TS_CA_FILE)" $@
99 endif
100
101 VBoxStubPublicCert.h:: $$(VBoxStub_0_OUTDIR)/VBoxStubPublicCert.h
102
103endif
104
105# The icon location is configurable.
106VBoxStub.rc_INCS += $(VBoxStub_0_OUTDIR)
107VBoxStub.rc_DEPS += \
108 $(VBoxStub_0_OUTDIR)/VBoxStub-icon.rc \
109 $(VBoxStub_0_OUTDIR)/VBoxStub-manifest.rc
110VBoxStub_CLEAN += \
111 $(VBoxStub_0_OUTDIR)/VBoxStub-icon.rc \
112 $(VBoxStub_0_OUTDIR)/VBoxStub-manifest.rc
113
114# Icon include file.
115$$(VBoxStub_0_OUTDIR)/VBoxStub-icon.rc: $(VBOX_WINDOWS_ICON_FILE) $(MAKEFILE_CURRENT) | $$(dir $$@)
116 $(APPEND) -t $@ 'IDI_VIRTUALBOX ICON DISCARDABLE "$(subst /,\\,$(VBOX_WINDOWS_ICON_FILE))"'
117
118# Manifest.
119VBOX_STUB_MANIFEST_FILE := $(PATH_SUB_CURRENT)/VBoxStub.manifest
120$$(VBoxStub_0_OUTDIR)/VBoxStub-manifest.rc: $(VBOX_STUB_MANIFEST_FILE) $(MAKEFILE_CURRENT) | $$(dir $$@)
121 $(APPEND) -t $@ 'APP_MANIFEST RT_MANIFEST "$(subst /,\\,$(VBOX_STUB_MANIFEST_FILE))"'
122
123# Dynamic import no. 1: MSI.DLL
124VBoxStub_SOURCES += $(VBoxStub_0_OUTDIR)/MsiLazyLoad.asm
125VBoxStub_CLEAN += $(VBoxStub_0_OUTDIR)/MsiLazyLoad.asm
126$$(VBoxStub_0_OUTDIR)/MsiLazyLoad.asm: $(PATH_SUB_CURRENT)/msi.def $(VBOX_DEF_2_LAZY_LOAD) | $$(dir $$@)
127 $(call MSG_TOOL,VBoxDef2LazyLoad,VBoxStub,$(filter %.def, $^),$@)
128 $(QUIET)$(RM) -f -- "$@"
129 $(VBOX_DEF_2_LAZY_LOAD) --system --library MSI.DLL --output "$@" $(filter %.def, $^)
130
131# Dynamic import no. 2: CRYPTO32.DLL
132VBoxStub_SOURCES += $(VBoxStub_0_OUTDIR)/Crypt32LazyLoad.asm
133VBoxStub_CLEAN += $(VBoxStub_0_OUTDIR)/Crypt32LazyLoad.asm
134$$(VBoxStub_0_OUTDIR)/Crypt32LazyLoad.asm: $(PATH_SUB_CURRENT)/crypt32.def $(VBOX_DEF_2_LAZY_LOAD) | $$(dir $$@)
135 $(call MSG_TOOL,VBoxDef2LazyLoad,VBoxStub,$(filter %.def, $^),$@)
136 $(QUIET)$(RM) -f -- "$@"
137 $(VBOX_DEF_2_LAZY_LOAD) --system --library CRYPT32.DLL --output "$@" $(filter %.def, $^)
138
139# Dynamic import no. 3: WS2_32.DLL
140VBoxStub_SOURCES += $(VBoxStub_0_OUTDIR)/Ws232LazyLoad.asm
141VBoxStub_CLEAN += $(VBoxStub_0_OUTDIR)/Ws232LazyLoad.asm
142$$(VBoxStub_0_OUTDIR)/Ws232LazyLoad.asm: $(PATH_SUB_CURRENT)/ws2_32.def $(VBOX_DEF_2_LAZY_LOAD) | $$(dir $$@)
143 $(call MSG_TOOL,VBoxDef2LazyLoad,VBoxStub,$(filter %.def, $^),$@)
144 $(QUIET)$(RM) -f -- "$@"
145 $(VBOX_DEF_2_LAZY_LOAD) --system --library WS2_32.DLL --output "$@" $(filter %.def, $^)
146
147# Dynamic import no. 4: USER32.DLL
148VBoxStub_SOURCES += $(VBoxStub_0_OUTDIR)/User32LazyLoad.asm
149VBoxStub_CLEAN += $(VBoxStub_0_OUTDIR)/User32LazyLoad.asm
150$$(VBoxStub_0_OUTDIR)/User32LazyLoad.asm: $(PATH_SUB_CURRENT)/user32.def $(VBOX_DEF_2_LAZY_LOAD) | $$(dir $$@)
151 $(call MSG_TOOL,VBoxDef2LazyLoad,VBoxStub,$(filter %.def, $^),$@)
152 $(QUIET)$(RM) -f -- "$@"
153 $(VBOX_DEF_2_LAZY_LOAD) --system --library USER32.DLL --output "$@" $(filter %.def, $^)
154
155# Dynamic import no. 5: SHELL32.DLL
156VBoxStub_SOURCES += $(VBoxStub_0_OUTDIR)/Shell32LazyLoad.asm
157VBoxStub_CLEAN += $(VBoxStub_0_OUTDIR)/Shell32LazyLoad.asm
158$$(VBoxStub_0_OUTDIR)/Shell32LazyLoad.asm: $(PATH_SUB_CURRENT)/shell32.def $(VBOX_DEF_2_LAZY_LOAD) | $$(dir $$@)
159 $(call MSG_TOOL,VBoxDef2LazyLoad,VBoxStub,$(filter %.def, $^),$@)
160 $(QUIET)$(RM) -f -- "$@"
161 $(VBOX_DEF_2_LAZY_LOAD) --system --library SHELL32.DLL --output "$@" $(filter %.def, $^)
162
163include $(FILE_KBUILD_SUB_FOOTER)
164
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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