VirtualBox

Changeset 12244 in vbox


Ignore:
Timestamp:
Sep 9, 2008 12:35:24 AM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
36242
Message:

Main/Makefiles: attempt at some cleanup

Location:
trunk/src/VBox/Main
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/Makefile.kmk

    r12170 r12244  
    2020#
    2121
    22 ifdef VBOX_SINGLE_MAKEFILE
    2322SUB_DEPTH = ../../..
    24 else
    25 DEPTH     = ../../..
    26 endif
    2723include $(KBUILD_PATH)/subheader.kmk
    2824
     25
     26#
    2927# Include sub-makefile(s).
     28#
    3029ifdef VBOX_WITH_WEBSERVICES
    3130 include $(PATH_SUB_CURRENT)/webservice/Makefile.kmk
     
    3332include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
    3433
     34
    3535#
    3636# Targets and globals (bit of a mess...)
    3737#
     38VBOX_PATH_MAIN_SRC := $(PATH_SUB_CURRENT)
     39
    3840ifndef VBOX_ONLY_SDK
    39  LIBRARIES       += VBoxCOM
    40  DLLS            += VBoxSettings VBoxC
    41  PROGRAMS        += VBoxSVC
    4241 VBOX_FN_MAKE_WIN_PATH = $(subst /,\\,$(1))
    4342else
    4443 # used by some rules
    4544 PATH_VBoxCOM    = $(PATH_TARGET)/VBoxCOM
    46  BLDDIRS        +=  $(PATH_VBoxCOM) $(PATH_BIN)/components
     45 BLDDIRS        += $(PATH_VBoxCOM) $(PATH_BIN)/components
    4746 # I'm Evil! Dr. Evil.
    4847 include $(KBUILD_PATH)/tools/VCC70.kmk
     
    5251endif #!VBOX_ONLY_SDK
    5352
    54 OTHERS           += $(VBOX_PATH_SDK)/bindings/VirtualBox.xidl
     53
     54# Construct VBOX_MAIN_DEFS
     55## @todo eliminate or expand VBOX_MAIN_DEFS.
    5556VBOX_MAIN_DEFS   =
    5657ifneq ($(KBUILD_TARGET),win)
    5758 ifndef VBOX_WITH_XPCOM
    5859  $(error "VBox: VBOX_WITH_XPCOM isn't defined")
    59  endif
    60  ifndef VBOX_ONLY_SDK
    61   DLLS           += VBoxSVCM
    6260 endif
    6361 ifneq ($(KBUILD_TARGET),os2)
     
    8280endif
    8381
    84 ## @todo eliminate or expand VBOX_MAIN_DEFS.
    85 
    86 #PROGRAMS        += tstCFGLdr
    87 
    8882VBOX_IDL_FILE.MSCOM    = $(VBOX_PATH_SDK)/bindings/mscom/idl/VirtualBox.idl
    8983VBOX_IDL_FILE.XPCOM    = $(VBOX_PATH_SDK)/bindings/xpcom/idl/VirtualBox_XPCOM.idl
     
    9286VBOX_IDL_HEADER.XPCOM  = $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
    9387
    94 ifdef VBOX_ONLY_SDK
    95  VBOX_NEED_MSCOM = 1
    96  VBOX_NEED_XPCOM = 1
    97 endif
    98 
    99 ifeq ($(KBUILD_TARGET),win)
    100  INSTALLS       += VBoxMain-com-inst
    101  VBOX_NEED_MSCOM = 1
    102 else
    103  VBOX_NEED_XPCOM = 1
    104 endif
    105 
    106 ifdef VBOX_NEED_MSCOM
     88# The MS COM specific stuff.
     89if defined(VBOX_ONLY_SDK) || "$(KBUILD_TARGET)" == "win"
    10790 OTHERS         += \
    10891        $(VBOX_IDL_FILE.MSCOM) \
     
    122105endif
    123106
    124 ifdef VBOX_NEED_XPCOM
     107# The XPCOM specific stuff.
     108if defined(VBOX_ONLY_SDK) || "$(KBUILD_TARGET)" != "win"
    125109 OTHERS         += $(VBOX_IDL_FILE.XPCOM) $(VBOX_IDL_TYPELIB.XPCOM) $(VBOX_IDL_HEADER.XPCOM)
    126110 OTHER_CLEAN    += \
     
    134118
    135119
    136 VBOX_PATH_MAIN_SRC := $(PATH_SUB_CURRENT)
    137 
    138120#
    139121# The Main API documentation
    140122#
     123VBOX_MAIN_DOC_DIR = $(VBOX_PATH_SDK)/docs
     124BLDDIRS += $(VBOX_MAIN_DOC_DIR)
     125
    141126docs: $(PATH_TARGET)/docs.Main
    142 
    143 DOCDIR = $(VBOX_PATH_SDK)/docs/
    144127
    145128$(PATH_TARGET)/docs.Main: \
     
    147130                $(VBOX_PATH_MAIN_SRC)/idl/doxygen.xsl \
    148131                $(VBOX_PATH_MAIN_SRC)/idl/VirtualBox.xidl \
    149                 | $(call DIRDEP, $(PATH_TARGET)) \
    150                   $(call DIRDEP, $(DOCDIR))
    151         $(RM) -f $(wildcard $(DOCDIR)/html/*)
     132                | $(PATH_TARGET)/ \
     133                $(VBOX_MAIN_DOC_DIR)/
     134        $(RM) -f $(wildcard $(VBOX_MAIN_DOC_DIR)/html/*) $(PATH_TARGET)/docs.Main
    152135        $(VBOX_XSLTPROC) -o $(PATH_TARGET)/VirtualBox.idl $(VBOX_PATH_MAIN_SRC)/idl/doxygen.xsl $(VBOX_PATH_MAIN_SRC)/idl/VirtualBox.xidl
    153         $(REDIRECT) -E 'DOCDIR=$(DOCDIR)' -E 'PATH_TARGET=$(PATH_TARGET)' -E 'PATH_CHM=$(subst /,\,$(DOCDIR)/VirtualBoxAPI.chm)' \
     136        $(REDIRECT) -E 'DOCDIR=$(VBOX_MAIN_DOC_DIR)' -E 'PATH_TARGET=$(PATH_TARGET)' -E 'PATH_CHM=$(subst /,\,$(VBOX_MAIN_DOC_DIR)/VirtualBoxAPI.chm)' \
    154137                -- doxygen $(VBOX_PATH_MAIN_SRC)/Doxyfile.Main
    155         -$(EXEC_X86_WIN32) $(VBOX_PATH_HTML_HELP_WORKSHOP)/hhc.exe $(subst /,\\,$(DOCDIR)/html/index.hhp)
     138        -$(EXEC_X86_WIN32) $(VBOX_PATH_HTML_HELP_WORKSHOP)/hhc.exe $(subst /,\\,$(VBOX_MAIN_DOC_DIR)/html/index.hhp)
    156139        $(APPEND) $(PATH_TARGET)/docs.Main
    157140
    158 $(call DIRDEP, $(DOCDIR)):
    159         $(MKDIR) -p $@
    160 
    161 $(VBOX_PATH_SDK)/bindings/VirtualBox.xidl: $(VBOX_PATH_MAIN_SRC)/idl/VirtualBox.xidl
    162         $(QUIET)$(MKDIR) -p $(VBOX_PATH_SDK)/bindings
    163         $(QUIET)$(CP) $< $@
     141
     142#
     143# Some SDK bit.
     144#
     145INSTALLS += VBox-main-xidl
     146VBox-main-xidl_INST = $(INST_SDK)bindings/
     147VBox-main-xidl_SOURCES = idl/VirtualBox.xidl
     148
     149
     150ifndef VBOX_ONLY_SDK # Note this goes on for *very* long
     151
     152#
     153# Generate SchemaDefs.h and SchemaDefs.cpp from XML Schema
     154# These two files are used by both VBoxC and VBoxSVC.
     155#
     156BLDDIRS += $(PATH_TARGET)/Main
     157VBOX_XML_SCHEMADEFS_H   = $(PATH_TARGET)/Main/SchemaDefs.h
     158VBOX_XML_SCHEMADEFS_CPP = $(PATH_TARGET)/Main/SchemaDefs.cpp
     159VBOX_XML_SCHEMADEFS_XSL = $(VBOX_PATH_MAIN_SRC)/xml/SchemaDefs.xsl
     160
     161OTHER_CLEAN += $(VBOX_XML_SCHEMADEFS_H) $(VBOX_XML_SCHEMADEFS_CPP)
     162
     163$(VBOX_XML_SCHEMADEFS_H): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON) | $$(dir $$@)
     164        $(call MSG_GENERATE,SchemaDefs,$<,$@)
     165        $(VBOX_XSLTPROC)  --stringparam mode declare -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET))
     166
     167$(VBOX_XML_SCHEMADEFS_CPP): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON)  | $$(dir $$@)
     168        $(call MSG_GENERATE,SchemaDefs,$<,$@)
     169        $(VBOX_XSLTPROC)  --stringparam mode define  -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET))
     170
     171testschemadefs: $(VBOX_XML_SCHEMADEFS_H) $(VBOX_XML_SCHEMADEFS_CPP)
     172
    164173
    165174#
    166175# VBoxSVC executable
    167176#
     177PROGRAMS += VBoxSVC
    168178VBoxSVC_TEMPLATE = VBOXMAINEXE
    169179VBoxSVC_DEFS = \
     
    186196
    187197ifdef VBOX_WITH_USB
    188 VBoxSVC_DEFS += \
    189         VBOX_WITH_USB \
    190         $(if $(VBOX_WITH_EHCI),VBOX_WITH_EHCI,) \
    191         $(if $(VBOX_WITH_NEW_USB_CODE_ON_DARWIN),VBOX_WITH_NEW_USB_CODE_ON_DARWIN,)
     198 VBoxSVC_DEFS += \
     199        VBOX_WITH_USB \
     200        $(if $(VBOX_WITH_EHCI),VBOX_WITH_EHCI,) \
     201        $(if $(VBOX_WITH_NEW_USB_CODE_ON_DARWIN),VBOX_WITH_NEW_USB_CODE_ON_DARWIN,)
    192202endif
    193203
     
    202212        include \
    203213        $(PATH_VBoxSVC) \
     214        $(dir $(VBOX_XML_SCHEMADEFS_H)) \
    204215        .
    205216VBoxSVC_INCS.win = \
     
    227238endif
    228239
    229 VBoxSVC_INTERMEDIATES = $(VBOX_MAIN_PREREQS)
     240VBoxSVC_INTERMEDIATES = \
     241        $(VBOX_MAIN_PREREQS) \
     242        $(VBOX_XML_SCHEMADEFS_H)
    230243
    231244VBoxSVC_SOURCES = \
     
    262275        BIOSSettingsImpl.cpp \
    263276        $(if $(VBOX_WITH_VRDP),VRDPServerImpl.cpp,) \
    264         $(if $(VBOX_WITH_XPCOM),xpcom/server.cpp,)
     277        $(if $(VBOX_WITH_XPCOM),xpcom/server.cpp,) \
     278        $(VBOX_XML_SCHEMADEFS_CPP)
    265279
    266280VBoxSVC_SOURCES.darwin = \
     
    279293
    280294ifdef VBOX_WITH_USB
    281 VBoxSVC_SOURCES  += \
    282         USBDeviceFilterImpl.cpp \
    283         USBProxyService.cpp \
    284         HostUSBDeviceImpl.cpp
    285 VBoxSVC_SOURCES.darwin  +=  darwin/USBProxyServiceDarwin.cpp
    286 VBoxSVC_SOURCES.linux   +=   linux/USBProxyServiceLinux.cpp
    287 VBoxSVC_SOURCES.os2     +=     os2/USBProxyServiceOs2.cpp
    288 VBoxSVC_SOURCES.solaris += solaris/USBProxyServiceSolaris.cpp
    289 VBoxSVC_SOURCES.win     +=     win/USBProxyServiceWindows.cpp
    290 endif
    291 
    292 VBoxSVC_LDFLAGS.darwin  = -framework IOKit -framework SystemConfiguration
     295 VBoxSVC_SOURCES  += \
     296        USBDeviceFilterImpl.cpp \
     297        USBProxyService.cpp \
     298        HostUSBDeviceImpl.cpp
     299 VBoxSVC_SOURCES.darwin  +=  darwin/USBProxyServiceDarwin.cpp
     300 VBoxSVC_SOURCES.linux   +=   linux/USBProxyServiceLinux.cpp
     301 VBoxSVC_SOURCES.os2     +=     os2/USBProxyServiceOs2.cpp
     302 VBoxSVC_SOURCES.solaris += solaris/USBProxyServiceSolaris.cpp
     303 VBoxSVC_SOURCES.win     +=     win/USBProxyServiceWindows.cpp
     304endif
     305
     306VBoxSVC_LDFLAGS.darwin    = -framework IOKit -framework SystemConfiguration
    293307ifeq ($(KBUILD_TYPE),debug)
    294 VBoxSVC_LDFLAGS.linux  += -rdynamic # for backtrace_symbols()
     308 VBoxSVC_LDFLAGS.linux   += -rdynamic # for backtrace_symbols()
    295309endif
    296310
    297311ifdef VBOX_WITH_RESOURCE_USAGE_API
    298 VBoxSVC_SOURCES  += \
    299         PerformanceImpl.cpp \
    300         Performance.cpp
    301 VBoxSVC_SOURCES.darwin  +=  darwin/PerformanceDarwin.cpp
    302 VBoxSVC_SOURCES.linux   +=   linux/PerformanceLinux.cpp
    303 VBoxSVC_SOURCES.os2     +=     os2/PerformanceOs2.cpp
    304 VBoxSVC_SOURCES.solaris += solaris/PerformanceSolaris.cpp
    305 VBoxSVC_SOURCES.win     +=     win/PerformanceWin.cpp
    306 VBoxSVC_LDFLAGS.darwin  += -lproc
    307 VBoxSVC_LDFLAGS.solaris += -lkstat
    308 VBoxSVC_LDFLAGS.win     += wbemuuid.lib powrprof.lib
    309 endif
    310 
    311 win/VBoxSVC.rc_INCS   = $(PATH_TARGET)
    312 win/VBoxSVC.rc_DEPS   = $(PATH_TARGET)/VBoxSVC.rgs $(PATH_TARGET)/VBoxSVC-icon.rc
    313 win/VBoxSVC.rc_CLEAN  = $(PATH_TARGET)/VBoxSVC-icon.rc
    314 
    315 $(PATH_TARGET)/VBoxSVC-icon.rc: $(MAKEFILE_CURRENT) $(VBOX_WINDOWS_ICON_FILE) | $$(call DIRDEP,$$(@D))
    316         $(RM) -f $@
    317         $(APPEND) $@ '1 ICON DISCARDABLE "$(subst /,\\,$(VBOX_WINDOWS_ICON_FILE))"'
     312 VBoxSVC_SOURCES += \
     313        PerformanceImpl.cpp \
     314        Performance.cpp
     315 VBoxSVC_SOURCES.darwin  +=  darwin/PerformanceDarwin.cpp
     316 VBoxSVC_SOURCES.linux   +=   linux/PerformanceLinux.cpp
     317 VBoxSVC_SOURCES.os2     +=     os2/PerformanceOs2.cpp
     318 VBoxSVC_SOURCES.solaris += solaris/PerformanceSolaris.cpp
     319 VBoxSVC_SOURCES.win     +=     win/PerformanceWin.cpp
     320 VBoxSVC_LDFLAGS.darwin  += -lproc
     321 VBoxSVC_LDFLAGS.solaris += -lkstat
     322 VBoxSVC_LDFLAGS.win     += wbemuuid.lib powrprof.lib
     323endif
     324
     325win/VBoxSVC.rc_INCS  = $(PATH_VBoxSVC)
     326win/VBoxSVC.rc_DEPS  = $(PATH_VBoxSVC)/VBoxSVC.rgs $(PATH_VBoxSVC)/VBoxSVC-icon.rc
     327win/VBoxSVC.rc_CLEAN = $(PATH_VBoxSVC)/VBoxSVC.rgs $(PATH_VBoxSVC)/VBoxSVC-icon.rc
     328
     329$$(PATH_VBoxSVC)/VBoxSVC-icon.rc: $(MAKEFILE_CURRENT) $(VBOX_WINDOWS_ICON_FILE) | $$(dir $$(@D))
     330        $(APPEND) -t $@ '1 ICON DISCARDABLE "$(subst /,\\,$(VBOX_WINDOWS_ICON_FILE))"'
     331
     332$$(PATH_VBoxSVC)/VBoxSVC.rgs: $(VBOX_PATH_MAIN_SRC)/win/VirtualBox_rgs.xsl $(VBOX_XIDL_FILE) | $$(dir $$(@D))
     333        $(VBOX_XSLTPROC) --stringparam Module VBoxSVC -o $@ $< $(VBOX_XIDL_FILE)
     334
     335#
     336# Embed XML Schema files to VBoxSVC
     337#
     338VBOX_XML_SCHEMA_COMMON        = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-common.xsd
     339VBOX_XML_SCHEMA.darwin        = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-macosx.xsd
     340VBOX_XML_SCHEMA.linux         = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-linux.xsd
     341VBOX_XML_SCHEMA.freebsd       = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-freebsd.xsd
     342VBOX_XML_SCHEMA.win           = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-windows.xsd
     343VBOX_XML_SCHEMA.os2           = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-os2.xsd
     344VBOX_XML_SCHEMA.solaris       = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-solaris.xsd
     345
     346VBOX_XML_CONVERTER_TEMPLATE   = $(VBOX_PATH_MAIN_SRC)/xml/SettingsConverter.xsl
     347
     348$$(PATH_VBoxSVC)/xml_VirtualBox_settings_xsd.h: $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_BIN2C)
     349        $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
     350        $(QUIET)$(VBOX_BIN2C) _xml_VirtualBox_settings_xsd $< $@
     351
     352$$(PATH_VBoxSVC)/xml_VirtualBox_settings_common_xsd.h: $(VBOX_XML_SCHEMA_COMMON) $(VBOX_BIN2C)
     353        $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
     354        $(QUIET)$(VBOX_BIN2C) _xml_VirtualBox_settings_common_xsd $< $@
     355
     356$$(PATH_VBoxSVC)/xml_SettingsConverter_xsl.h: $(VBOX_XML_CONVERTER_TEMPLATE) $(VBOX_BIN2C)
     357        $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
     358        $(QUIET)$(VBOX_BIN2C) _xml_SettingsConverter_xsl $< $@
     359
     360VirtualBoxImplExtra.cpp_DEPS  = \
     361        $(PATH_VBoxSVC)/xml_VirtualBox_settings_xsd.h \
     362        $(PATH_VBoxSVC)/xml_VirtualBox_settings_common_xsd.h \
     363        $(PATH_VBoxSVC)/xml_SettingsConverter_xsl.h
     364VBoxSVC_CLEAN                += $(VirtualBoxImplExtra.cpp_DEPS)
     365
    318366
    319367
    320368ifdef VBOX_WITH_XPCOM
    321369#
    322 # VBoxSVC wrapper module
    323 #
     370# VBoxSVCM - VBoxSVC wrapper module
     371#
     372DLLS += VBoxSVCM
    324373VBoxSVCM_TEMPLATE       = VBOXMAINCOMP
    325374VBoxSVCM_DEFS           = IN_RING3 $(VBOX_MAIN_DEFS)
     
    333382VBoxSVCM_LDFLAGS.darwin = \
    334383        -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/components/VBoxSVCM.dylib \
    335         -exported_symbols_list $(PATH_TARGET)/VBoxSVCM.def
    336 ifeq ($(KBUILD_TARGET),darwin)
    337 VBoxSVCM_ORDERDEPS     += $(PATH_TARGET)/VBoxSVCM.def
    338 VBoxSVCM_CLEAN         += $(PATH_TARGET)/VBoxSVCM.def
    339 $(PATH_TARGET)/VBoxSVCM.def:
     384        -exported_symbols_list $(PATH_VBoxSVCM)/VBoxSVCM.def
     385 ifeq ($(KBUILD_TARGET),darwin)
     386VBoxSVCM_ORDERDEPS     += $(PATH_VBoxSVCM)/VBoxSVCM.def
     387VBoxSVCM_CLEAN         += $(PATH_VBoxSVCM)/VBoxSVCM.def
     388$$(PATH_VBoxSVCM)/VBoxSVCM.def:
    340389        $(RM) -f $@
    341390        $(APPEND) $@ _NSGetModule
    342 endif
     391 endif
    343392VBoxSVCM_INTERMEDIATES += $(VBOX_IDL_HEADER.XPCOM)
    344393
     
    349398# VBoxC module
    350399#
     400DLLS += VBoxC
    351401VBoxC_TEMPLATE = VBOXMAINCOMP
    352402VBoxC_DEFS = \
     
    374424VBoxC_INCS          = \
    375425        include \
    376         $(PATH_VBoxC)
     426        $(PATH_VBoxC) \
     427        $(dir $(VBOX_XML_SCHEMADEFS_H))
    377428VBoxC_INCS.win      = \
    378429        $(PATH_VBoxCOM) \
     
    381432VBoxC_LDFLAGS.darwin = \
    382433        -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/components/VBoxC.dylib \
    383         -exported_symbols_list $(PATH_TARGET)/VBoxC.def
     434        -exported_symbols_list $(PATH_VBoxC)/VBoxC.def
    384435ifdef VBOX_USE_VCC80
    385436 VBoxC_LDFLAGS.win = /MANIFEST
     
    390441        $(LIB_REM)
    391442
    392 VBoxC_INTERMEDIATES = $(VBOX_MAIN_PREREQS)
     443VBoxC_INTERMEDIATES = \
     444        $(VBOX_MAIN_PREREQS) \
     445        $(VBOX_XML_SCHEMADEFS_H)
    393446
    394447VBoxC_SOURCES = \
     
    416469        VBoxDriversRegister.cpp \
    417470        AudioSnifferInterface.cpp \
    418         VMMDevInterface.cpp
     471        VMMDevInterface.cpp \
     472        $(VBOX_XML_SCHEMADEFS_CPP)
    419473VBoxC_SOURCES.win = \
    420474        win/dllmain.cpp \
    421475        win/VBoxC.def \
    422476        win/VBoxC.rc
     477
    423478ifdef VBOX_WITH_XPCOM
    424479VBoxC_SOURCES += \
     
    439494
    440495ifeq ($(KBUILD_TARGET),darwin)
    441 VBoxC_ORDERDEPS += $(PATH_TARGET)/VBoxC.def
    442 VBoxC_CLEAN += $(PATH_TARGET)/VBoxC.def
    443 $(PATH_TARGET)/VBoxC.def: $(MAKEFILE_CURRENT)
     496VBoxC_ORDERDEPS += $(PATH_VBoxC)/VBoxC.def
     497VBoxC_CLEAN     += $(PATH_VBoxC)/VBoxC.def
     498$$(PATH_VBoxC)/VBoxC.def: $(MAKEFILE_CURRENT)
    444499        $(RM) -f $@
    445500        $(APPEND) $@ _NSGetModule
     
    447502endif
    448503
    449 # Version.cpp uses VBOX_SVN_REV.
    450 Version.cpp_DEFS = VBOX_SVN_REV=$(VBOX_SVN_REV)
    451 Version.cpp_DEPS = $(VBOX_SVN_REV_KMK)
    452 
    453504ConsoleImpl.cpp_DEFS = VBOX_BUILD_TARGET=\"$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)\"
    454505
    455 win/VBoxC.rc_DEPS = $(PATH_TARGET)/VBoxC.rgs $(PATH_VBoxCOM)/VirtualBox.tlb
     506Version.cpp_DEFS  = VBOX_SVN_REV=$(VBOX_SVN_REV)
     507Version.cpp_DEPS  = $(VBOX_SVN_REV_KMK)
     508
     509win/VBoxC.rc_DEPS = $(PATH_VBoxC)/VBoxC.rgs $(PATH_VBoxCOM)/VirtualBox.tlb
     510VBoxC_CLEAN.win  += $(PATH_VBoxC)/VBoxC.rgs
     511
     512$$(PATH_VBoxC)/VBoxC.rgs: $(VBOX_PATH_MAIN_SRC)/win/VirtualBox_rgs.xsl $(VBOX_XIDL_FILE) | $$(PATH_VBoxC)/
     513        $(VBOX_XSLTPROC) --stringparam Module VBoxC -o $@ $< $(VBOX_XIDL_FILE)
    456514
    457515
     
    459517# VBoxSettings
    460518#
     519DLLS += VBoxSettings
    461520VBoxSettings_TEMPLATE   = VBOXMAINDLL
    462521VBoxSettings_NAME       = $(basename $(notdir $(LIB_SETTINGS)))
     
    464523VBoxSettings_DEFS       = IN_VBOXSETTINGS_R3
    465524VBoxSettings_INCS       = \
    466         include \
    467         $(PATH_TARGET)
     525        include
    468526VBoxSettings_SOURCES    = \
    469527        xml/Settings.cpp
     
    474532# VBoxCOM - COM Abstraction Layer library
    475533#
     534LIBRARIES += VBoxCOM
    476535VBoxCOM_TEMPLATE        = VBOXMAINLIB
    477536VBoxCOM_INTERMEDIATES   = $(VBOX_MAIN_PREREQS)
     
    487546 VBoxCOM_SOURCES       += \
    488547        $(PATH_VBoxCOM)/VirtualBox_i.c
    489 else
     548else # !win
    490549 VBoxCOM_INCS          += \
    491550        include
    492551 VBoxCOM_SOURCES       += \
    493552        xpcom/helpers.cpp
    494 endif
    495 
    496 
    497 #
    498 # Embed XML Schema files to VBoxSVC
    499 #
    500 VBOX_XML_SCHEMA_H               = $(PATH_TARGET)/xml_VirtualBox_settings_xsd.h
    501 VBOX_XML_SCHEMA_COMMON_H        = $(PATH_TARGET)/xml_VirtualBox_settings_common_xsd.h
    502 VBOX_XML_CONVERTER_TEMPLATE_H   = $(PATH_TARGET)/xml_SettingsConverter_xsl.h
    503 
    504 VBOX_XML_SCHEMA_COMMON  = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-common.xsd
    505 VBOX_XML_SCHEMA.darwin  = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-macosx.xsd
    506 VBOX_XML_SCHEMA.linux   = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-linux.xsd
    507 VBOX_XML_SCHEMA.freebsd = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-freebsd.xsd
    508 VBOX_XML_SCHEMA.win     = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-windows.xsd
    509 VBOX_XML_SCHEMA.os2     = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-os2.xsd
    510 VBOX_XML_SCHEMA.solaris = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-solaris.xsd
    511 
    512 VBOX_XML_CONVERTER_TEMPLATE = $(VBOX_PATH_MAIN_SRC)/xml/SettingsConverter.xsl
    513 
    514 VirtualBoxImplExtra.cpp_DEPS = \
    515         $(VBOX_XML_SCHEMA_H) $(VBOX_XML_SCHEMA_COMMON_H) $(VBOX_XML_CONVERTER_TEMPLATE_H)
    516 
    517 $(VBOX_XML_SCHEMA_H): $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_BIN2C)
    518         $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
    519         $(QUIET)$(VBOX_BIN2C) _xml_VirtualBox_settings_xsd $< $@
    520 
    521 $(VBOX_XML_SCHEMA_COMMON_H): $(VBOX_XML_SCHEMA_COMMON) $(VBOX_BIN2C)
    522         $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
    523         $(QUIET)$(VBOX_BIN2C) _xml_VirtualBox_settings_common_xsd $< $@
    524 
    525 $(VBOX_XML_CONVERTER_TEMPLATE_H): $(VBOX_XML_CONVERTER_TEMPLATE) $(VBOX_BIN2C)
    526         $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
    527         $(QUIET)$(VBOX_BIN2C) _xml_SettingsConverter_xsl $< $@
    528 
    529 OTHER_CLEAN += \
    530         $(VBOX_XML_SCHEMA_H) $(VBOX_XML_SCHEMA_COMMON_H) $(VBOX_XML_CONVERTER_TEMPLATE_H)
    531 
    532 
    533 #
    534 # Generate SchemaDefs.h and SchemaDefs.cpp from XML Schema
    535 #
    536 VBOX_XML_SCHEMADEFS_H   = $(PATH_TARGET)/SchemaDefs.h
    537 VBOX_XML_SCHEMADEFS_CPP = $(PATH_TARGET)/SchemaDefs.cpp
    538 VBOX_XML_SCHEMADEFS_XSL = $(VBOX_PATH_MAIN_SRC)/xml/SchemaDefs.xsl
    539 
    540 VBoxC_INTERMEDIATES += $(VBOX_XML_SCHEMADEFS_H)
    541 VBoxC_INCS += $(PATH_TARGET)
    542 VBoxC_SOURCES += $(VBOX_XML_SCHEMADEFS_CPP)
    543 
    544 VBoxSVC_INTERMEDIATES += $(VBOX_XML_SCHEMADEFS_H)
    545 VBoxSVC_INCS += $(PATH_TARGET)
    546 VBoxSVC_SOURCES += $(VBOX_XML_SCHEMADEFS_CPP)
    547 
    548 OTHER_CLEAN += $(VBOX_XML_SCHEMADEFS_H) $(VBOX_XML_SCHEMADEFS_CPP)
    549 
    550 $(VBOX_XML_SCHEMADEFS_H): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON)
    551         $(call MSG_TOOL,xsltproc,SchemaDefs,$<,$@)
    552         $(QUIET)$(VBOX_XSLTPROC)  --stringparam mode declare -o $@ $(filter-out $(VBOX_XML_SCHEMA_COMMON),$^)
    553 
    554 $(VBOX_XML_SCHEMADEFS_CPP): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON)
    555         $(call MSG_TOOL,xsltproc,SchemaDefs,$<,$@)
    556         $(QUIET)$(VBOX_XSLTPROC)  --stringparam mode define -o $@ $(filter-out $(VBOX_XML_SCHEMA_COMMON),$^)
     553endif # !win
     554
     555
     556endif # !VBOX_ONLY_SDK (the ifndef is far above)
    557557
    558558
     
    560560# Installs com related thing(s) to bin.
    561561#
     562INSTALLS.win += VBoxMain-com-inst
    562563VBoxMain-com-inst_INST = $(INST_BIN)
    563564VBoxMain-com-inst_SOURCES = \
     
    565566
    566567
    567 
    568 
    569568# generate rules
    570569include $(KBUILD_PATH)/subfooter.kmk
     570
     571
    571572
    572573#
     
    609610        $(QUIET)$(VBOX_XSLTPROC) -o $@ $^
    610611
    611 $(PATH_TARGET)/VBoxSVC.rgs: $(VBOX_PATH_MAIN_SRC)/win/VirtualBox_rgs.xsl $(VBOX_XIDL_FILE)
    612         $(VBOX_XSLTPROC) --stringparam Module VBoxSVC -o $@ $^
    613 
    614 $(PATH_TARGET)/VBoxC.rgs: $(VBOX_PATH_MAIN_SRC)/win/VirtualBox_rgs.xsl $(VBOX_XIDL_FILE)
    615         $(VBOX_XSLTPROC) --stringparam Module VBoxC -o $@ $^
     612
     613# Aliases for testing purposes.
     614ifdef VBOX_WITH_XPCOM
     615testidl:    $(VBOX_IDL_FILE.XPCOM) $(VBOX_IDL_TYPELIB.XPCOM)
     616testidlhdr: $(VBOX_IDL_HEADER.XPCOM)
     617else
     618testidl:    $(VBOX_IDL_FILE.MSCOM) $(PATH_VBoxCOM)/VirtualBox_i.c
     619endif
     620
    616621
    617622## @todo r=bird: last changes to this rule showed incorrect dependencies here as it broke testcase (see testboxwin2).
    618623# This is kind of obvious when looking at the rule, because it's (a) not specifing all it output
    619 # and (b) generating more stuff *after* the maintarget has been completed.
     624# and (b) generating more stuff *after* the main target has been completed.
    620625#
    621626# What needs to be done is to not depend on _i.c in the object subdir, but on all the final outputs.
     
    646651        include/HostDVDDriveImpl.h \
    647652        include/HostFloppyDriveImpl.h
     653VBoxSVC_VBOX_TRANSLATIONS = \
     654        nls/VBoxSVC_de.ts
    648655
    649656VBoxC_VBOX_HEADERS = \
    650657        include/ConsoleImpl.h
    651 
    652 VBoxSVC_VBOX_TRANSLATIONS = \
    653         nls/VBoxSVC_de.ts
    654 
    655658VBoxC_VBOX_TRANSLATIONS = \
    656659        nls/VBoxC_de.ts
     
    660663        $(VBOX_LUPDATE) $(VBoxC_SOURCES) $(VBoxC_VBOX_HEADERS) -ts $(VBoxC_VBOX_TRANSLATIONS)
    661664
    662 ifdef VBOX_WITH_XPCOM
    663 
    664 testidl: $(VBOX_IDL_FILE.XPCOM) $(VBOX_IDL_TYPELIB.XPCOM)
    665 testidlhdr: $(VBOX_IDL_HEADER.XPCOM)
    666 
    667 else
    668 
    669 testidl: $(VBOX_IDL_FILE.MSCOM) $(PATH_VBoxCOM)/VirtualBox_i.c
    670 
    671 endif
    672 
    673 testschemadefs: $(VBOX_XML_SCHEMADEFS_H) $(VBOX_XML_SCHEMADEFS_CPP)
    674 
    675 
    676 # Hot fix when dependencies goes bad again...
    677 #.NOTPARALLEL: $(TARGET_VBoxC) $(TARGET_VBoxSVC) $(TARGET_VBoxCOM) $(VBOX_IDL_HEADER) $(IDLFILE) $(PATH_VBoxCOM)/VirtualBox_i.c
    678 
  • trunk/src/VBox/Main/testcase/Makefile.kmk

    r12170 r12244  
    2020#
    2121
    22 ifdef VBOX_SINGLE_MAKEFILE
    2322SUB_DEPTH = ../../../..
    24 else
    25 DEPTH    ?= ../../../..
    26 SUB_DEPTH = ..
    27 endif
    2823include $(KBUILD_PATH)/subheader.kmk
    2924
    30 ifdef VBOX_ONLY_SDK
    31  VBOX_NEED_MSCOM_SAMPLE = 1
    32  VBOX_NEED_XPCOM_SAMPLE = 1
    33 else # !VBOX_ONLY_SDK
    34  ifeq ($(KBUILD_TARGET),win)
    35   VBOX_NEED_MSCOM_SAMPLE = 1
    36  else
    37   VBOX_NEED_XPCOM_SAMPLE = 1
    38  endif
    39  ifdef VBOX_WITH_TESTCASES
     25#
     26# Target and globals (small mess)
     27#
     28ifndef VBOX_ONLY_SDK
     29 if defined(VBOX_WITH_TESTCASES) || "$(USERNAME)" == "dmik"
    4030  PROGRAMS       += tstAPI
    41   PROGRAMS.linux += tstVBoxAPILinux
    42   # That testcase is actually not linux specific, it's generic XPCOM.
    43   PROGRAMS.solaris += tstVBoxAPILinux
    44   PROGRAMS.win   += tstVBoxAPIWin
     31  ifdef VBOX_WITH_XPCOM
     32   PROGRAMS      += tstVBoxAPILinux
     33  else
     34   PROGRAMS      += tstVBoxAPIWin
     35  endif
    4536  ifdef VBOX_WITH_RESOURCE_USAGE_API
    4637   PROGRAMS      += tstCollector
    4738  endif
    48  else ifeq ($(USERNAME),dmik)
    49   PROGRAMS       += tstAPI
    50   PROGRAMS.linux += tstVBoxAPILinux
    51   # That testcase is actually not linux specific, it's generic XPCOM.
    52   PROGRAMS.solaris += tstVBoxAPILinux
    53   PROGRAMS.win   += tstVBoxAPIWin
    5439 endif # !VBOX_WITH_TESTCASES
    5540endif # !VBOX_ONLY_SDK
    56 
    57 ifdef VBOX_NEED_MSCOM_SAMPLE
     41if defined(VBOX_ONLY_SDK) || !defined(VBOX_WITH_XPCOM)
    5842 INSTALLS += samplesMSCOM
    5943endif
    60 
    61 ifdef VBOX_NEED_XPCOM_SAMPLE
     44if defined(VBOX_ONLY_SDK) || defined(VBOX_WITH_XPCOM)
    6245 INSTALLS += samplesXPCOM
    6346endif
    6447
    65 # maybe, if will ship glue COM headers with SDK
    66 #INSTALLS += tstAPI
    6748
    6849#
     
    7758samplesXPCOM_SOURCES = tstVBoxAPILinux.cpp makefile.tstVBoxAPILinux=>Makefile
    7859
     60
    7961#
    8062# tstAPI
     
    8466tstAPI_SOURCES  = tstAPI.cpp
    8567ifeq ($(KBUILD_TARGET),win) ## @todo just add this to the template.
    86 tstAPI_DEPS     = $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h
     68tstAPI_DEPS = $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h
    8769else
    88 tstAPI_DEPS     = $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
     70tstAPI_DEPS = $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
    8971endif
    9072ifdef VBOX_WITH_RESOURCE_USAGE_API
     
    9981# It comes with a custom makefile which should be tested as well!
    10082#
    101 tstVBoxAPILinux_TEMPLATE = VBOXR3
     83tstVBoxAPILinux_TEMPLATE = VBOXR3EXE
    10284tstVBoxAPILinux_SOURCES  = tstVBoxAPILinux.cpp
    10385tstVBoxAPILinux_CXXFLAGS = -Wno-non-virtual-dtor -fshort-wchar
     
    11092        $(VBOX_PATH_SDK)/bindings/xpcom/include
    11193tstVBoxAPILinux_LIBPATH  = $(LIBPATH_XPCOM)
    112 tstVBoxAPILinux_LIBS     = $(LIB_XPCOM)
     94tstVBoxAPILinux_LIBS     = $(LIB_XPCOM) $(LIB_RUNTIME)
    11395tstVBoxAPILinux_DEPS     = \
    11496        $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
     97
    11598
    11699#
     
    123106tstVBoxAPIWin_DEPS     = \
    124107        $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h
     108
    125109
    126110#
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette