VirtualBox

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

Last change on this file since 63130 was 62487, checked in by vboxsync, 8 years ago

(C) 2016

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.7 KB
Line 
1# $Id: Makefile.kmk 62487 2016-07-22 18:40:31Z vboxsync $
2## @file
3# Sub-Makefile for the stub installer.
4#
5
6#
7# Copyright (C) 2009-2016 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
18SUB_DEPTH = ../../../../..
19include $(KBUILD_PATH)/subheader.kmk
20
21# This has to be 32-bit, so don't include it in the 64-bit build.
22if "$(KBUILD_TARGET_ARCH)" == "x86"
23
24 TEMPLATE_VBOXSTUB = Drop the signing, we will sign it later.
25 TEMPLATE_VBOXSTUB_EXTENDS = VBOXR3STATIC
26 TEMPLATE_VBOXSTUB_POST_CMDS = $(NO_SUCH_VARIABLE)
27
28 PROGRAMS += VBoxStub
29 VBoxStub_TEMPLATE= VBOXSTUB
30 VBoxStub_DEFS = _WIN32_WINNT=0x0501 IN_RT_R3
31
32 VBoxStub_SOURCES = \
33 VBoxStub.cpp \
34 VBoxStub.rc
35
36 VBoxStub_SDKS += \
37 VBOX_NTDLL
38 VBoxStub_LIBS = \
39 $(VBOX_LIB_RUNTIME_STATIC) \
40 $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib
41 VBoxStub_LDFLAGS = \
42 -DelayLoad:comctl32.dll
43 VBoxStub_POST_CMDS = $(VBOX_CHECK_IMPORTS) --image $(out) ntdll.dll kernel32.dll
44 VBoxStub_LNK_DEPS = $(VBOX_CHECK_IMPORTS)
45
46 VBoxStub.cpp_DEFS += VBOX_SVN_REV=$(VBOX_SVN_REV)
47 VBoxStub.cpp_DEPS = $(VBOX_SVN_REV_KMK)
48
49 # If signing mode is enabled, then add the possibility to
50 # install public certificate automatically in /silent mode
51 ifdef VBOX_SIGNING_MODE
52
53 VBoxStub_SOURCES += VBoxStubCertUtil.cpp
54 VBoxStub.cpp_DEPS += $(VBoxStub_0_OUTDIR)/VBoxStubPublicCert.h
55 VBoxStub.cpp_INCS += $(VBoxStub_0_OUTDIR)
56 VBoxStub.cpp_DEFS += VBOX_WITH_CODE_SIGNING
57
58 $$(VBoxStub_0_OUTDIR)/VBoxStubPublicCert.h: $(VBOX_BIN2C) $(PATH_ROOT)/src/VBox/Additions/WINNT/tools/oracle-vbox.cer | $$(dir $$@)
59 $(VBOX_BIN2C) _VBoxStubPublicCert $(PATH_ROOT)/src/VBox/Additions/WINNT/tools/oracle-vbox.cer $@
60
61 endif
62
63 # The icon location is configurable.
64 VBoxStub.rc_INCS += $(VBoxStub_0_OUTDIR)
65 VBoxStub.rc_DEPS += \
66 $(VBoxStub_0_OUTDIR)/VBoxStub-icon.rc \
67 $(VBoxStub_0_OUTDIR)/VBoxStub-manifest.rc
68 VBoxStub.rc_CLEAN = \
69 $(VBoxStub_0_OUTDIR)/VBoxStub-icon.rc \
70 $(VBoxStub_0_OUTDIR)/VBoxStub-manifest.rc
71
72 # Icon include file.
73 $$(VBoxStub_0_OUTDIR)/VBoxStub-icon.rc: $(VBOX_WINDOWS_ICON_FILE) $(MAKEFILE_CURRENT) | $$(dir $$@)
74 $(APPEND) -t $@ 'IDI_VIRTUALBOX ICON DISCARDABLE "$(subst /,\\,$(VBOX_WINDOWS_ICON_FILE))"'
75
76 # Manifest.
77 VBOX_STUB_MANIFEST_FILE := $(PATH_SUB_CURRENT)/VBoxStub.manifest
78 $$(VBoxStub_0_OUTDIR)/VBoxStub-manifest.rc: $(VBOX_STUB_MANIFEST_FILE) $(MAKEFILE_CURRENT) | $$(dir $$@)
79 $(APPEND) -t $@ 'APP_MANIFEST RT_MANIFEST "$(subst /,\\,$(VBOX_STUB_MANIFEST_FILE))"'
80
81 # Dynamic import no. 1: MSI.DLL
82 VBoxStub_SOURCES += $(VBoxStub_0_OUTDIR)/MsiLazyLoad.asm
83 $$(VBoxStub_0_OUTDIR)/MsiLazyLoad.asm: $(PATH_SUB_CURRENT)/msi.def $(VBOX_DEF_2_LAZY_LOAD) | $$(dir $$@)
84 $(call MSG_TOOL,VBoxDef2LazyLoad,VBoxStub,$(filter %.def, $^),$@)
85 $(QUIET)$(RM) -f -- "$@"
86 $(VBOX_DEF_2_LAZY_LOAD) --system --library MSI.DLL --output "$@" $(filter %.def, $^)
87
88 # Dynamic import no. 2: CRYPTO32.DLL
89 VBoxStub_SOURCES += $(VBoxStub_0_OUTDIR)/Crypt32LazyLoad.asm
90 $$(VBoxStub_0_OUTDIR)/Crypt32LazyLoad.asm: $(PATH_SUB_CURRENT)/crypt32.def $(VBOX_DEF_2_LAZY_LOAD) | $$(dir $$@)
91 $(call MSG_TOOL,VBoxDef2LazyLoad,VBoxStub,$(filter %.def, $^),$@)
92 $(QUIET)$(RM) -f -- "$@"
93 $(VBOX_DEF_2_LAZY_LOAD) --system --library CRYPT32.DLL --output "$@" $(filter %.def, $^)
94
95 # Dynamic import no. 3: WS2_32.DLL
96 VBoxStub_SOURCES += $(VBoxStub_0_OUTDIR)/Ws232LazyLoad.asm
97 $$(VBoxStub_0_OUTDIR)/Ws232LazyLoad.asm: $(PATH_SUB_CURRENT)/ws2_32.def $(VBOX_DEF_2_LAZY_LOAD) | $$(dir $$@)
98 $(call MSG_TOOL,VBoxDef2LazyLoad,VBoxStub,$(filter %.def, $^),$@)
99 $(QUIET)$(RM) -f -- "$@"
100 $(VBOX_DEF_2_LAZY_LOAD) --system --library WS2_32.DLL --output "$@" $(filter %.def, $^)
101
102 # Dynamic import no. 4: USER32.DLL
103 VBoxStub_SOURCES += $(VBoxStub_0_OUTDIR)/User32LazyLoad.asm
104 $$(VBoxStub_0_OUTDIR)/User32LazyLoad.asm: $(PATH_SUB_CURRENT)/user32.def $(VBOX_DEF_2_LAZY_LOAD) | $$(dir $$@)
105 $(call MSG_TOOL,VBoxDef2LazyLoad,VBoxStub,$(filter %.def, $^),$@)
106 $(QUIET)$(RM) -f -- "$@"
107 $(VBOX_DEF_2_LAZY_LOAD) --system --library USER32.DLL --output "$@" $(filter %.def, $^)
108
109 # Dynamic import no. 5: SHELL32.DLL
110 VBoxStub_SOURCES += $(VBoxStub_0_OUTDIR)/Shell32LazyLoad.asm
111 $$(VBoxStub_0_OUTDIR)/Shell32LazyLoad.asm: $(PATH_SUB_CURRENT)/shell32.def $(VBOX_DEF_2_LAZY_LOAD) | $$(dir $$@)
112 $(call MSG_TOOL,VBoxDef2LazyLoad,VBoxStub,$(filter %.def, $^),$@)
113 $(QUIET)$(RM) -f -- "$@"
114 $(VBOX_DEF_2_LAZY_LOAD) --system --library SHELL32.DLL --output "$@" $(filter %.def, $^)
115
116
117endif # x86 only
118
119include $(FILE_KBUILD_SUB_FOOTER)
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