VirtualBox

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

Last change on this file since 3906 was 3906, checked in by vboxsync, 18 years ago

attempt to fix our 64-bit tinderboxes

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