VirtualBox

source: vbox/trunk/src/VBox/Additions/Makefile.kmk@ 7229

Last change on this file since 7229 was 7229, checked in by vboxsync, 17 years ago

VBOX_WITH_ADDITIONS already checked in previous levels.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 6.7 KB
Line 
1# $Id: Makefile.kmk 7229 2008-03-03 06:17:57Z vboxsync $
2## @file
3# Top-level makefile for the VirtualBox Guest Additions.
4#
5# Cross building of the additions is generally done by remote building
6# by means of smbfs, cifs, VBOX_ONLY_ADDITIONS=1 and setting BUILD_TARGET
7# to the desired target.
8#
9# Limited support for cross building the windows additions using wine
10# is provided. There are a couple of issues with the approach (lack of
11# signing, no VC++ 8 support, ++) that makes it unsuitable for releases.
12#
13# Building the linux additions as part of the l4 build is ok because
14# l4 is built on a linux platform. This is why we have to check if
15# BUILD_TARGET is l4 or linux in some places, though most of the magic
16# is done in the templates (Config.kmk).
17#
18
19#
20# Copyright (C) 2006-2007 innotek GmbH
21#
22# This file is part of VirtualBox Open Source Edition (OSE), as
23# available from http://www.virtualbox.org. This file is free software;
24# you can redistribute it and/or modify it under the terms of the GNU
25# General Public License (GPL) as published by the Free Software
26# Foundation, in version 2 as it comes in the "COPYING" file of the
27# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
28# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
29#
30
31DEPTH = ../../..
32include $(PATH_KBUILD)/subheader.kmk
33
34#
35# Make some indicator adjustments to keep things simple in these makefiles.
36#
37ifdef VBOX_ADDITIONS_LINUX_ONLY
38 VBOX_ADDITIONS_XYZ_ONLY = 1
39 VBOX_WITH_LINUX_ADDITIONS = 1
40 VBOX_WITH_WIN32_ADDITIONS =
41else ifdef VBOX_ADDITIONS_WIN32_ONLY
42 VBOX_ADDITIONS_XYZ_ONLY = 1
43 VBOX_WITH_WIN32_ADDITIONS = 1
44 VBOX_WITH_LINUX_ADDITIONS =
45endif
46ifdef VBOX_WITH_WIN32_ADDITIONS
47 VBOX_WITH_ADDITIONS_ISO.win.x86 = 1
48endif
49ifdef VBOX_WITH_LINUX_ADDITIONS
50 VBOX_WITH_ADDITIONS_ISO.linux.x86 = 1
51endif
52ifeq ($(BUILD_TARGET),solaris)
53 VBOX_WITH_ADDITIONS_ISO.solaris.x86 = 1
54endif
55
56# Include sub-makefiles.
57include $(PATH_SUB_CURRENT)/common/Makefile.kmk
58ifdef VBOX_WITH_WIN32_ADDITIONS
59 include $(PATH_SUB_CURRENT)/WINNT/Makefile.kmk
60endif
61ifdef VBOX_WITH_LINUX_ADDITIONS
62 include $(PATH_SUB_CURRENT)/linux/Makefile.kmk
63endif
64ifdef VBOX_WITH_X11_ADDITIONS
65 include $(PATH_SUB_CURRENT)/x11/Makefile.kmk
66endif
67ifeq ($(BUILD_TARGET),solaris)
68 include $(PATH_SUB_CURRENT)/solaris/Makefile.kmk
69endif
70
71# The packing target rule, but only if we're on the local build box.
72ifndef VBOX_WITHOUT_ADDITIONS_ISO
73 ifndef VBOX_ADDITIONS_XYZ_ONLY
74 PACKING += $(PATH_BIN)/additions/VBoxGuestAdditions.iso
75 endif
76endif
77
78include $(PATH_KBUILD)/subfooter.kmk
79
80
81#
82# The x86 Windows .iso file spec.
83#
84ifdef VBOX_WITH_ADDITIONS_ISO.win.x86
85 ifdef VBOX_ONLY_ADDITIONS
86 VBOX_PATH_ADDITIONS.win.x86 = $(PATH_OUT_BASE)/win.x86/$(BUILD_TYPE)/bin/additions
87 else
88 # 32-only hack
89 VBOX_PATH_ADDITIONS.win.x86 = $(VBOX_PATH_ADDITIONS)
90 endif
91 ## @todo We're missing the .cat files and using the wrong .inf files here.
92 GUESTADDITIONS_FILESPEC.win.x86 = \
93 driver/VBoxGuest/VBoxGuest.sys=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxGuest.sys \
94 driver/VBoxGuest/VBoxGuest.inf=./WINNT/VBoxGuest/VBoxGuest.inf \
95 driver/VBoxGuest/VBoxService.exe=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxService.exe \
96 driver/VBoxGuest/VBoxHook.dll=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxHook.dll \
97 driver/VBoxGuest/VBoxControl.exe=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxControl.exe \
98 driver/VBoxGuest/VBCoInst.dll=$(VBOX_PATH_ADDITIONS.win.x86)/VBCoInst.dll \
99 driver/VBoxGuest/VBoxMouse.sys=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxMouse.sys \
100 driver/VBoxGuest/VBoxMouse.inf=./WINNT/MouseFilter/VBoxMouse.inf \
101 driver/VBoxVideo/VBoxVideo.sys=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxVideo.sys \
102 driver/VBoxVideo/VBoxVideo.inf=./WINNT/Graphics/Miniport/VBoxVideo.inf \
103 driver/VBoxVideo/VBoxDisp.dll=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxDisp.dll \
104 gina/VBoxGINA.dll=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxGINA.dll \
105 AMD_PCnet/netamd.inf=./WINNT/Network/AMD/netamd.inf \
106 AMD_PCnet/pcntpci5.cat=./WINNT/Network/AMD/pcntpci5.cat \
107 AMD_PCnet/PCNTPCI5.sys=./WINNT/Network/AMD/PCNTPCI5.sys \
108 VBoxGuestAdditions.exe=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxGuestAdditions.exe \
109 AUTORUN.INF=./WINNT/Installer/AUTORUN.INF
110 ifdef VBOX_WITH_WIN32_ADDITIONS_SHAREDFOLDERS
111 GUESTADDITIONS_FILESPEC.win.x86 += \
112 driver/VBoxSF/VBoxSF.sys=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxSF.sys \
113 driver/VBoxSF/VBoxMRXNP.dll=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxMRXNP.dll
114 endif
115endif
116
117#
118# The OS/2 .iso file spec.
119#
120ifdef VBOX_WITH_ADDITIONS_ISO.os2.x86
121 ifdef VBOX_ONLY_ADDITIONS
122 VBOX_PATH_ADDITIONS.os2.x86 = $(PATH_OUT_BASE)/os2.x86/$(BUILD_TYPE)/bin/additions
123 else
124 VBOX_PATH_ADDITIONS.os2.x86 = $(VBOX_PATH_ADDITIONS)
125 endif
126 GUESTADDITIONS_FILESPEC.os2.x86 = \
127 os2/VBoxGuest.sys=$(VBOX_PATH_ADDITIONS.os2.x86)/VBoxGuest.sys \
128 os2/VBoxService.exe=$(VBOX_PATH_ADDITIONS.os2.x86)/VBoxService.exe \
129 os2/gengradd.dll=$(VBOX_PATH_ADDITIONS.os2.x86)/gengradd.dll \
130 os2/libc063.dll=./os2/Bin/libc063.dll \
131 os2/readme.txt=./os2/Bin/readme.txt \
132 os2/vboxmouse.sys=$(VBOX_PATH_ADDITIONS.os2.x86)/vboxmouse.sys
133else ifdef VBOX_WITH_OS2_ADDITIONS_BIN
134 GUESTADDITIONS_FILESPEC.os2.x86 = \
135 os2/VBoxGuest.sys=./os2/Bin/VBoxGuest.sys \
136 os2/VBoxService.exe=./os2/Bin/VBoxService.exe \
137 os2/gengradd.dll=./os2/Bin/gengradd.dll \
138 os2/libc063.dll=./os2/Bin/libc063.dll \
139 os2/readme.txt=./os2/Bin/readme.txt \
140 os2/vboxmouse.sys=./os2/Bin/vboxmouse.sys
141endif
142
143#
144# The x86 Linux .iso file spec.
145#
146ifdef VBOX_WITH_ADDITIONS_ISO.linux.x86
147 ifdef VBOX_ONLY_ADDITIONS
148 VBOX_PATH_ADDITIONS.linux.x86 = $(PATH_OUT_BASE)/linux.x86/$(BUILD_TYPE)/bin/additions
149 else
150 # 32-bit only hack
151 VBOX_PATH_ADDITIONS.linux.x86 = $(VBOX_PATH_ADDITIONS)
152 endif
153 GUESTADDITIONS_FILESPEC.linux.x86 = \
154 VBoxLinuxAdditions.run=$(VBOX_PATH_ADDITIONS.linux.x86)/VBoxLinuxAdditions.run
155endif
156
157
158#
159# The x86 Solaris .iso file spec.
160#
161ifdef VBOX_WITH_ADDITIONS_ISO.solaris.x86
162 ifdef VBOX_ONLY_ADDITIONS
163 VBOX_PATH_ADDITIONS.solaris.x86 = $(PATH_OUT_BASE)/solaris.x86/$(BUILD_TYPE)/bin/additions
164 else
165 # 32-bit only hack
166 VBOX_PATH_ADDITIONS.solaris.x86 = $(VBOX_PATH_ADDITIONS)
167 endif
168 GUESTADDITIONS_FILESPEC.solaris.x86 = \
169 VBoxSolarisAdditions=$(VBOX_PATH_ADDITIONS.solaris.x86)/VBoxSolarisAdditions
170endif
171
172
173#
174# Build the Guest Additions ISO image.
175#
176ifndef VBOX_WITHOUT_ADDITIONS_ISO
177$(VBOX_PATH_ADDITIONS)/VBoxGuestAdditions.iso: \
178 $(filter-out %=deleteme=,\
179 $(subst =,=deleteme= ,\
180 $(GUESTADDITIONS_FILESPEC.win.x86) \
181 $(GUESTADDITIONS_FILESPEC.linux.x86) \
182 $(GUESTADDITIONS_FILESPEC.os2.x86) \
183 )\
184 ) \
185 $(VBOX_SVN_REV_KMK) \
186 Makefile.kmk
187 $(call MSG_TOOL,mkisofs,,$@)
188 $(QUIET)$(MKDIR) -p $(@D)
189 $(VBOX_MKISOFS) -rational-rock -joliet -iso-level 4 \
190 -volid "VBOXADDITIONS_$(VBOX_VERSION_STRING)_$(VBOX_SVN_REV)" -l -graft-points -o $@ \
191 $(GUESTADDITIONS_FILESPEC.win.x86) \
192 $(GUESTADDITIONS_FILESPEC.linux.x86) \
193 $(GUESTADDITIONS_FILESPEC.solaris.x86) \
194 $(GUESTADDITIONS_FILESPEC.os2.x86)
195endif
196
197
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