summaryrefslogtreecommitdiff
path: root/src/VBox/Additions/common/VBoxService/Makefile.kmk
blob: 197c194bbeb4bd38fc97d2bdb1ebc4567754b7c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# $Id: Makefile.kmk 29313 2010-05-11 07:08:01Z vboxsync $
## @file
# Sub-Makefile for the Cross Platform Guest Addition Services.
#

#
# Copyright (C) 2007-2010 Oracle Corporation
#
# This file is part of VirtualBox Open Source Edition (OSE), as
# available from http://www.virtualbox.org. This file is free software;
# you can redistribute it and/or modify it under the terms of the GNU
# General Public License (GPL) as published by the Free Software
# Foundation, in version 2 as it comes in the "COPYING" file of the
# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
#

SUB_DEPTH = ../../../../..
include	$(KBUILD_PATH)/subheader.kmk

#
# Target lists.
#
PROGRAMS += VBoxService
PROGRAMS.win.x86 += VBoxServiceNT

#
# VBoxService
#
VBoxService_TEMPLATE      = VBOXGUESTR3EXE
VBoxService_DEFS          = VBOX_WITH_HGCM VBOXSERVICE_TIMESYNC VBOXSERVICE_MANAGEMENT
VBoxService_DEFS.win     += _WIN32_WINNT=0x0501
VBoxService_DEFS.os2      = VBOX_WITH_HGCM VBOXSERVICE_CLIPBOARD
ifdef VBOX_WITH_GUEST_PROPS
 VBoxService_DEFS        += VBOX_WITH_GUEST_PROPS VBOXSERVICE_VMINFO
 if1of ($(KBUILD_TARGET), win)
  VBoxService_DEFS       += VBOXSERVICE_EXEC
 endif
endif
ifdef VBOX_WITH_GUEST_CONTROL
 VBoxService_DEFS        += VBOX_WITH_GUEST_CONTROL VBOXSERVICE_CONTROL
endif
ifdef VBOX_WITH_MEMBALLOON
 VBoxService_DEFS        += VBOX_WITH_MEMBALLOON
endif
ifdef VBOX_WITH_PAGE_SHARING
 VBoxService_DEFS        += VBOX_WITH_PAGE_SHARING
endif
if1of ($(KBUILD_TARGET), linux)
 VBoxService_DEFS        += VBOXSERVICE_CPUHOTPLUG
endif

VBoxService_SOURCES       = \
	VBoxService.cpp \
	VBoxServiceTimeSync.cpp \
	VBoxServiceUtils.cpp \
	VBoxServiceStats.cpp
ifdef VBOX_WITH_GUEST_CONTROL
 VBoxService_SOURCES    += \
 	VBoxServiceControl.cpp \
 	VBoxServiceControlExec.cpp
endif
ifdef VBOX_WITH_MEMBALLOON
 VBoxService_SOURCES    += \
 	VBoxServiceBalloon.cpp
endif
ifdef VBOX_WITH_PAGE_SHARING
 VBoxService_SOURCES    += \
 	VBoxServicePageSharing.cpp
endif
ifdef VBOX_WITH_GUEST_PROPS
 VBoxService_SOURCES.win  = \
 	VBoxServiceVMInfo-win.cpp
 VBoxService_SOURCES     += \
 	VBoxServiceVMInfo.cpp \
 	VBoxServicePropCache.cpp
endif
if1of ($(KBUILD_TARGET), linux)
 VBoxService_SOURCES     += \
	VBoxServiceCpuHotPlug.cpp
endif
VBoxService_SOURCES.win  += \
	VBoxService-win.rc \
	VBoxService-win.cpp

VBoxService_SOURCES.os2   = \
	VBoxService-os2.def \
	VBoxServiceClipboard-os2.cpp

VBoxService_LIBS          = \
	$(VBOX_LIB_IPRT_GUEST_R3) \
	$(VBOX_LIB_VBGL_R3) \
	$(VBOX_LIB_IPRT_GUEST_R3)
ifdef VBOX_WITH_GUEST_PROPS
 VBoxService_LIBS.win    += \
 	Secur32.lib \
 	WtsApi32.lib \
 	Psapi.lib
 VBoxService_LIBS.solaris += \
 	nsl kstat
endif

#
# VBoxServiceNT - NT4 version of VBoxService.
#
VBoxServiceNT_TEMPLATE = VBOXGUESTR3EXE
VBoxServiceNT_EXTENDS  = VBoxService
VBoxServiceNT_DEFS.win = _WIN32_WINNT=0x0400 TARGET_NT4 VBOXSERVICE_MANAGEMENT

VBoxServiceVMInfo.cpp_DEFS = VBOX_SVN_REV=$(VBOX_SVN_REV)
VBoxServiceVMInfo.cpp_DEPS = $(VBOX_SVN_REV_KMK)

#
# The icon is configurable.
#
VBoxService-win.rc_INCS = $(PATH_VBoxService)
VBoxService-win.rc_DEPS = $(PATH_VBoxService)/VBoxService-win-icon.rc
VBoxService-win.rc_CLEAN = $(PATH_VBoxService)/VBoxService-win-icon.rc

# Icon include file.
$$(PATH_VBoxService)/VBoxService-win-icon.rc: $(VBOX_WINDOWS_ADDITIONS_ICON_FILE) $$(VBoxService_PATH)/Makefile.kmk | $$(dir $$@)
	$(RM) -f $@
	$(APPEND) $@ 'IDI_VIRTUALBOX ICON DISCARDABLE "$(subst /,\\,$(VBOX_WINDOWS_ADDITIONS_ICON_FILE))"'

include	$(KBUILD_PATH)/subfooter.kmk