VirtualBox

source: vbox/trunk/src/VBox/Installer/linux/Makefile.kmk@ 5913

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

don't create VirtualBox.run when building debs/rpms (save time)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 7.2 KB
Line 
1# $Id: Makefile.kmk 5875 2007-11-28 20:54:30Z vboxsync $
2## @file
3# Makefile for the Linux installer.
4#
5
6#
7# Copyright (C) 2006-2007 innotek GmbH
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.virtualbox.org. This file is free software;
11# you can redistribute it and/or modify it under the terms of the GNU
12# General Public License as published by the Free Software Foundation,
13# in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
14# distribution. VirtualBox OSE is distributed in the hope that it will
15# be useful, but WITHOUT ANY WARRANTY of any kind.
16
17DEPTH = ../../../..
18include $(PATH_KBUILD)/header.kmk
19
20ifneq ($(BUILD_PLATFORM),linux)
21$(error "The Linux installer can only be built on Linux!") # yeah, right.
22endif
23
24VBOX_NO_LINUX_RUN_INSTALLER ?= $(VBOX_OSE)
25
26PROGRAMS = VBoxTunctl
27PACKING = $(if $(VBOX_NO_LINUX_RUN_INSTALLER),,$(PATH_BIN)/VirtualBox.run)
28PACKING += $(PATH_BIN)/VirtualBox.tar.bz2
29OTHER_CLEAN = $(addprefix $(PATH_TARGET)/install/,\
30 install.sh deffiles routines.sh \
31 VBoxAddIF.sh vboxdrv.sh vboxnet.sh \
32 VirtualBox.tar.bz2 LICENSE) \
33 $(wildcard $(PATH_TARGET)/VirtualBox-*)
34INSTALLS = linux-bin linux-doc
35
36VBoxTunctl_TEMPLATE = VBOXR3EXE
37VBoxTunctl_SOURCES = tunctl.c
38
39#
40# Linux installs.
41#
42linux-bin_INST = bin/
43linux-bin_MODE = a+rx,u+w
44linux-bin_SOURCES = \
45 VBoxSysInfo.sh \
46 VBox.sh=>VBox.sh
47
48linux-doc_INST = bin/
49linux-doc_MODE = a+r,u+w
50linux-doc_SOURCES = \
51 $(if $(VBOX_OSE),,$(PATH_ROOT)/doc/License.txt=>LICENSE) \
52 VBox.png=>VBox.png
53
54# Strip these binaries
55LINUXSTRIPBIN = \
56 VBoxDD.so \
57 VBoxDD2.so \
58 VBoxManage \
59 VBoxREM.so \
60 VBoxRT.so \
61 $(if $(VBOX_WITH_VBOXSDL),VBoxSDL,) \
62 VBoxSVC \
63 VBoxDDU.so \
64 VBoxVMM.so \
65 VBoxXML.so \
66 VBoxXPCOM.so \
67 VBoxXPCOMIPCD \
68 $(if $(VBOX_WITH_QTGUI),VBoxKeyboard.so,) \
69 $(if $(VBOX_WITH_QTGUI),VirtualBox,) \
70 tstVMM \
71 VBoxTunctl \
72 components/VBoxC.so \
73 components/VBoxSVCM.so \
74 components/VBoxXPCOMIPCC.so
75
76# Do not remove relocation information of these binaries
77LINUXSTRIPOBJ = \
78 VBoxDD2GC.gc \
79 VBoxDD2R0.r0 \
80 VBoxDDGC.gc \
81 VBoxDDR0.r0 \
82 VMMGC.gc \
83 VMMR0.r0
84ifeq ($(BUILD_TARGET_ARCH),amd64)
85LINUXSTRIPOBJ += \
86 VBoxREM2.rel
87endif
88
89# Do not strip anything of these files
90LINUXNOSTRIP = \
91 $(if $(VBOX_OSE),,LICENSE) \
92 $(if $(VBOX_OSE),,License-$(VBOX_LICENSE_VER).html) \
93 components/VBoxXPCOMBase.xpt \
94 components/VirtualBox_XPCOM.xpt \
95 VBoxSysInfo.sh \
96 VBox.sh \
97 VBox.png \
98 VBoxAddIF.sh \
99 $(if $(VBOX_WITH_QTGUI),VirtualBox.desktop,) \
100 $(if $(VBOX_WITH_QTGUI),$(foreach f,\
101 $(shell $(CAT_EXT) \
102 $(PATH_ROOT)/src/VBox/Frontends/VirtualBox/nls/ApprovedLanguages.txt),\
103 nls/VirtualBox_$(f).qm nls/qt_$(f).qm),) \
104 src \
105 sdk
106
107# Guest Additions
108LINUXNOSTRIP += \
109 $(if $(VBOX_OSE),,additions/VBoxGuestAdditions.iso)
110
111# Shared Folders
112LINUXSTRIPBIN += \
113 VBoxSharedFolders.so \
114 $(if $(VBOX_OSE),,VRDPAuth.so)
115
116# Shared Clipboard
117LINUXSTRIPBIN += \
118 VBoxSharedClipboard.so \
119 $(if $(VBOX_WITH_DEBUGGER_GUI),VBoxDbg.so,)
120
121ifdef VBOX_WITH_DOCS
122 LINUXNOSTRIP += \
123 UserManual.pdf
124 LINUXSTRIPBIN += \
125 $(if $(VBOX_WITH_QTGUI),kchmviewer,)
126 ifneq ($(wildcard $(PATH_BIN)/VirtualBox.chm),)
127 # our 64-bit tinderboxes are not able to generate VirtualBox.chm so far
128 # but for building .deb/.rpm packages we use precompiled binaries.
129 LINUXNOSTRIP += \
130 VirtualBox.chm
131 endif
132 ifneq ($(wildcard $(PATH_BIN)/VirtualBoxAPI.chm),)
133 # same applies to VirtualBoxAPI.chm
134 LINUXNOSTRIP += \
135 VirtualBoxAPI.chm
136 endif
137endif
138ifdef VBOX_WITH_VRDP
139 LINUXSTRIPBIN += \
140 VBoxVRDP.so \
141 VBoxVRDP
142
143 LINUXNOSTRIP += \
144 rdesktop-vrdp.tar.gz
145endif
146
147LINUXARCHFILES := $(LINUXSTRIPBIN) $(LINUXSTRIPOBJ) $(LINUXNOSTRIP)
148
149OTHER_CLEAN += $(addprefix $(PATH_TARGET)/archive/,$(LINUXARCHFILES))
150
151include $(PATH_KBUILD)/footer.kmk
152
153$(PATH_BIN)/VirtualBox.run: \
154 $(PATH_TARGET)/install/VirtualBox.tar.bz2 \
155 install.sh \
156 $(VBOX_VERSION_STAMP) \
157 routines.sh \
158 deffiles \
159 vboxnet.sh \
160 vboxdrv.sh \
161 $(if $(VBOX_OSE),,$(PATH_ROOT)/doc/License.txt)
162 $(call MSG_TOOL,makeself,,,$@)
163 $(QUIET)$(SED) -e "s;_VERSION_;${VBOX_VERSION_STRING};g" \
164 -e "s;_BUILD_;$(shell date);g" \
165 -e "s;_ARCH_;${BUILD_TARGET_ARCH};g" \
166 < install.sh > $(PATH_TARGET)/install/install.sh
167 $(QUIET)chmod 0744 $(PATH_TARGET)/install/install.sh
168 $(QUIET)$(INSTALL) -m 0755 routines.sh $(PATH_TARGET)/install
169 $(QUIET)$(INSTALL) -m 0755 deffiles $(PATH_TARGET)/install
170 $(QUIET)$(if $(VBOX_OSE),,$(INSTALL) -m 0644 $(PATH_ROOT)/doc/License.txt $(PATH_TARGET)/install/LICENSE)
171 $(QUIET)$(INSTALL) -m 0755 vboxnet.sh $(PATH_TARGET)/install
172 $(QUIET)$(INSTALL) -m 0755 vboxdrv.sh $(PATH_TARGET)/install
173 $(QUIET)$(RM) -f $@
174 $(QUIET)$(VBOX_MAKESELF) --follow $(PATH_TARGET)/install $@ \
175 "VirtualBox for Linux installation" ./install.sh "\$$0 1> /dev/null"
176
177# .tar.bz2 for converting into .run
178$(PATH_TARGET)/install/VirtualBox.tar.bz2: \
179 $(addprefix $(PATH_TARGET)/archive/, $(LINUXARCHFILES)) \
180 Makefile.kmk \
181 $(VBOX_VERSION_STAMP) \
182 $(PATH_TARGET)/VirtualBox-$(VBOX_VERSION_STRING)
183 $(call MSG_L1,Packing $@)
184 $(QUIET)$(MKDIR) -p $(@D)
185 $(QUIET)tar --owner 0 --group 0 -cjRhf $@ -C $(PATH_TARGET)/VirtualBox-$(VBOX_VERSION_STRING) $(LINUXARCHFILES)
186 $(QUIET)chmod 0644 $@
187
188# .tar.bz2 for distribution
189$(PATH_BIN)/VirtualBox.tar.bz2: \
190 $(addprefix $(PATH_TARGET)/archive/, $(LINUXARCHFILES)) \
191 Makefile.kmk \
192 $(VBOX_VERSION_STAMP) \
193 $(PATH_TARGET)/VirtualBox-$(VBOX_VERSION_STRING)
194 $(call MSG_L1,Packing $@)
195 $(QUIET)$(MKDIR) -p $(PATH_TARGET)
196 $(QUIET)tar --owner 0 --group 0 -cjRhf $@ -C $(PATH_TARGET) \
197 $(addprefix VirtualBox-$(VBOX_VERSION_STRING)/,$(LINUXARCHFILES))
198
199$(PATH_TARGET)/VirtualBox-$(VBOX_VERSION_STRING): $(PATH_TARGET)/archive
200 $(call MSG_INST_SYM,$<,$@)
201 $(QUIET)$(MKDIR) -p $(@D)
202 $(QUIET)rm -rf $@
203 $(QUIET)$(LN_SYMLINK) $< $@
204
205$(PATH_BIN)/VBoxAddIF.sh: VBoxAddIF.sh $(VBOX_VERSION_STAMP)
206 $(call MSG_GENERATE,,$@,$<)
207 $(QUIET)$(SED) -e "s;_VERSION_;${VBOX_VERSION_STRING};g" $< > $@
208 $(QUIET)chmod 0755 $@
209
210$(PATH_BIN)/VirtualBox.desktop: VirtualBox.desktop $(VBOX_VERSION_STAMP)
211 $(call MSG_GENERATE,,$@,$<)
212ifdef VBOX_PATH_PACKAGE_DOCS
213 $(QUIET)$(SED) -e "s+\$$VBOX_DOC_PATH+$(VBOX_PATH_PACKAGE_DOCS)+" $< > $@
214else
215 $(QUIET)$(SED) -e "s+\$$VBOX_DOC_PATH+/opt/VirtualBox-$(VBOX_VERSION_STRING)+" $< > $@
216endif
217
218# Note: The -m <mode> feature of kmk_builtin_install does not work together with fakeroot!
219# Note: $(INSTALL) -s is currently not reliable when used in parallel builds. Fixed in 0.1.1.
220$(foreach f,$(LINUXSTRIPBIN),$(PATH_TARGET)/archive/$(f)): \
221 $(PATH_TARGET)/archive/% : $(PATH_BIN)/% | $(call DIRDEP,$(PATH_TARGET)/archive)
222 $(call MSG_INST_FILE,$<,$@)
223 $(QUIET)install -D -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@
224
225$(foreach f,$(LINUXSTRIPOBJ),$(PATH_TARGET)/archive/$(f)): \
226 $(PATH_TARGET)/archive/% : $(PATH_BIN)/% | $(call DIRDEP,$(PATH_TARGET)/archive)
227 $(call MSG_INST_FILE,$<,$@)
228 $(QUIET)$(if $(VBOX_DO_STRIP),objcopy --strip-unneeded -R .comment $< $@,cp $< $@)
229
230$(foreach f,$(LINUXNOSTRIP),$(PATH_TARGET)/archive/$(f)): \
231 $(PATH_TARGET)/archive/% : $(PATH_BIN)/% | $(call DIRDEP,$(PATH_TARGET)/archive)
232 $(call MSG_INST_SYM,$<,$@)
233 $(QUIET)$(RM) -f $@
234 $(QUIET)$(MKDIR) -p $(@D)
235 $(QUIET)$(LN_SYMLINK) $< $@
236
237$(foreach d,archive install,$(PATH_TARGET)/$(d)/):
238 $(QUIET)$(MKDIR) -p $@
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