VirtualBox

source: vbox/trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk@ 12291

Last change on this file since 12291 was 12291, checked in by vboxsync, 16 years ago

VirtualBox3/Makefile: make the tar command line quiet, but the tar command verbose.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 16.8 KB
Line 
1# $Id: Makefile.kmk 12291 2008-09-09 12:57:42Z vboxsync $
2## @file
3# Makefile for the VirtualBox Qt3 GUI.
4#
5
6#
7# Copyright (C) 2006-2007 Sun Microsystems, Inc.
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 (GPL) as published by the Free Software
13# Foundation, in version 2 as it comes in the "COPYING" file of the
14# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16#
17# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
18# Clara, CA 95054 USA or visit http://www.sun.com if you need
19# additional information or have any questions.
20#
21
22SUB_DEPTH = ../../../..
23include $(KBUILD_PATH)/subheader.kmk
24
25#
26# Globals.
27#
28VBOX_PATH_VIRTUALBOX3_SRC := $(PATH_SUB_CURRENT)
29VBOX_WITH_REGISTRATION := 1
30VBOX_WITH_REGISTRATION_REQUEST := 1
31
32
33#
34# The targets.
35#
36ifdef VBOX_WITH_HARDENING
37 PROGRAMS += VirtualBox3Hardened
38 DLLS += VirtualBox
39else
40 PROGRAMS += VirtualBox
41endif
42ifeq ($(filter-out freebsd linux openbsd netbsd solaris,$(KBUILD_TARGET)),) # X11
43 DLLS += VBoxKeyboard3
44 OTHERS += $(PATH_BIN)/vboxkeyboard3.tar.gz
45endif
46DLLS.os2 += VBoxHlp
47
48
49ifeq ($(KBUILD_TARGET),os2)
50 #
51 # VBoxHlp - helper DLL for OS/2.
52 #
53 VBoxHlp_ASTOOL = NASM
54 VBoxHlp_ASFLAGS = -f obj
55 VBoxHlp_DEFS = IN_RING3 IN_VBOXHLP
56 VBoxHlp_CXXFLAGS = -fno-exceptions
57 VBoxHlp_LDFLAGS = -nostdlib -los2
58 VBoxHlp_LDFLAGS += -Zlinker option -Zlinker manyautodata
59 VBoxHlp_SOURCES = \
60 src/os2/VBoxHlp.asm \
61 src/os2/VBoxHlp.cpp
62
63 #
64 # Hack for installing the qt.dll when building for OS/2.
65 #
66 ifneq ($(strip $(VBOX_DLL_QT)),)
67 INSTALLS.os2 += qt.dll
68 qt.dll_INST = $(INST_BIN)
69 qt.dll_SOURCES += \
70 $(VBOX_DLL_QT)=>$(not-dir $(VBOX_DLL_QT))
71 endif
72endif # OS/2
73
74
75#
76# VBoxKeyboard3 - keyboard library for X11.
77#
78VBoxKeyboard3_TEMPLATE = VBOXR3
79VBoxKeyboard3_SOURCES = \
80 src/linux/keyboard-new.c
81VBoxKeyboard3_TARSOURCES = \
82 $(VBoxKeyboard3_SOURCES) \
83 src/linux/COPYING.LIB \
84 src/linux/keyboard.h \
85 src/linux/keyboard-layouts.h \
86 src/linux/keyboard-list.h \
87 src/linux/keyboard-tables.h \
88 src/linux/keyboard-types.h \
89 src/linux/Makefile
90VBoxKeyboard3_LIBS = X11
91VBoxKeyboard3_LIBPATH = $(VBOX_LIBPATH_X11)
92
93
94#
95# vboxkeyboard3.tar.gz - the LGPLed keyboard library must always be
96# redistributed with usable sources.
97#
98SOURCE_DIRECTORY = vboxkeyboard3
99DIRECTORY_PREFIX = src/linux/
100
101$(PATH_TARGET)/$(SOURCE_DIRECTORY): | $$(dir $@)
102 $(LN_SYMLINK) $(abspath $(VBOX_PATH_VIRTUALBOX3_SRC))/$(DIRECTORY_PREFIX) $@
103
104$(PATH_BIN)/vboxkeyboard3.tar.gz: $(abspathex $(VBoxKeyboard3_TARSOURCES),$(PATH_SUB_CURRENT)) $(PATH_TARGET)/$(SOURCE_DIRECTORY)
105 $(call MSG_TOOL,tar/gzip,,$@)
106 $(QUIET)cd $(PATH_TARGET) \
107 && tar -cvhf - $(addprefix $(SOURCE_DIRECTORY)/,$(subst $(DIRECTORY_PREFIX),,$(VBoxKeyboard3_TARSOURCES))) \
108 | gzip - > $@
109
110OTHER_CLEAN += \
111 $(PATH_BIN)/vboxkeyboard3.tar.gz \
112 $(PATH_TARGET)/$(SOURCE_DIRECTORY)
113
114
115#
116# Hardened VirtualBox3.
117#
118VirtualBox3Hardened_TEMPLATE = VBOXR3HARDENEDEXE
119VirtualBox3Hardened_SOURCES = src/hardenedmain.cpp
120VirtualBox3Hardened_NAME = VirtualBox3
121ifeq ($(KBUILD_TARGET),darwin) ## @todo use .darwin when ticket 36 has been fixed.
122 #VirtualBox3Hardened_INST.darwin = $(INST_BIN)VirtualBox3 $(INST_BIN)VirtualBoxVM3
123 VirtualBox3Hardened_INST = $(INST_BIN)VirtualBox3 $(INST_BIN)VirtualBoxVM3
124endif
125
126
127#
128# Note: I'm doing this right here because the GUI will _not_ run
129# without that file which might be annoying for developers!
130#
131## @todo is is an ugly hack, change into an install target or make the root Makefile do this!
132ifndef VBOX_OSE
133 ifeq ($(filter-out freebsd linux netbsd openbsd solaris,$(KBUILD_TARGET)),) # linux only, yea, right.
134$(VBOX_LICENSE_BIN): $(VBOX_LICENSE_SRC)
135 $(call MSG_GENERATE,,$@)
136 $(QUIET)$(CP) $< $@
137
138$(PATH_BIN)/VirtualBox3: $(VBOX_LICENSE_BIN)
139 endif
140endif
141
142
143#
144# Include Qt project file, we'll use FORMS, TRANSLATIONS and IMAGES
145# in the VirtualBox(3) setup below.
146#
147SAVED_TEMPLATE := $(TEMPLATE)
148include $(PATH_SUB_CURRENT)/VBoxUI.pro
149
150
151# Import images from VBoxUI.pro and add some additional ones
152# that differs between OSE and PEUL.
153VirtualBox_QT_IMAGES := $(IMAGES)
154ifdef VBOX_OSE
155 VirtualBox_QT_IMAGES += \
156 images/OSE/about.png \
157 images/OSE/about_tile.png \
158 images/OSE/about_16px.png \
159 images/OSE/VirtualBox_16px.png \
160 images/OSE/VirtualBox_20px.png \
161 images/OSE/VirtualBox_32px.png \
162 images/OSE/VirtualBox_40px.png \
163 images/OSE/VirtualBox_48px.png \
164 images/OSE/VirtualBox_64px.png \
165 images/OSE/VirtualBox_cube_42px.png
166else
167 VirtualBox_QT_IMAGES += \
168 images/NonOSE/about.png \
169 images/NonOSE/about_16px.png \
170 images/NonOSE/VirtualBox_16px.png \
171 images/NonOSE/VirtualBox_20px.png \
172 images/NonOSE/VirtualBox_32px.png \
173 images/NonOSE/VirtualBox_40px.png \
174 images/NonOSE/VirtualBox_48px.png \
175 images/NonOSE/VirtualBox_64px.png \
176 images/NonOSE/VirtualBox_cube_42px.png
177endif
178VirtualBox_QT_IMAGES := $(abspathex $(VirtualBox_QT_IMAGES),$(PATH_SUB_CURRENT))
179
180
181
182#
183# VirtualBox - The GUI program.
184#
185VirtualBox_TEMPLATE := $(if $(VBOX_WITH_HARDENING),VBOXQTGUI,VBOXQTGUIEXE)
186VirtualBox_NAME = VirtualBox3
187ifndef VBOX_WITH_HARDENING # For the launch trick we need different inode numbers.
188 ifeq ($(KBUILD_TARGET),darwin) ## @todo use .darwin when ticket 36 has been fixed.
189 #VirtualBox_INST.darwin = $(INST_BIN)VirtualBox3 $(INST_BIN)VirtualBoxVM3
190 VirtualBox_INST = $(INST_BIN)VirtualBox3 $(INST_BIN)VirtualBoxVM3
191 endif
192endif
193USES += qt3
194VirtualBox_USES = qt3
195VirtualBox_SDKS += QT3
196VirtualBox_QTTOOL = QT3
197VirtualBox_SDKS.win = WINPSDK DXSDK
198#ifeq ($(filter-out freebsd linux netbsd openbsd os2 solaris,$(KBUILD_TARGET)),) - later
199ifeq ($(filter-out freebsd linux netbsd openbsd os2,$(KBUILD_TARGET)),) # X11 + os2
200 VirtualBox_SDKS += LIBSDL
201endif
202
203# For testing iChat Theater stuff change the sdk path (HACK ALERT)
204ifdef VBOX_WITH_ICHAT_THEATER
205 VBOX_PATH_MACOSX_SDK = /Developer/SDKs/MacOSX10.5.sdk
206endif
207
208# Import translation sources
209VirtualBox3_QT_TRANSLATIONS := $(TRANSLATIONS) \
210$(patsubst nls/VirtualBox_%.ts,nls/qt_%.ts, $(filter nls/VirtualBox_%.ts,$(TRANSLATIONS)))
211VirtualBox_LRCFLAGS = -nocompress
212VirtualBox_QT_TRANSLATIONS_INST = $(INST_BIN)nls3/
213
214# QDesigner UI sources are imported from VBoxUI.pro.
215## @todo move down.
216ifndef VBOX_WITH_REGISTRATION
217 FORMS := $(filter-out ui/VBoxRegistrationDlg.ui,$(FORMS))
218endif
219# OSE version is always necessary for lupdate/lrelease
220FORMS += ui/VBoxAboutDlg.ui
221$(eval VirtualBox_SOURCES += $(FORMS) )
222
223# Headers containing definitions of classes that use the Q_OBJECT macro
224VirtualBox_QT_MOCHDRS = \
225 include/QIWidgetValidator.h \
226 include/QIHotKeyEdit.h \
227 include/QIStatusBar.h \
228 include/QIStateIndicator.h \
229 include/QIMessageBox.h \
230 include/QIRichLabel.h \
231 include/VBoxGlobalSettings.h \
232 include/VBoxUtils.h \
233 include/VBoxGlobal.h \
234 include/VBoxVMListBox.h \
235 include/VBoxMediaComboBox.h \
236 include/VBoxSelectorWnd.h \
237 include/VBoxConsoleWnd.h \
238 include/VBoxConsoleView.h \
239 include/VBoxProblemReporter.h \
240 include/VBoxDownloaderWgt.h \
241 include/VBoxNetworkFramework.h
242
243# Sources containing local definitions of classes that use the Q_OBJECT macro
244VirtualBox_QT_MOCSRCS = src/VBoxSelectorWnd.cpp
245ifeq ($(filter-out freebsd linux netbsd openbsd solaris,$(KBUILD_TARGET)),) # X11
246 VirtualBox_QT_MOCSRCS += src/VBoxGlobal.cpp
247endif
248ifdef VBOX_WITH_XPCOM
249 VirtualBox_QT_MOCSRCS += src/COMDefs.cpp
250endif
251
252# UI headers (ui.h) containing local definitions of classes that use the Q_OBJECT macro
253## @todo move up
254VirtualBox_QT_MOCSRCS += \
255 ui/VBoxVMSettingsDlg.ui.h \
256 ui/VBoxVMLogViewer.ui.h \
257 ui/VBoxSharedFoldersSettings.ui.h \
258 ui/VBoxHardDiskSettings.ui.h
259
260VirtualBox_SOURCES += \
261 src/main.cpp \
262 src/COMDefs.cpp \
263 src/QIWidgetValidator.cpp \
264 src/QIHotKeyEdit.cpp \
265 src/QIStateIndicator.cpp \
266 src/QIStatusBar.cpp \
267 src/QIMessageBox.cpp \
268 src/QIRichLabel.cpp \
269 src/VBoxDefs.cpp \
270 src/VBoxGlobalSettings.cpp \
271 src/VBoxGlobal.cpp \
272 src/VBoxMediaComboBox.cpp \
273 src/VBoxProblemReporter.cpp \
274 src/VBoxSelectorWnd.cpp \
275 src/VBoxConsoleView.cpp \
276 src/VBoxConsoleWnd.cpp \
277 src/VBoxDownloaderWgt.cpp \
278 src/VBoxVMListBox.cpp \
279 src/VBoxFrameBuffer.cpp \
280 src/HappyHttp.cpp \
281 src/VBoxNetworkFramework.cpp
282
283ifeq ($(filter-out freebsd linux netbsd openbsd solaris,$(KBUILD_TARGET)),) # X11
284 VirtualBox_SOURCES += \
285 src/linux/XKeyboard-new.cpp
286endif
287
288VirtualBox_SOURCES.win += \
289 src/VBoxFBDDRAW.cpp \
290 $(PATH_VirtualBox)/VirtualBox.rc
291
292VirtualBox_SOURCES.darwin = \
293 src/darwin/DarwinKeyboard.cpp \
294 src/darwin/DarwinCursor.cpp \
295 src/darwin/VBoxAquaStyle.cpp \
296 src/darwin/VBoxUtils-darwin.cpp \
297 src/VBoxFBQuartz2D.cpp
298
299ifdef VBOX_WITH_ICHAT_THEATER
300 VirtualBox_SOURCES.darwin += \
301 src/darwin/VBoxIChatTheaterWrapper.m
302endif
303
304ifndef VBOX_OSE
305 VirtualBox_SOURCES += src/VBoxAboutNonOSEDlg.cpp
306 VirtualBox_QT_MOCHDRS += include/VBoxAboutNonOSEDlg.h
307endif
308
309VirtualBox_DEFS = VBOX_GUI_SEPARATE_VM_PROCESS
310VirtualBox_DEFS.debug = VBOX_GUI_DEBUG VBOX_CHECK_STATE # QT_FATAL_ASSERT
311VirtualBox_DEFS.darwin = VBOX_GUI_USE_QUARTZ2D VBOX_GUI_USE_QIMAGE VBOX_WITHOUT_QHTTP
312VirtualBox_DEFS.freebsd = VBOX_GUI_USE_QIMAGE VBOX_GUI_USE_SDL
313VirtualBox_DEFS.linux = VBOX_GUI_USE_QIMAGE #VBOX_GUI_USE_SDL
314VirtualBox_DEFS.netbsd = VBOX_GUI_USE_QIMAGE VBOX_GUI_USE_SDL
315VirtualBox_DEFS.openbsd = VBOX_GUI_USE_QIMAGE VBOX_GUI_USE_SDL
316VirtualBox_DEFS.os2 = VBOX_GUI_USE_QIMAGE VBOX_GUI_USE_SDL QT_DLL
317VirtualBox_DEFS.solaris = VBOX_GUI_USE_QIMAGE #VBOX_GUI_USE_SDL
318VirtualBox_DEFS.win = VBOX_GUI_USE_QIMAGE UNICODE QT_DLL
319VirtualBox_DEFS.win.amd64 = VBOX_WITHOUT_QHTTP
320#ifndef VBOX_OSE
321 VirtualBox_DEFS.darwin += VBOX_WITH_HACKED_QT
322#endif
323ifdef VBOX_WITH_ICHAT_THEATER
324 VirtualBox_DEFS.darwin += VBOX_WITH_ICHAT_THEATER
325endif
326ifneq ($(KBUILD_TYPE),release)
327 # non-release builds has some extra features.
328 VirtualBox_DEFS.win += VBOX_GUI_USE_DDRAW
329 VirtualBox_DEFS.linux += VBOX_GUI_USE_QIMAGE
330endif
331ifdef VBOX_WITH_REGISTRATION
332 VirtualBox_DEFS += VBOX_WITH_REGISTRATION
333endif
334ifdef VBOX_WITH_REGISTRATION_REQUEST
335 VirtualBox_DEFS += VBOX_WITH_REGISTRATION_REQUEST
336endif
337ifdef VBOX_WITH_ALSA
338 VirtualBox_DEFS += VBOX_WITH_ALSA
339endif
340ifdef VBOX_WITH_PULSE
341 VirtualBox_DEFS += VBOX_WITH_PULSE
342endif
343ifdef VBOX_WITH_E1000
344 VirtualBox_DEFS += VBOX_WITH_E1000
345endif
346ifdef VBOX_OSE
347 VirtualBox_DEFS += VBOX_OSE
348endif
349ifdef VBOX_WITH_DEBUGGER_GUI
350 VirtualBox_DEFS += VBOX_WITH_DEBUGGER_GUI_MENU
351endif
352ifdef VBOX_WITH_NETFLT
353 VirtualBox_DEFS += VBOX_WITH_NETFLT
354endif
355
356VirtualBox_INCS = \
357 ./include \
358 $(PATH_VirtualBox)/include
359
360ifeq ($(KBUILD_TYPE),release)
361 VirtualBox_LDFLAGS.win += /SUBSYSTEM:windows
362else
363 VirtualBox_LDFLAGS.linux+= -rdynamic # for backtrace_symbols()
364 ifeq ($(USERNAME),dmik)
365 VirtualBox_LDFLAGS.win += /SUBSYSTEM:windows
366 else
367 VirtualBox_LDFLAGS.win += /SUBSYSTEM:console
368 endif
369endif
370VirtualBox_LDFLAGS.os2 = -Zlinker /PM:PM -Zno-fork
371VirtualBox_LDFLAGS.darwin = \
372 -framework IOKit -framework Carbon -framework QuickTime \
373 $(if $(VBOX_WITH_HARDENING),-install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VirtualBox3.dylib)
374ifdef VBOX_WITH_ICHAT_THEATER
375 VirtualBox_LDFLAGS.darwin += -framework Foundation -framework AppKit -framework InstantMessage -framework QuartzCore
376endif
377VirtualBox_LIBS.win = \
378 $(PATH_SDK_WINPSDK_LIB)/Htmlhelp.Lib \
379 $(PATH_SDK_DXSDK_LIB)/ddraw.lib \
380 $(PATH_SDK_DXSDK_LIB)/dxguid.lib
381VirtualBox_LIBS.os2 += $(PATH_DLL)/VBoxHlp$(VBOX_SUFF_DLL)
382ifeq ($(filter-out freebsd linux netbsd openbsd solaris,$(KBUILD_TARGET)),) # X11
383VirtualBox_LIBS += $(PATH_DLL)/VBoxKeyboard3$(VBOX_SUFF_DLL)
384endif
385
386
387ifdef VBOX_WITH_DEBUGGER_GUI ## @todo make this dynamically loadable and ship with release builds too.
388 ifeq ($(KBUILD_TARGET),win)
389 VirtualBox_LIBS += $(PATH_LIB)/VBoxDbg3$(VBOX_SUFF_LIB)
390 else
391 VirtualBox_LIBS += $(PATH_DLL)/VBoxDbg3$(VBOX_SUFF_DLL)
392 endif
393endif
394
395# Some flag hacks (should go away).
396ifneq ($(KBUILD_TARGET),win)
397 src/HappyHttp.cpp_CXXFLAGS += -fexceptions
398 src/VBoxDownloaderWgt.cpp_CXXFLAGS += -fexceptions
399 src/VBoxNetworkFramework.cpp_CXXFLAGS += -fexceptions
400endif
401src/HappyHttp.cpp_CXXFLAGS.linux += -O2
402
403## @todo how to detect what tool is used?
404## @todo GCC3 seems to lack -Wno-missing-base-class-initializer, so we use more generic -Wno-extra
405## @todo r=bird: see VirtualBox4.
406ifdef VBOX_WITH_XPCOM
407 src/COMDefs.cpp_CXXFLAGS = $(VBOX_GCC_Wno-extra)
408endif
409
410#
411# static images imported from VBoxUI.pro as VirtualBox_QT_IMAGES
412#
413VirtualBox_BLDDIRS += $(PATH_VirtualBox)/ui
414VirtualBox_SOURCES += $(PATH_VirtualBox)/ui/vbox_image_collection.cpp
415VirtualBox_CLEAN += $(PATH_VirtualBox)/ui/vbox_image_collection.cpp $(PATH_VirtualBox)/ui/vbox_image_collection.txt
416
417$$(PATH_VirtualBox)/ui/vbox_image_collection.txt: $(PATH_SUB_CURRENT)/VBoxUI.pro $(VirtualBox_QT_IMAGES) | $$(dir $$@)
418 $(RM) -f $@
419 $(APPEND) -v $@ VirtualBox_QT_IMAGES
420
421$$(PATH_VirtualBox)/ui/vbox_image_collection.cpp: $$(PATH_VirtualBox)/ui/vbox_image_collection.txt | $$(dir $$@)
422 $(call MSG_TOOL,uic,VirtualBox,$<,$@)
423 $(QUIET)$(VBOX_UIC) -o $@ -embed VBoxGUI -f $<
424
425
426#
427# Generate COM Wrappers
428#
429VirtualBox_BLDDIRS += $(PATH_VirtualBox)/include
430VirtualBox_CLEAN += $(PATH_VirtualBox)/include/COMWrappers.h
431VirtualBox_INTERMEDIATES += $(PATH_VirtualBox)/include/COMWrappers.h
432
433$$(PATH_VirtualBox)/include/COMWrappers.h: \
434 $(PATH_ROOT)/src/VBox/Main/idl/VirtualBox.xidl \
435 $(VBOX_PATH_VIRTUALBOX3_SRC)/include/COMWrappers.xsl \
436 | $$(dir $$@)
437 $(call MSG_GENERATE,VirtualBox,$<,$@)
438 $(QUIET)$(VBOX_XSLTPROC) -o $@ $(VBOX_PATH_VIRTUALBOX3_SRC)/include/COMWrappers.xsl $<
439
440# alias for generating the COM Wrappers file.
441testwrappers:: $(PATH_VirtualBox)/include/COMWrappers.h
442
443
444ifeq ($(KBUILD_TARGET),win)
445#
446# On Windows we'll have to generate/edit the resource file.
447# The IDI_ICON1 name is Qt specific.
448#
449$$(PATH_VirtualBox)/VirtualBox.rc: $(PATH_SUB_CURRENT)/Makefile.kmk $(VBOX_WINDOWS_ICON_FILE) | $$(dir $$@)
450 $(RM) -f $@
451 $(APPEND) $@ 'IDI_ICON1 ICON "$(subst /,\\,$(VBOX_WINDOWS_ICON_FILE))"'
452 $(CAT) $@
453
454VirtualBox_CLEAN.win += $(PATH_VirtualBox)/VirtualBox.rc
455endif # win
456
457
458ifeq ($(KBUILD_TARGET),darwin)
459#
460# On Mac OS X (darwin) we need to install icon resources and compulsory bundle contents.
461#
462INSTALLS.darwin += VirtualBox3.app
463VirtualBox3.app_INST = $(INST_VIRTUALBOX)Contents/
464VirtualBox3.app_MODE = 644
465VirtualBox3.app_SOURCES = \
466 src/darwin/PkgInfo \
467 $(PATH_VirtualBox3.app)/Info.plist \
468 $(VBOX_MACOSX_ICON_FILE)=>Resources/virtualbox.icns
469
470$$(PATH_VirtualBox3.app)/Info.plist: $(PATH_SUB_CURRENT)/src/darwin/Info.plist $(VBOX_VERSION_MK) | $$(dir $$@)
471 $(call MSG_GENERATE,VirtualBox3.app,$<,$@)
472 $(QUIET)$(RM) -f $@
473 $(QUIET)$(SED) \
474 -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \
475 -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \
476 -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \
477 -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \
478 $< > $@
479
480INSTALLS.darwin += VirtualBoxVM3.app
481VirtualBoxVM3.app_INST = $(VirtualBox3.app_INST)Resources/VirtualBoxVM.app/Contents/
482VirtualBoxVM3.app_MODE = 644
483VirtualBoxVM3.app_SOURCES = \
484 src/darwin/VM-PkgInfo=>PkgInfo \
485 $(PATH_VirtualBoxVM3.app)/VM-Info.plist=>Info.plist \
486 $(VBOX_MACOSX_ICON_FILE)=>Resources/virtualbox.icns
487VirtualBoxVM3.app_SYMLINKS = \
488 MacOS=>../../../MacOS/
489
490$$(PATH_VirtualBoxVM3.app)/VM-Info.plist: $(PATH_SUB_CURRENT)/src/darwin/VM-Info.plist $(VBOX_VERSION_MK) | $$(dir $$@)
491 $(call MSG_GENERATE,VirtualBoxVM3.app,$<,$@)
492 $(QUIET)$(RM) -f $@
493 $(QUIET)$(SED) \
494 -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \
495 -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \
496 -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \
497 -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \
498 --output $@ \
499 $<
500endif # darwin
501
502
503ifdef VBOX_WITH_TESTCASES
504 #
505 # Testcase for the darwin keyboard routines.
506 #
507 PROGRAMS.darwin += tstDarwinKeyboard
508 tstDarwinKeyboard_TEMPLATE = VBOXR3TSTEXE
509 tstDarwinKeyboard_NAME = tstDarwinKeyboard3
510 tstDarwinKeyboard_INCS = include
511 tstDarwinKeyboard_SOURCES = \
512 src/darwin/tstDarwinKeyboard.cpp \
513 src/darwin/DarwinKeyboard.cpp
514 tstDarwinKeyboard_LDFLAGS = -framework IOKit -framework Carbon
515 tstDarwinKeyboard_LIBS = \
516 $(LIB_RUNTIME)
517endif
518
519
520#
521# Restore / reset things to avoid possible conflicts with kBuild (VBoxUI.pro).
522#
523TEMPLATE := $(SAVED_TEMPLATE)
524LANGUAGE :=
525FORMS :=
526TRANSLATIONS :=
527IMAGES :=
528
529
530# Commit the magic.
531include $(KBUILD_PATH)/subfooter.kmk
532
533
534#
535# Update all known NLS translation (.ts) files in the nls/ subdirectory.
536#
537# NOTE: This target is intended to be run only by the GUI maintainer shortly
538# before a new product release. VirtualBox_xx_YY.ts is a template for new
539# languages and should never be actually translated or installed.
540#
541updatenls:: \
542 $(VirtualBox_SOURCES) \
543 $(wildcard include/*.h)
544 $(call MSG_L1,lupdate all languages (nls/*.ts))
545 $(QUIET)$(TOOL_QT3_LUPDATE) \
546 $^ \
547 -ts \
548 $(filter-out nls/qt_%.ts,$(VirtualBox_QT_TRANSLATIONS)) \
549 nls/VirtualBox_xx_YY.ts
550
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