# $Id: Makefile.kmk 2606 2007-05-13 06:17:45Z vboxsync $ ## @file # Top-level makefile for the VirtualBox Guest Additions. # # # Copyright (C) 2006 InnoTek Systemberatung GmbH # # 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 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. # # If you received this file as part of a commercial VirtualBox # distribution, then only the terms of your commercial VirtualBox # license agreement apply instead of the previous paragraph. # DEPTH = ../../.. include $(PATH_KBUILD)/subheader.kmk # Include sub-makefiles. include $(PATH_SUB_CURRENT)/common/Makefile.kmk ifdef VBOX_WITH_WIN32_ADDITIONS include $(PATH_SUB_CURRENT)/WINNT/Makefile.kmk endif ifdef VBOX_WITH_LINUX_ADDITIONS SUBDIRS += linux LINUXINSTALLER = $(PATH_BIN)/additions/VBoxLinuxAdditions.run endif ifneq ($(VBOX_WITH_WIN32_ADDITIONS)$(VBOX_WITH_LINUX_ADDITIONS),) PACKING += $(PATH_BIN)/additions/VBoxGuestAdditions.iso endif LINUXINSTALLER_CROSS = $(PATH_ROOT)/out/linux.x86/$(BUILD_TYPE)/bin/additions/VBoxLinuxAdditions.run # If the build (Windows host only, problem doesn't exist for Linux) should # include Linux additions, set VBOX_ADDITIONS_LINUX_CROSS. This causes the # Linux additions to be built via a ssh session (to the host specified in # VBOX_ADDITIONS_LINUX_CROSS_HOST, usually set in LocalConfig.kmk. Needs # eventually be generalized once more additions platforms are supported. # This host has the Windows build box tree mounted, in order to make 100% sure # that a complete build is created from a single consistent revision. ifdef VBOX_ADDITIONS_LINUX_CROSS OTHER_CLEAN += $(LINUXINSTALLER_CROSS) LINUXINSTALLER = $(LINUXINSTALLER_CROSS) endif include $(PATH_KBUILD)/subfooter.kmk ifdef VBOX_WITH_WIN32_ADDITIONS GUESTADDITIONS_WIN32_DEPS = $(PATH_BIN)/additions/VBoxGuest.sys \ ./WINNT/VBoxGuest/VBoxGuest.inf \ $(PATH_BIN)/additions/VBoxService.exe \ $(PATH_BIN)/additions/VBoxControl.exe \ $(PATH_BIN)/additions/VBCoInst.dll \ $(PATH_BIN)/additions/VBoxMouse.sys \ ./WINNT/MouseFilter/VBoxMouse.inf \ $(PATH_BIN)/additions/VBoxVideo.sys \ ./WINNT/Graphics/Miniport/VBoxVideo.inf \ $(PATH_BIN)/additions/VBoxDisp.dll \ $(PATH_BIN)/additions/VBoxGINA.dll \ $(PATH_BIN)/additions/VBoxGuestAdditions.exe \ ./WINNT/Installer/AUTORUN.INF \ ./WINNT/Network/AMD/netamd.inf \ ./WINNT/Network/AMD/pcntpci5.cat \ ./WINNT/Network/AMD/PCNTPCI5.sys GUESTADDITIONS_WIN32_FILESPEC = driver/VBoxGuest/VBoxGuest.sys=$(PATH_BIN)/additions/VBoxGuest.sys \ driver/VBoxGuest/VBoxGuest.inf=./WINNT/VBoxGuest/VBoxGuest.inf \ driver/VBoxGuest/VBoxService.exe=$(PATH_BIN)/additions/VBoxService.exe \ driver/VBoxGuest/VBoxControl.exe=$(PATH_BIN)/additions/VBoxControl.exe \ driver/VBoxGuest/VBCoInst.dll=$(PATH_BIN)/additions/VBCoInst.dll \ driver/VBoxGuest/VBoxMouse.sys=$(PATH_BIN)/additions/VBoxMouse.sys \ driver/VBoxGuest/VBoxMouse.inf=./WINNT/MouseFilter/VBoxMouse.inf \ driver/VBoxVideo/VBoxVideo.sys=$(PATH_BIN)/additions/VBoxVideo.sys \ driver/VBoxVideo/VBoxVideo.inf=./WINNT/Graphics/Miniport/VBoxVideo.inf \ driver/VBoxVideo/VBoxDisp.dll=$(PATH_BIN)/additions/VBoxDisp.dll \ gina/VBoxGINA.dll=$(PATH_BIN)/additions/VBoxGINA.dll \ AMD_PCnet/netamd.inf=./WINNT/Network/AMD/netamd.inf \ AMD_PCnet/pcntpci5.cat=./WINNT/Network/AMD/pcntpci5.cat \ AMD_PCnet/PCNTPCI5.sys=./WINNT/Network/AMD/PCNTPCI5.sys \ VBoxGuestAdditions.exe=$(PATH_BIN)/additions/VBoxGuestAdditions.exe \ AUTORUN.INF=./WINNT/Installer/AUTORUN.INF endif ifdef LINUXINSTALLER GUESTADDITIONS_LINUX_DEPS = $(LINUXINSTALLER) GUESTADDITIONS_LINUX_FILESPEC = VBoxLinuxAdditions.run=$(LINUXINSTALLER) endif # # Build the Guest Additions ISO image. # $(PATH_BIN)/additions/VBoxGuestAdditions.iso: \ $(GUESTADDITIONS_WIN32_DEPS) $(GUESTADDITIONS_LINUX_DEPS) \ Makefile.kmk $(call MSG_TOOL,mkisofs,,,$@) $(QUIET)$(VBOX_MKISOFS) -rational-rock -joliet -iso-level 4 -volid "VBOXADDITIONS" -l -graft-points -o $@ \ $(GUESTADDITIONS_WIN32_FILESPEC) $(GUESTADDITIONS_LINUX_FILESPEC) # build the Linux installer on a remote machine $(LINUXINSTALLER_CROSS): ssh vbox@$(VBOX_ADDITIONS_LINUX_CROSS_HOST) "./enter-rhel3-jail /mnt/tinderwin_vbox/w32-rel/tools/env.sh --no-wine kmk -C src/VBox/Runtime BUILD_TYPE=release VBOX_ADDITIONS_LINUX_ONLY=1" ssh vbox@$(VBOX_ADDITIONS_LINUX_CROSS_HOST) "./enter-rhel3-jail /mnt/tinderwin_vbox/w32-rel/tools/env.sh --no-wine kmk -C src/VBox/Additions/common BUILD_TYPE=release VBOX_ADDITIONS_LINUX_ONLY=1" ssh vbox@$(VBOX_ADDITIONS_LINUX_CROSS_HOST) "./enter-rhel3-jail /mnt/tinderwin_vbox/w32-rel/tools/env.sh --no-wine kmk -C src/VBox/Additions/linux BUILD_TYPE=release all packing"