VirtualBox

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

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

Fixed missing .iso deps for freebsd and solaris.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 7.4 KB
Line 
1# $Id: Makefile.kmk 7537 2008-03-25 13:03:03Z 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
55ifeq ($(BUILD_TARGET),freebsd)
56 VBOX_WITH_ADDITIONS_ISO.freebsd.x86 = 1
57endif
58
59# Include sub-makefiles.
60include $(PATH_SUB_CURRENT)/common/Makefile.kmk
61ifdef VBOX_WITH_WIN32_ADDITIONS
62 include $(PATH_SUB_CURRENT)/WINNT/Makefile.kmk
63endif
64ifdef VBOX_WITH_LINUX_ADDITIONS
65 include $(PATH_SUB_CURRENT)/linux/Makefile.kmk
66endif
67ifdef VBOX_WITH_X11_ADDITIONS
68 include $(PATH_SUB_CURRENT)/x11/Makefile.kmk
69endif
70ifeq ($(BUILD_TARGET),solaris)
71 include $(PATH_SUB_CURRENT)/solaris/Makefile.kmk
72endif
73ifeq ($(BUILD_TARGET),freebsd)
74 include $(PATH_SUB_CURRENT)/freebsd/Makefile.kmk
75endif
76
77# The packing target rule, but only if we're on the local build box.
78ifndef VBOX_WITHOUT_ADDITIONS_ISO
79 ifndef VBOX_ADDITIONS_XYZ_ONLY
80 PACKING += $(PATH_BIN)/additions/VBoxGuestAdditions.iso
81 endif
82endif
83
84include $(PATH_KBUILD)/subfooter.kmk
85
86
87#
88# The x86 Windows .iso file spec.
89#
90ifdef VBOX_WITH_ADDITIONS_ISO.win.x86
91 ifdef VBOX_ONLY_ADDITIONS
92 VBOX_PATH_ADDITIONS.win.x86 = $(PATH_OUT_BASE)/win.x86/$(BUILD_TYPE)/bin/additions
93 else
94 # 32-only hack
95 VBOX_PATH_ADDITIONS.win.x86 = $(VBOX_PATH_ADDITIONS)
96 endif
97 ## @todo We're missing the .cat files and using the wrong .inf files here.
98 GUESTADDITIONS_FILESPEC.win.x86 = \
99 driver/VBoxGuest/VBoxGuest.sys=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxGuest.sys \
100 driver/VBoxGuest/VBoxGuest.inf=./WINNT/VBoxGuest/VBoxGuest.inf \
101 driver/VBoxGuest/VBoxService.exe=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxService.exe \
102 driver/VBoxGuest/VBoxHook.dll=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxHook.dll \
103 driver/VBoxGuest/VBoxControl.exe=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxControl.exe \
104 driver/VBoxGuest/VBCoInst.dll=$(VBOX_PATH_ADDITIONS.win.x86)/VBCoInst.dll \
105 driver/VBoxGuest/VBoxMouse.sys=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxMouse.sys \
106 driver/VBoxGuest/VBoxMouse.inf=./WINNT/MouseFilter/VBoxMouse.inf \
107 driver/VBoxVideo/VBoxVideo.sys=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxVideo.sys \
108 driver/VBoxVideo/VBoxVideo.inf=./WINNT/Graphics/Miniport/VBoxVideo.inf \
109 driver/VBoxVideo/VBoxDisp.dll=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxDisp.dll \
110 gina/VBoxGINA.dll=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxGINA.dll \
111 AMD_PCnet/netamd.inf=./WINNT/Network/AMD/netamd.inf \
112 AMD_PCnet/pcntpci5.cat=./WINNT/Network/AMD/pcntpci5.cat \
113 AMD_PCnet/PCNTPCI5.sys=./WINNT/Network/AMD/PCNTPCI5.sys \
114 VBoxGuestAdditions.exe=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxGuestAdditions.exe \
115 AUTORUN.INF=./WINNT/Installer/AUTORUN.INF
116 ifdef VBOX_WITH_WIN32_ADDITIONS_SHAREDFOLDERS
117 GUESTADDITIONS_FILESPEC.win.x86 += \
118 driver/VBoxSF/VBoxSF.sys=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxSF.sys \
119 driver/VBoxSF/VBoxMRXNP.dll=$(VBOX_PATH_ADDITIONS.win.x86)/VBoxMRXNP.dll
120 endif
121endif
122
123#
124# The OS/2 .iso file spec.
125#
126ifdef VBOX_WITH_ADDITIONS_ISO.os2.x86
127 ifdef VBOX_ONLY_ADDITIONS
128 VBOX_PATH_ADDITIONS.os2.x86 = $(PATH_OUT_BASE)/os2.x86/$(BUILD_TYPE)/bin/additions
129 else
130 VBOX_PATH_ADDITIONS.os2.x86 = $(VBOX_PATH_ADDITIONS)
131 endif
132 GUESTADDITIONS_FILESPEC.os2.x86 = \
133 os2/VBoxGuest.sys=$(VBOX_PATH_ADDITIONS.os2.x86)/VBoxGuest.sys \
134 os2/VBoxService.exe=$(VBOX_PATH_ADDITIONS.os2.x86)/VBoxService.exe \
135 os2/gengradd.dll=$(VBOX_PATH_ADDITIONS.os2.x86)/gengradd.dll \
136 os2/libc063.dll=./os2/Bin/libc063.dll \
137 os2/readme.txt=./os2/Bin/readme.txt \
138 os2/vboxmouse.sys=$(VBOX_PATH_ADDITIONS.os2.x86)/vboxmouse.sys
139else ifdef VBOX_WITH_OS2_ADDITIONS_BIN
140 GUESTADDITIONS_FILESPEC.os2.x86 = \
141 os2/VBoxGuest.sys=./os2/Bin/VBoxGuest.sys \
142 os2/VBoxService.exe=./os2/Bin/VBoxService.exe \
143 os2/gengradd.dll=./os2/Bin/gengradd.dll \
144 os2/libc063.dll=./os2/Bin/libc063.dll \
145 os2/readme.txt=./os2/Bin/readme.txt \
146 os2/vboxmouse.sys=./os2/Bin/vboxmouse.sys
147endif
148
149#
150# The x86 Linux .iso file spec.
151#
152ifdef VBOX_WITH_ADDITIONS_ISO.linux.x86
153 ifdef VBOX_ONLY_ADDITIONS
154 VBOX_PATH_ADDITIONS.linux.x86 = $(PATH_OUT_BASE)/linux.x86/$(BUILD_TYPE)/bin/additions
155 else
156 # 32-bit only hack
157 VBOX_PATH_ADDITIONS.linux.x86 = $(VBOX_PATH_ADDITIONS)
158 endif
159 GUESTADDITIONS_FILESPEC.linux.x86 = \
160 VBoxLinuxAdditions.run=$(VBOX_PATH_ADDITIONS.linux.x86)/VBoxLinuxAdditions.run
161endif
162
163
164#
165# The x86 Solaris .iso file spec.
166#
167ifdef VBOX_WITH_ADDITIONS_ISO.solaris.x86
168 ifdef VBOX_ONLY_ADDITIONS
169 VBOX_PATH_ADDITIONS.solaris.x86 = $(PATH_OUT_BASE)/solaris.x86/$(BUILD_TYPE)/bin/additions
170 else
171 # 32-bit only hack
172 VBOX_PATH_ADDITIONS.solaris.x86 = $(VBOX_PATH_ADDITIONS)
173 endif
174 GUESTADDITIONS_FILESPEC.solaris.x86 = \
175 VBoxSolarisAdditions=$(VBOX_PATH_ADDITIONS.solaris.x86)/VBoxSolarisAdditions
176endif
177
178#
179# The x86 FreeBSD .iso file spec.
180#
181ifdef VBOX_WITH_ADDITIONS_ISO.freebsd.x86
182 ifdef VBOX_ONLY_ADDITIONS
183 VBOX_PATH_ADDITIONS.freebsd.x86 = $(PATH_OUT_BASE)/freebsd.x86/$(BUILD_TYPE)/bin/additions
184 else
185 # 32-bit only hack
186 VBOX_PATH_ADDITIONS.freebsd.x86 = $(VBOX_PATH_ADDITIONS)
187 endif
188 GUESTADDITIONS_FILESPEC.freebsd.x86 = \
189 VBoxFreeBSDAdditions.tbz=$(VBOX_PATH_ADDITIONS.freebsd.x86)/VBoxFreeBSDAdditions.tbz
190endif
191
192#
193# Build the Guest Additions ISO image.
194#
195ifndef VBOX_WITHOUT_ADDITIONS_ISO
196$(VBOX_PATH_ADDITIONS)/VBoxGuestAdditions.iso: \
197 $(filter-out %=deleteme=,\
198 $(subst =,=deleteme= ,\
199 $(GUESTADDITIONS_FILESPEC.win.x86) \
200 $(GUESTADDITIONS_FILESPEC.solaris.x86) \
201 $(GUESTADDITIONS_FILESPEC.os2.x86) \
202 $(GUESTADDITIONS_FILESPEC.linux.x86) \
203 $(GUESTADDITIONS_FILESPEC.freebsd.x86) \
204 )\
205 ) \
206 $(VBOX_SVN_REV_KMK) \
207 Makefile.kmk
208 $(call MSG_TOOL,mkisofs,,$@)
209 $(QUIET)$(MKDIR) -p $(@D)
210 $(VBOX_MKISOFS) -rational-rock -joliet -iso-level 4 \
211 -volid "VBOXADDITIONS_$(VBOX_VERSION_STRING)_$(VBOX_SVN_REV)" -l -graft-points -o $@ \
212 $(GUESTADDITIONS_FILESPEC.win.x86) \
213 $(GUESTADDITIONS_FILESPEC.solaris.x86) \
214 $(GUESTADDITIONS_FILESPEC.os2.x86) \
215 $(GUESTADDITIONS_FILESPEC.linux.x86) \
216 $(GUESTADDITIONS_FILESPEC.freebsd.x86)
217endif
218
219
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