VirtualBox

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

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

Solaris Guest Additions Installer. Initial stuff.

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