Changeset 31672 in vbox for trunk/src/VBox/Installer/darwin
- Timestamp:
- Aug 13, 2010 5:55:41 PM (14 years ago)
- Location:
- trunk/src/VBox/Installer/darwin
- Files:
-
- 5 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Installer/darwin/Makefile.kmk
r31667 r31672 5 5 6 6 # 7 # Copyright (C) 2006-20 09Oracle Corporation7 # Copyright (C) 2006-2010 Oracle Corporation 8 8 # 9 9 # This file is part of VirtualBox Open Source Edition (OSE), as … … 22 22 # Include sub-makefiles. 23 23 # 24 include $(PATH_SUB_CURRENT)/InstallerPlugins/Makefile.kmk 24 ifndef VBOX_OSE 25 include $(PATH_SUB_CURRENT)/InstallerPlugins/Makefile.kmk 26 endif 25 27 26 28 … … 80 82 AWK=/usr/bin/awk 81 83 HDIUTIL=/usr/bin/hdiutil 82 83 84 84 85 # … … 190 191 $(VBOX_PATH_PACK_TMP)/Packages/VirtualBox.pkg \ 191 192 $$(TARGET_RegistrationPane) \ 192 $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Info.plist \ 193 $$(wildcard $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Resources/*.lproj/*.strings \ 194 $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Resources/*.lproj/RegistrationPane.nib/*.nib) \ 195 $$(wildcard $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/* \ 193 $(if $(VBOX_OSE), , \ 194 $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Info.plist \ 195 $$(wildcard $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Resources/*.lproj/*.strings \ 196 $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Resources/*.lproj/RegistrationPane.nib/*.nib)) \ 197 $$(wildcard $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/* \ 196 198 $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/*.lproj/*) \ 197 199 $(foreach f,$(VBOX_INSTALLER_ADD_LANGUAGES), \ … … 285 287 @# Copy the plugins. 286 288 $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/VirtualBox_mpkg/distribution.dist $@/Contents/ 289 ifndef VBOX_OSE 287 290 $(MKDIR) -p $@/Contents/Plugins/ 288 291 ifdef VBOX_WITH_SERIALNUMBER_INSTALL … … 307 310 $(INSTALL) -m 0644 $(VBOX_BRAND_$(f)_REGISTRATIONPANE_LOCALIZABLE_STRINGS) $@/Contents/Plugins/RegistrationPane.bundle/Contents/Resources/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Localizable.strings$(NLTAB) \ 308 311 ) 312 endif 309 313 @# Cleanup. 310 314 sudo rm -Rf \ … … 318 322 # The VirtualBox Kernel extensions. 319 323 # 320 VBOX_DI_KEXTS_UNIVERSAL = VBoxDrv VBoxUSB VBoxNetFlt VBoxNetAdp 324 VBOX_DI_KEXTS_UNIVERSAL = VBoxDrv VBoxNetFlt VBoxNetAdp 325 ifndef VBOX_OSE 326 VBOX_DI_KEXTS_UNIVERSAL += VBoxUSB 327 endif 321 328 VBOX_DI_KEXTS = $(VBOX_DI_KEXTS_UNIVERSAL) 322 329 … … 608 615 ifdef VBOX_WITH_PYTHON 609 616 VBOX_DI_VBAPP_DYLIBS.x86 += \ 610 MacOS/VBoxPython2_5.so\617 $(if-expr defined(VBOX_WITH_MAC_OS_X_10_5_SUPPORT),MacOS/VBoxPython2_5.so,) \ 611 618 $(if-expr defined(VBOX_WITH_MAC_OS_X_10_4_SUPPORT),MacOS/VBoxPython2_3.so,) 612 619 endif … … 1065 1072 $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.res 1066 1073 1067 # 1068 # The OpenSolaris VM bundle distribution package. 1069 # 1070 $(VBOX_PATH_PACK_TMP)/VirtualBoxBundle.mpkg: \ 1071 $(VBOX_PATH_PACK_TMP)/PackagesBundle/SolarisVM.pkg \ 1072 $$(wildcard $(VBOX_PATH_DI_SRC)/VirtualBoxBundle_mpkg/* \ 1073 $(VBOX_PATH_DI_SRC)/VirtualBoxBundle_mpkg/*.lproj/*) \ 1074 $$(TARGET_RegistrationPane) \ 1075 $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Info.plist \ 1076 $$(wildcard $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Resources/*.lproj/*.strings \ 1077 $(VBOX_PATH_DI_SRC)/InstallerPlugins/RegistrationPane/Resources/*.lproj/RegistrationPane.nib/*.nib) \ 1078 $(foreach f,$(VBOX_INSTALLER_ADD_LANGUAGES), \ 1079 $(VBOX_BRAND_$(f)_VIRTUALBOXBUNDLE_DESCRIPTION_PLIST) \ 1080 $(VBOX_BRAND_$(f)_VIRTUALBOXBUNDLE_LOCALIZABLE_STRINGS)) \ 1081 $(VBOX_DARWIN_INST_DEP_ON_MAKEFILE) 1082 sudo rm -Rf \ 1083 $@ \ 1084 $(VBOX_PATH_PACK_TMP)/VirtualBoxBundle.mpkg.desc \ 1085 $(VBOX_PATH_PACK_TMP)/VirtualBoxBundle.mpkg.res 1086 @# Correct directory permissions are important. 1087 $(MKDIR) -p \ 1088 $(@D) \ 1089 $@/Contents \ 1090 $(VBOX_PATH_PACK_TMP)/VirtualBoxBundle.mpkg.desc \ 1091 $(VBOX_PATH_PACK_TMP)/VirtualBoxBundle.mpkg.res 1092 @# Do keyword replacement in the package info and description files. 1093 $(SED) \ 1094 -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ 1095 -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ 1096 -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ 1097 -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ 1098 -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ 1099 -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ 1100 -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ 1101 --output $(VBOX_PATH_PACK_TMP)/VirtualBoxBundle.mpkg.desc/Info.plist \ 1102 $(VBOX_PATH_DI_SRC)/VirtualBoxBundle_mpkg/Info.plist 1103 $(SED) \ 1104 -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ 1105 -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ 1106 -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ 1107 -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ 1108 -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ 1109 -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ 1110 -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ 1111 --output $(VBOX_PATH_PACK_TMP)/VirtualBoxBundle.mpkg.desc/Description.plist \ 1112 $(VBOX_PATH_DI_SRC)/VirtualBoxBundle_mpkg/Description.plist 1113 $(INSTALL) -m 0755 $(VBOX_PATH_DI_SRC)/VirtualBoxBundle_mpkg/check_files $(VBOX_PATH_PACK_TMP)/VirtualBoxBundle.mpkg.res/ 1114 $(INSTALL) -m 0755 $(VBOX_PATH_DI_SRC)/VirtualBoxBundle_mpkg/vboxtest $(VBOX_PATH_PACK_TMP)/VirtualBoxBundle.mpkg.res/ 1115 @# Build the package. 1116 $(VBOX_PACKAGEMAKER) -build -v \ 1117 -p $@ \ 1118 -r $(VBOX_PATH_PACK_TMP)/VirtualBoxBundle.mpkg.res \ 1119 -i $(VBOX_PATH_PACK_TMP)/VirtualBoxBundle.mpkg.desc/Info.plist \ 1120 -d $(VBOX_PATH_PACK_TMP)/VirtualBoxBundle.mpkg.desc/Description.plist \ 1121 -mi $(VBOX_PATH_PACK_TMP)/PackagesBundle 1122 @# Create a distribution file. 1123 $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/VirtualBoxBundle_mpkg/distribution.dist $@/Contents/ 1124 $(SED) \ 1125 -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ 1126 -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ 1127 -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ 1128 --output $@/Contents/Resources/English.lproj/Localizable.strings \ 1129 $(VBOX_PATH_DI_SRC)/VirtualBoxBundle_mpkg/Localizable.strings 1130 @# Make a link to the plugin directory of the VirtualBox.mpkg 1131 $(LN) -s ../../VirtualBox.mpkg/Contents/Plugins $@/Contents/Plugins 1132 @# Make links to the other resources, so they are up to date & don't waste space on the dvd. 1133 $(LN) -s ../../../VirtualBox.mpkg/Contents/Resources/checkforrunningvms $@/Contents/Resources/checkforrunningvms 1134 $(LN) -s ../../../../VirtualBox.mpkg/Contents/Resources/English.lproj/Welcome.html $@/Contents/Resources/English.lproj/Welcome.html 1135 $(LN) -s ../../../../VirtualBox.mpkg/Contents/Resources/English.lproj/Conclusion.html $@/Contents/Resources/English.lproj/Conclusion.html 1136 $(LN) -s ../../../../VirtualBox.mpkg/Contents/Resources/English.lproj/License.rtf $@/Contents/Resources/English.lproj/License.rtf 1137 $(foreach f,$(VBOX_INSTALLER_ADD_LANGUAGES), \ 1138 $(MKDIR) -p \ 1139 $@/Contents/Resources/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj$(NLTAB) \ 1140 $(SED) \ 1141 -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ 1142 -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ 1143 -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ 1144 -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ 1145 -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ 1146 -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ 1147 -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ 1148 --output $@/Contents/Resources/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Description.plist \ 1149 $(VBOX_BRAND_$(f)_VIRTUALBOXBUNDLE_DESCRIPTION_PLIST)$(NLTAB) \ 1150 $(SED) \ 1151 -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ 1152 -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ 1153 -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ 1154 --output $@/Contents/Resources/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Localizable.strings \ 1155 $(VBOX_BRAND_$(f)_VIRTUALBOXBUNDLE_LOCALIZABLE_STRINGS)$(NLTAB) \ 1156 $(LN) -s ../../../../VirtualBox.mpkg/Contents/Resources/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Welcome.html $@/Contents/Resources/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Welcome.html$(NLTAB) \ 1157 $(LN) -s ../../../../VirtualBox.mpkg/Contents/Resources/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Conclusion.html $@/Contents/Resources/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/Conclusion.html$(NLTAB) \ 1158 $(LN) -s ../../../../VirtualBox.mpkg/Contents/Resources/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/License.rtf $@/Contents/Resources/$(VBOX_INSTALLER_$(f)_DARWIN_TARGET).lproj/License.rtf$(NLTAB) \ 1159 ) 1160 $(LN) -s ../../../VirtualBox.mpkg/Contents/Resources/background.tif $@/Contents/Resources/background.tif 1161 @# Cleanup. 1162 sudo rm -Rf \ 1163 $(VBOX_PATH_PACK_TMP)/VirtualBoxBundle.mpkg.desc \ 1164 $(VBOX_PATH_PACK_TMP)/VirtualBoxBundle.mpkg.res 1165 1166 1167 $(VBOX_PATH_DIST)/VBoxMacBundleInstaller-$(KBUILD_TARGET_ARCH).zip: \ 1168 $(VBOX_PATH_PACK_TMP)/VirtualBoxBundle.mpkg \ 1169 $(VBOX_DARWIN_INST_DEP_ON_MAKEFILE) 1170 $(RM) -Rf $@ 1171 $(REDIRECT) -C $(VBOX_PATH_PACK_TMP) -- $(ZIP) -9ry $@ VirtualBoxBundle.mpkg/ 1172 1173 # 1174 # The OpenSolaris VM 1175 # 1176 $(VBOX_PATH_PACK_TMP)/PackagesBundle/SolarisVM.pkg: \ 1177 $$(wildcard $(VBOX_PATH_DI_SRC)/SolarisVM/* \ 1178 $(VBOX_PATH_DI_SRC)/SolarisVM/*.lproj/*) \ 1179 $(VBOX_DARWIN_INST_DEP_ON_MAKEFILE) 1180 $(call MSG_TOOL,PackageMaker,,,$@) 1181 @# Cleanup any previously failed attempts. 1182 sudo rm -Rf \ 1183 $@ \ 1184 $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.root \ 1185 $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.desc \ 1186 $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.res 1187 @# Correct directory permissions are important. 1188 $(MKDIR) -p \ 1189 $(@D) \ 1190 $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.root \ 1191 $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.desc \ 1192 $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.res 1193 @# Do keyword replacement in the package info and description files. 1194 $(SED) \ 1195 -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ 1196 -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ 1197 -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ 1198 -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ 1199 -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ 1200 -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ 1201 -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ 1202 --output $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.desc/Info.plist \ 1203 $(VBOX_PATH_DI_SRC)/SolarisVM/Info.plist 1204 $(SED) \ 1205 -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ 1206 -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ 1207 -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ 1208 -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ 1209 -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ 1210 -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ 1211 -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ 1212 --output $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.desc/Description.plist \ 1213 $(VBOX_PATH_DI_SRC)/SolarisVM/Description.plist 1214 @# Copy the resources. 1215 $(INSTALL) -m 0755 $(VBOX_PATH_DI_SRC)/SolarisVM/postflight $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.res/ 1216 $(INSTALL) -m 0755 $(VBOX_PATH_DI_SRC)/SolarisVM/pget $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.res/ 1217 $(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/SolarisVM/config $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.res/ 1218 @# Build the package. 1219 $(VBOX_PACKAGEMAKER) -build -v \ 1220 -p $@ \ 1221 -f $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.root \ 1222 -r $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.res \ 1223 -i $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.desc/Info.plist \ 1224 -d $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.desc/Description.plist 1225 @# Cleanup 1226 sudo rm -Rf \ 1227 $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.root \ 1228 $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.desc \ 1229 $(VBOX_PATH_PACK_TMP)/SolarisVM.pkg.res 1230 1231 # 1232 # The VirtualBox bundle iso file 1233 # 1234 # The iso file should contain all platform installers (Win, Mac, Linux, 1235 # Solaris). Additionally it adds an example VM (OpenSolaris) which currently is 1236 # automatically installed and configured on Windows & Mac OS X. In the following 1237 # make step no one of the necessary files will be created. All is fetch 1238 # external and build in the release step. This makes sure that the version info 1239 # is fixed for the current release. This is also true for the Win & Mac bundle 1240 # installers. The following variables define the locations of the various 1241 # needed files. 1242 ## @todo Maybe we can automatically download the VBoxAll package. 1243 # 1244 VBOX_TMP_DIR ?= /VBox 1245 VBOX_ALL ?= $(VBOX_TMP_DIR)/VirtualBox-all*.tar.bz2 1246 1247 # Calculate the vdi size in KBytes 1248 # zip version 1249 #VBOX_EXAMPLE_VDI_SIZE ?= $(int-div $(shell $(UNZIP) -l $(VBOX_BRAND_EXAMPLE_VDI) "*.vdi" | $(AWK) '/vdi/{print $$1}'), 1024) 1250 # tar.gz version 1251 #VBOX_EXAMPLE_VDI_SIZE ?= $(int-div $(shell $(GZIP) -dc $(VBOX_BRAND_EXAMPLE_VDI) | $(TAR) -tvf - | $(AWK) '/vdi/{print $$3}'), 1024) 1252 # gz version 1253 # Buggy gzip. If the original file size is greater than 4GB they is reported 1254 # wrong with the -l switch. So manually add the missing 4GB. See 1255 # http://www.mail-archive.com/[email protected]/msg00168.html for the bugreport. 1256 VBOX_EXAMPLE_VDI_SIZE ?= $(int-div $(int-add $(shell $(GZIP) -lq $(VBOX_BRAND_EXAMPLE_VDI) | $(AWK) '/vdi/{print $$2}'), 4294967296), 1024) 1257 1258 # Unpack the vbox all to a temp directory 1259 $(VBOX_PATH_PACK_TMP)/VirtualBoxAll/: \ 1260 $(VBOX_ALL) \ 1261 $(VBOX_DARWIN_INST_DEP_ON_MAKEFILE) 1262 sudo rm -Rf \ 1263 $@ 1264 $(MKDIR) -p \ 1265 $@ 1266 $(TAR) -xjvf $(VBOX_ALL) -C $@ 1267 1268 # Create the standard iso (No bundle installer and therfor necessary files). 1269 $(VBOX_PATH_DIST)/VirtualBox.iso: \ 1270 gen_isoimage_dir_CD \ 1271 $(VBOX_DARWIN_INST_DEP_ON_MAKEFILE) 1272 sudo rm -Rf \ 1273 $@ 1274 $(MKDIR) -p \ 1275 $(@D) 1276 @# All the files are there so create the hybrid iso 1277 $(HDIUTIL) makehybrid \ 1278 -o $@ \ 1279 -hfs \ 1280 -iso \ 1281 -joliet \ 1282 -hfs-volume-name "VirtualBox" \ 1283 -iso-volume-name "VirtualBox" \ 1284 -joliet-volume-name "VirtualBox" \ 1285 -hfs-openfolder "$(VBOX_PATH_PACK_TMP)/IsoImage" \ 1286 -hide-hfs "$(VBOX_PATH_PACK_TMP)/IsoImage/{$(subst $(SP),$(COMMA),$(VBOX_BRAND_INST_HIDE_MAC))}" \ 1287 -hide-iso "$(VBOX_PATH_PACK_TMP)/IsoImage/{$(subst $(SP),$(COMMA),$(VBOX_BRAND_INST_HIDE_WIN))}" \ 1288 -hide-joliet "$(VBOX_PATH_PACK_TMP)/IsoImage/{$(subst $(SP),$(COMMA),$(VBOX_BRAND_INST_HIDE_WIN))}" \ 1289 $(VBOX_PATH_PACK_TMP)/IsoImage 1290 @# Generate MD5 sum 1291 $(REDIRECT) -C $(@D) -- $(MD5SUM_EXT) -p -o VirtualBox.md5 VirtualBox.iso 1292 1293 # Create the bundle iso. 1294 $(VBOX_PATH_DIST)/VirtualBoxBundle.iso: \ 1295 gen_isoimage_dir_DVD \ 1296 $(VBOX_BRAND_EXAMPLE_MACHINE_INI) \ 1297 $(VBOX_BRAND_EXAMPLE_VDI) \ 1298 $(VBOX_PATH_PACK_TMP)/VirtualBoxAll/VBoxWinBundleInstaller-x86.zip \ 1299 $(VBOX_PATH_PACK_TMP)/VirtualBoxAll/VBoxWinBundleInstaller-amd64.zip \ 1300 $(VBOX_PATH_PACK_TMP)/VirtualBoxAll/VBoxMacBundleInstaller-x86.zip \ 1301 $(VBOX_DARWIN_INST_DEP_ON_MAKEFILE) 1302 $(eval VBOX_WIN_BUNDLE_INSTALLER_FILES.x86 ?= $(shell $(UNZIP) -qql $(VBOX_PATH_PACK_TMP)/VirtualBoxAll/VBoxWinBundleInstaller-x86.zip | $(AWK) '{print $$4}' | $(SED) 's/\/.*//g' | uniq)) 1303 $(eval VBOX_WIN_BUNDLE_INSTALLER_FILES.amd64 ?= $(shell $(UNZIP) -qql $(VBOX_PATH_PACK_TMP)/VirtualBoxAll/VBoxWinBundleInstaller-amd64.zip | $(AWK) '{print $$4}' | $(SED) 's/\/.*//g' | uniq)) 1304 sudo rm -Rf \ 1305 $@ 1306 $(MKDIR) -p \ 1307 $(@D) 1308 @# Install the example vm stuff 1309 $(INSTALL) -m 0644 $(VBOX_BRAND_EXAMPLE_MACHINE_INI) $(VBOX_PATH_PACK_TMP)/IsoImage/ 1310 $(INSTALL) -m 0644 $(VBOX_BRAND_EXAMPLE_VDI) $(VBOX_PATH_PACK_TMP)/IsoImage/ 1311 @# Copy the Win bundle installer stuff 1312 $(UNZIP) $(VBOX_PATH_PACK_TMP)/VirtualBoxAll/VBoxWinBundleInstaller-x86.zip -d $(VBOX_PATH_PACK_TMP)/IsoImage/ 1313 $(UNZIP) $(VBOX_PATH_PACK_TMP)/VirtualBoxAll/VBoxWinBundleInstaller-amd64.zip -d $(VBOX_PATH_PACK_TMP)/IsoImage/ 1314 @# Copy the Mac bundle installer stuff 1315 $(UNZIP) $(VBOX_PATH_PACK_TMP)/VirtualBoxAll/VBoxMacBundleInstaller-x86.zip -d $(VBOX_PATH_PACK_TMP)/IsoImage/ 1316 @# Write the right file size of the vdi to the bundle installer. For that 1317 @# we need a tmp file cause sed doesn't do infile replacement. 1318 $(SED) \ 1319 -e 's/\(solarisvm.*installKBytes="\).*\(" auth="None"\)/\1$(VBOX_EXAMPLE_VDI_SIZE)\2/g' \ 1320 --output $(VBOX_PATH_PACK_TMP)/distribution.dist.tmp \ 1321 $(VBOX_PATH_PACK_TMP)/IsoImage/VirtualBoxBundle.mpkg/Contents/distribution.dist 1322 $(MV) $(VBOX_PATH_PACK_TMP)/distribution.dist.tmp $(VBOX_PATH_PACK_TMP)/IsoImage/VirtualBoxBundle.mpkg/Contents/distribution.dist 1323 @# We need a little different DS_Store than the one in the standard installer 1324 $(INSTALL) -m 644 $(VBOX_PATH_DI_SRC)/BundleIsoImage/DS_Store $(VBOX_PATH_PACK_TMP)/IsoImage/.DS_Store 1325 @# All the files are there so create the hybrid iso 1326 $(HDIUTIL) makehybrid \ 1327 -o $@ \ 1328 -hfs \ 1329 -udf \ 1330 -hfs-volume-name "VirtualBox" \ 1331 -udf-volume-name "VirtualBox" \ 1332 -hfs-openfolder "$(VBOX_PATH_PACK_TMP)/IsoImage" \ 1333 -hide-hfs "$(VBOX_PATH_PACK_TMP)/IsoImage/{$(subst $(SP),$(COMMA),$(VBOX_WIN_BUNDLE_INSTALLER_FILES.x86) $(VBOX_WIN_BUNDLE_INSTALLER_FILES.amd64) $(VBOX_BRAND_INST_HIDE_MAC))}" \ 1334 -hide-udf "$(VBOX_PATH_PACK_TMP)/IsoImage/{$(subst $(SP),$(COMMA),$(VBOX_BRAND_INST_HIDE_WIN))}" \ 1335 $(VBOX_PATH_PACK_TMP)/IsoImage 1336 @# Generate MD5 sum 1337 $(REDIRECT) -C $(@D) -- $(MD5SUM_EXT) -p -o VirtualBoxBundle.md5 VirtualBoxBundle.iso 1338 1339 # We have to make sure that $(VBOX_PATH_PACK_TMP)/IsoImage/ contains only files 1340 # which should be there. Therewith we make it a define & delete it on every 1341 # recreation. 1342 VBOX_TMP_MOUNT ?= /tmp/IsoImage.mnt 1343 define def_gen_isoimage_dir 1344 gen_isoimage_dir_$(medium): \ 1345 $(VBOX_PATH_PACK_TMP)/VirtualBoxAll/ \ 1346 $(VBOX_BRAND_CUSTOM) \ 1347 $(VBOX_DARWIN_INST_DEP_ON_MAKEFILE) 1348 sudo rm -Rf \ 1349 $(VBOX_PATH_PACK_TMP)/IsoImage 1350 #test ! -e $(VBOX_TMP_MOUNT) || ($(HDIUTIL) detach $(VBOX_TMP_MOUNT) && sudo rmdir $(VBOX_TMP_MOUNT)) 1351 test ! -e $(VBOX_TMP_MOUNT) || (sudo rmdir $(VBOX_TMP_MOUNT)) 1352 @# Correct directory permissions are important. 1353 $(MKDIR) -p \ 1354 $(VBOX_PATH_PACK_TMP)/IsoImage/ \ 1355 $(VBOX_TMP_MOUNT) 1356 ifdef VBOX_BRAND_CUSTOM 1357 $(MKDIR) -p $(VBOX_PATH_PACK_TMP)/IsoImage/.custom 1358 endif 1359 @# Copy all platform installer without the OS X one and the other extra files 1360 $(CP_EXT) $(patsubst %,$(VBOX_PATH_PACK_TMP)/VirtualBoxAll/%,$(VBOX_BRAND_INST_$(medium)_FILES)) $(VBOX_PATH_PACK_TMP)/IsoImage/ 1361 @# Copy custom stuff if defined 1362 $(foreach custom, $(VBOX_BRAND_CUSTOM) \ 1363 ,$(INSTALL) -m 644 $(custom) $(VBOX_PATH_PACK_TMP)/IsoImage/.custom/$(NLTAB)) 1364 @# Copy all user manuals 1365 ifdef VBOX_BRAND_en_EN_MANUAL_NAME 1366 $(INSTALL) -m 644 $(VBOX_PATH_PACK_TMP)/VirtualBoxAll/UserManual.pdf $(VBOX_PATH_PACK_TMP)/IsoImage/$(VBOX_BRAND_en_EN_MANUAL_NAME).pdf 1367 else 1368 $(INSTALL) -m 644 $(VBOX_PATH_PACK_TMP)/VirtualBoxAll/UserManual.pdf $(VBOX_PATH_PACK_TMP)/IsoImage/User\ Manual.pdf 1369 endif 1370 ifdef VBOX_BRAND_de_DE_MANUAL_NAME 1371 $(INSTALL) -m 644 $(VBOX_PATH_PACK_TMP)/VirtualBoxAll/UserManual_de_DE.pdf "$(VBOX_PATH_PACK_TMP)/IsoImage/$(VBOX_BRAND_de_DE_MANUAL_NAME).pdf" 1372 endif 1373 ifdef VBOX_BRAND_fr_FR_MANUAL_NAME 1374 $(INSTALL) -m 644 $(VBOX_PATH_PACK_TMP)/VirtualBoxAll/UserManual_fr_FR.pdf "$(VBOX_PATH_PACK_TMP)/IsoImage/$(VBOX_BRAND_fr_FR_MANUAL_NAME).pdf" 1375 endif 1376 ifdef VBOX_WITH_COMBINED_PACKAGE 1377 @# Rename the Windows multi platform installer (.exe) to a unique name the HTML auto start menu can handle 1378 $(MV) $(firstword $(wildcard $(VBOX_PATH_PACK_TMP)/IsoImage/VirtualBox-*-Win.exe)) "$(VBOX_PATH_PACK_TMP)/IsoImage/VirtualBox-Win.exe" 1379 endif 1380 @# Temporary mount the dmg file 1381 @# Note: man hdiutil: "Note that mountpoint paths must be less than MNAMELEN 1382 @# characters (90 as of this writing)." So we use a path in /tmp/. 1383 $(HDIUTIL) attach -noautoopen -readonly -mountpoint $(VBOX_TMP_MOUNT) $(patsubst %,$(VBOX_PATH_PACK_TMP)/VirtualBoxAll/%,VirtualBox-*-OSX.dmg) 1384 @# Copy all the necessary stuff over 1385 $(INSTALL) $(VBOX_TMP_MOUNT)/VirtualBox_Uninstall.tool $(VBOX_PATH_PACK_TMP)/IsoImage/ 1386 $(INSTALL) $(VBOX_TMP_MOUNT)/.DS_Store $(VBOX_PATH_PACK_TMP)/IsoImage/ 1387 $(CP) -R $(VBOX_TMP_MOUNT)/.background $(VBOX_PATH_PACK_TMP)/IsoImage/ 1388 $(CP) -R $(VBOX_TMP_MOUNT)/VirtualBox.mpkg $(VBOX_PATH_PACK_TMP)/IsoImage/ 1389 ifdef VBOX_BRAND_DARWIN_DISKIMAGE_LN_APP 1390 $(LN) -s /Applications/ $(VBOX_PATH_PACK_TMP)/IsoImage/Applications 1391 endif 1392 @# Copy specific files 1393 $(VBOX_BRAND_INST_$(medium)_GEN_ISOIMAGE_DIR) 1394 @# Unmount the dmg file 1395 $(HDIUTIL) detach $(VBOX_TMP_MOUNT) 1396 @# Cleanup 1397 sudo rm -Rf \ 1398 $(VBOX_TMP_MOUNT) 1399 endef 1400 1401 # Generate a rule for the CD & the DVD respectively. 1402 $(foreach medium,$(VBOX_BRAND_MEDIA),$(eval $(def_gen_isoimage_dir))) 1403 1074 ifndef VBOX_OSE 1075 include $(PATH_SUB_CURRENT)/Bundle.kmk 1076 endif
Note:
See TracChangeset
for help on using the changeset viewer.