VirtualBox

Changeset 98394 in vbox for trunk/src/libs


Ignore:
Timestamp:
Feb 1, 2023 2:35:25 PM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
155638
Message:

libs/xpcom18a4: *.kmk automatic scm cleanups. bugref:10348

Location:
trunk/src/libs/xpcom18a4
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/libs/xpcom18a4/Config.kmk

    r98235 r98394  
    134134TEMPLATE_XPComDll_LDFLAGS             = $(TEMPLATE_VBoxR3DllNonPedantic_LDFLAGS)
    135135ifdef VBOX_WITH_RUNPATH
    136 TEMPLATE_XPComDll_LDFLAGS            += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)'
     136 TEMPLATE_XPComDll_LDFLAGS           += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)'
    137137else ifdef VBOX_WITH_RELATIVE_RUNPATH
    138 TEMPLATE_XPComDll_LDFLAGS            += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
     138 TEMPLATE_XPComDll_LDFLAGS           += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
    139139endif
    140140TEMPLATE_XPComDll_LDFLAGS.x86         = -m32
     
    158158endif
    159159TEMPLATE_XPComDll_INCS                = $(VBOX_PATH_XPCOM_SRC)/xpcom/build \
    160                                      $(VBOX_PATH_XPCOM_SRC)/xpcom/ds \
    161                                      $(VBOX_PATH_XPCOM_SRC)/xpcom/io \
    162                                      $(VBOX_PATH_XPCOM_SRC)/xpcom/base \
    163                                      $(VBOX_PATH_XPCOM_SRC)/xpcom/components \
    164                                      $(VBOX_PATH_XPCOM_SRC)/xpcom/threads \
    165                                      $(VBOX_PATH_XPCOM_SRC)/xpcom/proxy/src \
    166                                      $(VBOX_PATH_XPCOM_SRC)/xpcom/reflect/xptcall/src \
    167                                      $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/client/src \
    168                                      $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/shared/src \
    169                                      $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/extensions/lock/src \
    170                                      $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/extensions/transmngr/src \
    171                                      $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/extensions/dconnect/src \
    172                                      $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/extensions/transmngr/common \
    173                                      $(VBOX_PATH_SDK)/bindings/xpcom/include \
    174                                      $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
    175                                      $(VBOX_PATH_SDK)/bindings/xpcom/include/string \
    176                                      $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
    177                                      $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd \
    178                                      .
    179 ifn1of ($(VBOX_DEF_MACOSX_VERSION_MIN),10.4 10.5 10.6 10.7) # FlatCarbon is gone starting 10.8 (or Xcode 5.0).
     160        $(VBOX_PATH_XPCOM_SRC)/xpcom/ds \
     161        $(VBOX_PATH_XPCOM_SRC)/xpcom/io \
     162        $(VBOX_PATH_XPCOM_SRC)/xpcom/base \
     163        $(VBOX_PATH_XPCOM_SRC)/xpcom/components \
     164        $(VBOX_PATH_XPCOM_SRC)/xpcom/threads \
     165        $(VBOX_PATH_XPCOM_SRC)/xpcom/proxy/src \
     166        $(VBOX_PATH_XPCOM_SRC)/xpcom/reflect/xptcall/src \
     167        $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/client/src \
     168        $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/shared/src \
     169        $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/extensions/lock/src \
     170        $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/extensions/transmngr/src \
     171        $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/extensions/dconnect/src \
     172        $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/extensions/transmngr/common \
     173        $(VBOX_PATH_SDK)/bindings/xpcom/include \
     174        $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
     175        $(VBOX_PATH_SDK)/bindings/xpcom/include/string \
     176        $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
     177        $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd \
     178        .
     179ifn1of ($(VBOX_DEF_MACOSX_VERSION_MIN), 10.4 10.5 10.6 10.7) # FlatCarbon is gone starting 10.8 (or Xcode 5.0).
    180180 TEMPLATE_XPComDll_DEFS.darwin       += VBOX_WITH_NEWER_OSX_SDK
    181181 TEMPLATE_XPComDll_INCS.darwin        = \
     
    188188TEMPLATE_XPComDll_LIBS.solaris        = sendfile
    189189TEMPLATE_XPComDll_ORDERDEPS           = $(foreach hdrinst, $(filter %-HEADERS, $(INSTALLS)), $($(hdrinst)_1_TARGET)) \
    190                                      $(PATH_TARGET)/VBox-xpcom-idl-timestamp
     190        $(PATH_TARGET)/VBox-xpcom-idl-timestamp
    191191ifeq ($(KBUILD_TARGET),os2)
    192192 ifndef USE_OS2_TOOLKIT_HEADERS
     
    224224## @todo undo -fPIC.
    225225TEMPLATE_XPComExe_INCS             = ipc/ipcd/shared/src \
    226                                      $(VBOX_PATH_SDK)/bindings/xpcom/include \
    227                                      $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
    228                                      $(VBOX_PATH_SDK)/bindings/xpcom/include/string \
    229                                      $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
    230                                      $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd \
    231                                      .
     226        $(VBOX_PATH_SDK)/bindings/xpcom/include \
     227        $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
     228        $(VBOX_PATH_SDK)/bindings/xpcom/include/string \
     229        $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
     230        $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd \
     231        .
    232232TEMPLATE_XPComExe_LIBS             = \
    233233        $(VBox-xpcom-ipcshared_1_TARGET) \
  • trunk/src/libs/xpcom18a4/Makefile.kmk

    r98223 r98394  
    8989if !defined(VBOX_ONLY_SDK) && (!defined(VBOX_ONLY_EXTPACKS) || !defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS))
    9090
    91 VBOX_XPCOM_LIBRARIES := \
    92         VBox-xpcom-nspr \
    93         VBox-xpcom-typelib \
    94         VBox-xpcom-string \
    95         VBox-xpcom-base \
    96         VBox-xpcom-ds \
    97         VBox-xpcom-io \
    98         VBox-xpcom-components \
    99         VBox-xpcom-threads \
    100         VBox-xpcom-xptinfo \
    101         VBox-xpcom-xptcall \
    102         VBox-xpcom-proxy \
    103         VBox-xpcom-ipcshared \
    104         VBoxXPCOMGlue_s \
    105         $(if $(VBOX_WITH_XPCOM_GLUE_WHICH_IS_UNUSED),VBoxXPCOMGlue,)
    106 LIBRARIES += $(VBOX_XPCOM_LIBRARIES)
    107 
    108 VBOX_XPCOM_DLLS := \
    109         VBoxXPCOM \
    110         VBoxXPCOMIPCC
    111 DLLS += $(VBOX_XPCOM_DLLS)
     91 VBOX_XPCOM_LIBRARIES := \
     92        VBox-xpcom-nspr \
     93        VBox-xpcom-typelib \
     94        VBox-xpcom-string \
     95        VBox-xpcom-base \
     96        VBox-xpcom-ds \
     97        VBox-xpcom-io \
     98        VBox-xpcom-components \
     99        VBox-xpcom-threads \
     100        VBox-xpcom-xptinfo \
     101        VBox-xpcom-xptcall \
     102        VBox-xpcom-proxy \
     103        VBox-xpcom-ipcshared \
     104        VBoxXPCOMGlue_s \
     105        $(if $(VBOX_WITH_XPCOM_GLUE_WHICH_IS_UNUSED),VBoxXPCOMGlue,)
     106 LIBRARIES += $(VBOX_XPCOM_LIBRARIES)
     107
     108 VBOX_XPCOM_DLLS := \
     109        VBoxXPCOM \
     110        VBoxXPCOMIPCC
     111 DLLS += $(VBOX_XPCOM_DLLS)
    112112
    113113 ifdef VBOX_WITH_32_ON_64_MAIN_API
    114 LIBRARIES += $(addsuffix -x86,$(VBOX_XPCOM_LIBRARIES))
    115 DLLS      += $(addsuffix -x86,$(VBOX_XPCOM_DLLS))
     114  LIBRARIES += $(addsuffix -x86,$(VBOX_XPCOM_LIBRARIES))
     115  DLLS    += $(addsuffix -x86,$(VBOX_XPCOM_DLLS))
    116116 endif
    117117
    118118
    119119 ifdef VBOX_WITH_TESTCASES
    120 PROGRAMS += \
    121         tstnsIFileTest \
    122         tstTestArray \
    123         tstTestAutoLock \
    124         tstTestCOMPtr \
    125         tstTestCOMPtrEq \
    126         tstTestCRT \
    127         tstTestFactory \
    128         tstTestHashtables \
    129         tstTestID \
    130         tstTestObserverService \
    131         tstTestPipes \
    132         tstTestThreads \
    133         tstTestXPIDLString \
    134         tstTestXPTCInvoke \
    135         tstTestDeque \
    136         tstTestAutoPtr \
    137         tstTestMinStringAPI \
    138         tstTestStrings \
    139         tstPrimitiveTest \
    140 #       tstnsIFileEnumerator
    141 #       tstTestAtoms
    142 #       tstTestServMgr
    143 #       tstTestCallTemplates
    144 #       tstTestPermanentAtoms
    145 #       tstSimpleTypeLib
    146 #       tstXptDump
    147 #       tstXptLink
     120  PROGRAMS += \
     121        tstnsIFileTest \
     122        tstTestArray \
     123        tstTestAutoLock \
     124        tstTestCOMPtr \
     125        tstTestCOMPtrEq \
     126        tstTestCRT \
     127        tstTestFactory \
     128        tstTestHashtables \
     129        tstTestID \
     130        tstTestObserverService \
     131        tstTestPipes \
     132        tstTestThreads \
     133        tstTestXPIDLString \
     134        tstTestXPTCInvoke \
     135        tstTestDeque \
     136        tstTestAutoPtr \
     137        tstTestMinStringAPI \
     138        tstTestStrings \
     139        tstPrimitiveTest
     140  #     tstnsIFileEnumerator
     141  #     tstTestAtoms
     142  #     tstTestServMgr
     143  #     tstTestCallTemplates
     144  #     tstTestPermanentAtoms
     145  #     tstSimpleTypeLib
     146  #     tstXptDump
     147  #     tstXptLink
    148148 endif # VBOX_WITH_TESTCASES
    149 PROGRAMS += VBoxXPCOMIPCD
     149 PROGRAMS += VBoxXPCOMIPCD
    150150
    151151endif # !VBOX_ONLY_SDK && (!defined(VBOX_ONLY_EXTPACKS) || !defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS))
     
    212212        nsprpub/pr/include/prvrsion.h \
    213213        nsprpub/pr/include/prwin16.h \
    214         nsprpub/pr/include/md/_vbox.cfg=>prcpucfg.h \
    215 
     214        nsprpub/pr/include/md/_vbox.cfg=>prcpucfg.h
    216215NSPRPUB-MD-HEADERS_INST = $(INST_SDK)bindings/xpcom/include/nsprpub/md/
    217216NSPRPUB-MD-HEADERS_IFFLAGS = -m 644
     
    240239        nsprpub/pr/include/md/_os2.cfg \
    241240        nsprpub/pr/include/md/_solaris32.cfg \
    242         nsprpub/pr/include/md/_solaris64.cfg \
    243 
     241        nsprpub/pr/include/md/_solaris64.cfg
    244242NSPRPUB-OBS-HEADERS_INST = $(INST_SDK)bindings/xpcom/include/nsprpub/obsolete/
    245243NSPRPUB-OBS-HEADERS_IFFLAGS = -m 644
     
    459457 # glib and libIDL needed by XPCOM on OS/2.
    460458 ifeq ($(VBOX_PATH_GLIB),)
    461  VBOX_PATH_GLIB := $(lastword $(sort $(wildcard $(KBUILD_DEVTOOLS_TRG)/glibidl/*/glibidl/gcc335)))
     459  VBOX_PATH_GLIB := $(lastword $(sort $(wildcard $(KBUILD_DEVTOOLS_TRG)/glibidl/*/glibidl/gcc335)))
    462460 endif
    463461 VBOX_PATH_LIBIDL ?= $(VBOX_PATH_GLIB)
     
    469467 endif
    470468 xpidl_INCS = \
    471         $(VBOX_PATH_LIBIDL)/include \
    472         $(VBOX_PATH_GLIB)/include
     469        $(VBOX_PATH_LIBIDL)/include \
     470        $(VBOX_PATH_GLIB)/include
    473471 xpidl_LIBS = \
    474         $(VBOX_PATH_LIBIDL)/lib/libidl.lib \
    475         $(VBOX_PATH_LIBIDL)/lib/glib.lib
     472        $(VBOX_PATH_LIBIDL)/lib/libidl.lib \
     473        $(VBOX_PATH_LIBIDL)/lib/glib.lib
    476474 # install necessary DLLs to the same place where xpidl goes
    477475 INSTALLS += xpidl-DLLS
     
    487485 libIDL_config_libs   := $(shell $(VBOX_LIBIDL_CONFIG) --libs)
    488486 xpidl_CFLAGS = \
    489         $(libIDL_config_cflags)
     487        $(libIDL_config_cflags)
    490488 if1of ($(KBUILD_HOST), linux solaris)
    491489  xpidl_LDFLAGS = \
    492         $(filter-out -l%,$(libIDL_config_libs))
     490        $(filter-out -l%,$(libIDL_config_libs))
    493491  xpidl_LIBS.$(KBUILD_HOST) += \
    494         $(subst -l,,$(filter -l%,$(libIDL_config_libs)))
     492        $(subst -l,,$(filter -l%,$(libIDL_config_libs)))
    495493 else
    496494  xpidl_LDFLAGS = \
    497         $(libIDL_config_libs)
     495        $(libIDL_config_libs)
    498496 endif
    499497 xpidl_LDFLAGS.linux = \
    500         $(VBOX_LD_as_needed)
     498        $(VBOX_LD_as_needed)
    501499endif
    502500
     
    626624
    627625ifeq ($(filter-out darwin freebsd linux netbsd openbsd solaris,$(KBUILD_TARGET)),) # unixish
    628 VBox-xpcom-nspr_SOURCES += \
    629         nsprpub/pr/src/md/unix/unix.c \
    630         nsprpub/pr/src/md/unix/unix_errors.c \
    631         nsprpub/pr/src/md/unix/uxproces.c \
    632         nsprpub/pr/src/md/unix/uxrng.c \
    633         nsprpub/pr/src/md/unix/uxshm.c \
    634         nsprpub/pr/src/md/unix/uxwrap.c \
    635         nsprpub/pr/src/pthreads/ptio.c \
    636         nsprpub/pr/src/pthreads/ptsynch.c \
    637         nsprpub/pr/src/pthreads/ptthread.c \
    638         nsprpub/pr/src/pthreads/ptmisc.c
     626 VBox-xpcom-nspr_SOURCES += \
     627        nsprpub/pr/src/md/unix/unix.c \
     628        nsprpub/pr/src/md/unix/unix_errors.c \
     629        nsprpub/pr/src/md/unix/uxproces.c \
     630        nsprpub/pr/src/md/unix/uxrng.c \
     631        nsprpub/pr/src/md/unix/uxshm.c \
     632        nsprpub/pr/src/md/unix/uxwrap.c \
     633        nsprpub/pr/src/pthreads/ptio.c \
     634        nsprpub/pr/src/pthreads/ptsynch.c \
     635        nsprpub/pr/src/pthreads/ptthread.c \
     636        nsprpub/pr/src/pthreads/ptmisc.c
    639637endif
    640638
     
    826824        xpcom/MoreFiles/MoreFilesX.c
    827825if1of ($(KBUILD_TARGET) $(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), freebsd linux netbsd openbsd solaris darwin.amd64 darwin.arm64)
    828 VBox-xpcom-io_SOURCES += \
    829         xpcom/io/nsLocalFileUnix.cpp
     826 VBox-xpcom-io_SOURCES += \
     827        xpcom/io/nsLocalFileUnix.cpp
    830828endif
    831829VBox-xpcom-io_SOURCES.os2 = \
     
    885883VBox-xpcom-xptcall_SOURCES               = xpcom/reflect/xptcall/src/xptcall.cpp
    886884VBox-xpcom-xptcall_SOURCES.darwin.x86    = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_unixish_x86.cpp \
    887                                            xpcom/reflect/xptcall/src/md/unix/xptcstubs_unixish_x86.cpp
     885        xpcom/reflect/xptcall/src/md/unix/xptcstubs_unixish_x86.cpp
    888886VBox-xpcom-xptcall_SOURCES.freebsd.x86   = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_gcc_x86_unix.cpp \
    889                                            xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.cpp
     887        xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.cpp
    890888VBox-xpcom-xptcall_SOURCES.linux.x86     = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_gcc_x86_unix.cpp \
    891                                            xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.cpp
     889        xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.cpp
    892890VBox-xpcom-xptcall_SOURCES.os2           = xpcom/reflect/xptcall/src/md/os2/xptcinvoke_gcc_x86_os2.cpp \
    893                                            xpcom/reflect/xptcall/src/md/os2/xptcstubs_gcc_x86_os2.cpp
     891        xpcom/reflect/xptcall/src/md/os2/xptcstubs_gcc_x86_os2.cpp
    894892VBox-xpcom-xptcall_SOURCES.solaris.x86   = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_solaris.cpp \
    895                                            xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_solaris.cpp
     893        xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_solaris.cpp
    896894VBox-xpcom-xptcall_SOURCES.amd64         = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_amd64_vbox.asm
    897895VBox-xpcom-xptcall_SOURCES.arm64         = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm64_vbox.cpp \
    898                                            xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm64_vbox.cpp
     896        xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm64_vbox.cpp
    899897VBox-xpcom-xptcall_SOURCES.darwin.amd64  = xpcom/reflect/xptcall/src/md/unix/xptcstubs_amd64_darwin.cpp # Underscore prefix.
    900898VBox-xpcom-xptcall_SOURCES.freebsd.amd64 = xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp
    901899VBox-xpcom-xptcall_SOURCES.linux.amd64   = xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp
    902900ifndef VBOX_GCC_USING_SOLARIS_AS
    903 VBox-xpcom-xptcall_SOURCES.solaris.amd64 = xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp
     901 VBox-xpcom-xptcall_SOURCES.solaris.amd64 = xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp
    904902else
    905 VBox-xpcom-xptcall_SOURCES.solaris.amd64 = xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_solaris.cpp
     903 VBox-xpcom-xptcall_SOURCES.solaris.amd64 = xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_solaris.cpp
    906904endif
    907905
     
    919917VBox-xpcom-proxy_DEFS     = _IMPL_NS_COM EXPORT_XPTC_API EXPORT_XPTI_API
    920918VBox-xpcom-proxy_SOURCES  = \
    921     xpcom/proxy/src/nsProxyEvent.cpp \
    922     xpcom/proxy/src/nsProxyEventClass.cpp \
    923     xpcom/proxy/src/nsProxyEventObject.cpp \
    924     xpcom/proxy/src/nsProxyObjectManager.cpp \
    925     xpcom/proxy/src/nsProxyRelease.cpp
     919        xpcom/proxy/src/nsProxyEvent.cpp \
     920        xpcom/proxy/src/nsProxyEventClass.cpp \
     921        xpcom/proxy/src/nsProxyEventObject.cpp \
     922        xpcom/proxy/src/nsProxyObjectManager.cpp \
     923        xpcom/proxy/src/nsProxyRelease.cpp
    926924$(evalcall VBOX_XPCOM_X86,VBox-xpcom-proxy)
    927925
     
    980978 VBoxXPCOM_LNK_DEPS.linux  += $(XPCOM_C_NAMESPACE_MAP)
    981979 VBoxXPCOM_LDFLAGS.solaris  = -Wl,-M,$(XPCOM_C_NAMESPACE_MAP)
    982  VBoxXPCOM_LNK_DEPS.solaris+= $(XPCOM_C_NAMESPACE_MAP)
     980 VBoxXPCOM_LNK_DEPS.solaris += $(XPCOM_C_NAMESPACE_MAP)
    983981endif
    984982VBoxXPCOM_SOURCES = \
     
    10081006
    10091007ifeq ($(filter-out freebsd linux netbsd openbsd,$(KBUILD_TARGET)),) # gnu ld.
    1010 VBoxXPCOM_LDFLAGS = -Wl,--whole-archive \
    1011         $(VBox-xpcom-typelib_1_TARGET) \
    1012         $(VBox-xpcom-string_1_TARGET) \
    1013         $(VBox-xpcom-base_1_TARGET) \
    1014         $(VBox-xpcom-ds_1_TARGET) \
    1015         $(VBox-xpcom-io_1_TARGET) \
    1016         $(VBox-xpcom-components_1_TARGET) \
    1017         $(VBox-xpcom-threads_1_TARGET) \
    1018         $(VBox-xpcom-xptinfo_1_TARGET) \
    1019         $(VBox-xpcom-xptcall_1_TARGET) \
    1020         $(VBox-xpcom-proxy_1_TARGET) \
    1021         $(VBox-xpcom-nspr_1_TARGET) \
    1022         $(VBoxXPCOMGlue_s_1_TARGET) \
    1023         -Wl,--no-whole-archive
     1008 VBoxXPCOM_LDFLAGS = -Wl,--whole-archive \
     1009        $(VBox-xpcom-typelib_1_TARGET) \
     1010        $(VBox-xpcom-string_1_TARGET) \
     1011        $(VBox-xpcom-base_1_TARGET) \
     1012        $(VBox-xpcom-ds_1_TARGET) \
     1013        $(VBox-xpcom-io_1_TARGET) \
     1014        $(VBox-xpcom-components_1_TARGET) \
     1015        $(VBox-xpcom-threads_1_TARGET) \
     1016        $(VBox-xpcom-xptinfo_1_TARGET) \
     1017        $(VBox-xpcom-xptcall_1_TARGET) \
     1018        $(VBox-xpcom-proxy_1_TARGET) \
     1019        $(VBox-xpcom-nspr_1_TARGET) \
     1020        $(VBoxXPCOMGlue_s_1_TARGET) \
     1021        -Wl,--no-whole-archive
    10241022endif
    10251023
     
    10651063
    10661064ifeq ($(filter-out freebsd linux netbsd openbsd,$(KBUILD_TARGET)),) # gnu ld.
    1067 VBoxXPCOM-x86_LDFLAGS = -Wl,--whole-archive \
    1068         $(VBox-xpcom-typelib-x86_1_TARGET) \
    1069         $(VBox-xpcom-string-x86_1_TARGET) \
    1070         $(VBox-xpcom-base-x86_1_TARGET) \
    1071         $(VBox-xpcom-ds-x86_1_TARGET) \
    1072         $(VBox-xpcom-io-x86_1_TARGET) \
    1073         $(VBox-xpcom-components-x86_1_TARGET) \
    1074         $(VBox-xpcom-threads-x86_1_TARGET) \
    1075         $(VBox-xpcom-xptinfo-x86_1_TARGET) \
    1076         $(VBox-xpcom-xptcall-x86_1_TARGET) \
    1077         $(VBox-xpcom-proxy-x86_1_TARGET) \
    1078         $(VBox-xpcom-nspr-x86_1_TARGET) \
    1079         $(VBoxXPCOMGlue_s-x86_1_TARGET) \
    1080         -Wl,--no-whole-archive
     1065 VBoxXPCOM-x86_LDFLAGS = -Wl,--whole-archive \
     1066        $(VBox-xpcom-typelib-x86_1_TARGET) \
     1067        $(VBox-xpcom-string-x86_1_TARGET) \
     1068        $(VBox-xpcom-base-x86_1_TARGET) \
     1069        $(VBox-xpcom-ds-x86_1_TARGET) \
     1070        $(VBox-xpcom-io-x86_1_TARGET) \
     1071        $(VBox-xpcom-components-x86_1_TARGET) \
     1072        $(VBox-xpcom-threads-x86_1_TARGET) \
     1073        $(VBox-xpcom-xptinfo-x86_1_TARGET) \
     1074        $(VBox-xpcom-xptcall-x86_1_TARGET) \
     1075        $(VBox-xpcom-proxy-x86_1_TARGET) \
     1076        $(VBox-xpcom-nspr-x86_1_TARGET) \
     1077        $(VBoxXPCOMGlue_s-x86_1_TARGET) \
     1078        -Wl,--no-whole-archive
    10811079endif
    10821080
     
    11011099#
    11021100ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
    1103 $(call VBOX_GENERATE_IMPORT_TARGET_FN,VBoxXPCOMImp,VBoxXPCOM,VBoxXPCOM-mangled.def)
     1101 $(call VBOX_GENERATE_IMPORT_TARGET_FN,VBoxXPCOMImp,VBoxXPCOM,VBoxXPCOM-mangled.def)
    11041102else
    1105 $(call VBOX_GENERATE_IMPORT_TARGET_FN,VBoxXPCOMImp,VBoxXPCOM,VBoxXPCOM.def)
     1103 $(call VBOX_GENERATE_IMPORT_TARGET_FN,VBoxXPCOMImp,VBoxXPCOM,VBoxXPCOM.def)
    11061104endif
    11071105
     
    11111109#
    11121110ifdef VBOX_IPC_RELEASE_LOG
    1113 IPC_LOGGING = 1
     1111 IPC_LOGGING = 1
    11141112else ifneq ($(KBUILD_TYPE),release)
    1115 IPC_LOGGING = 1
     1113 IPC_LOGGING = 1
    11161114endif
    11171115
     
    11791177        ipc/ipcd/client/src/ipcService.cpp \
    11801178        ipc/ipcd/client/src/ipcModuleFactory.cpp \
    1181         ipc/ipcd/extensions/dconnect/src/ipcDConnectService.cpp\
    1182     \
     1179        ipc/ipcd/extensions/dconnect/src/ipcDConnectService.cpp \
     1180        \
    11831181        ipc/ipcd/util/src/ipcMessageReader.cpp \
    11841182        ipc/ipcd/util/src/ipcMessageWriter.cpp \
    1185     \
     1183        \
    11861184        ipc/ipcd/extensions/lock/src/ipcLockProtocol.cpp \
    11871185        ipc/ipcd/extensions/lock/src/ipcLockService.cpp \
    1188     \
     1186        \
    11891187        ipc/ipcd/extensions/transmngr/src/tmTransactionService.cpp \
    1190     \
     1188        \
    11911189        ipc/ipcd/extensions/transmngr/common/tmTransaction.cpp \
    11921190        ipc/ipcd/extensions/transmngr/common/tmVector.cpp
    11931191
    11941192ifeq ($(KBUILD_TARGET),win)
    1195 VBoxXPCOMIPCC_SOURCES += \
    1196         ipc/ipcd/client/src/ipcConnectionWin.cpp
     1193 VBoxXPCOMIPCC_SOURCES += \
     1194        ipc/ipcd/client/src/ipcConnectionWin.cpp
    11971195else
    1198 VBoxXPCOMIPCC_SOURCES += \
    1199         ipc/ipcd/client/src/ipcConnectionUnix.cpp
     1196 VBoxXPCOMIPCC_SOURCES += \
     1197        ipc/ipcd/client/src/ipcConnectionUnix.cpp
    12001198endif
    12011199VBoxXPCOMIPCC_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/components/VBoxXPCOMIPCC.dylib
     
    12201218ifeq ($(KBUILD_TARGET),win)
    12211219 VBoxXPCOMIPCD_SOURCES += \
    1222         ipc/ipcd/daemon/src/ipcdWin.cpp
     1220        ipc/ipcd/daemon/src/ipcdWin.cpp
    12231221else
    12241222 VBoxXPCOMIPCD_SOURCES += \
    1225         ipc/ipcd/daemon/src/ipcdUnix.cpp
     1223        ipc/ipcd/daemon/src/ipcdUnix.cpp
    12261224endif
    12271225
     
    12691267tstTestID_TEMPLATE             = XPComTstExe
    12701268tstTestID_SOURCES              = xpcom/tests/TestID.cpp
    1271 tstTestObserverService_TEMPLATE= XPComTstExe
     1269tstTestObserverService_TEMPLATE = XPComTstExe
    12721270tstTestObserverService_SOURCES = xpcom/tests/TestObserverService.cpp
    12731271tstTestPermanentAtoms_TEMPLATE = XPComTstExe
     
    14261424# @param idl     The filename with everything.
    14271425define def_IDL
    1428 $(VBOX_PATH_SDK)/bindings/xpcom/include/$(notdir $(subst .idl,.h,$(idl))) \
    1429 + $(PATH_TARGET)/VBox-xpcom-xpt-files/$(notdir $(subst .idl,.xpt,$(idl))): \
    1430                 $(VBOX_PATH_XPCOM_SRC)/$(idl) \
    1431                 | $$$$(xpidl_1_TARGET) \
    1432                 $(PATH_TARGET)/VBox-xpcom-xpt-files/
     1426 $(VBOX_PATH_SDK)/bindings/xpcom/include/$(notdir $(subst .idl,.h,$(idl))) \
     1427 + $(PATH_TARGET)/VBox-xpcom-xpt-files/$(notdir $(subst .idl,.xpt,$(idl))): \
     1428                $(VBOX_PATH_XPCOM_SRC)/$(idl) \
     1429                | $$$$(xpidl_1_TARGET) \
     1430                $(PATH_TARGET)/VBox-xpcom-xpt-files/
    14331431        $$(call MSG_TOOL,xpidl,XPCOM,$$<,$$@)
    14341432        $$(QUIET)$(MKDIR) -p $(VBOX_PATH_SDK)/bindings/xpcom/include $(VBOX_PATH_SDK)/bindings/xpcom/idl
  • trunk/src/libs/xpcom18a4/java/Makefile.kmk

    r98221 r98394  
    4040
    4141ifndef VBOX_ONLY_SDK
    42 #
    43 # VBoxJXpcom - Java<->XPCOM native library
    44 #
    45 DLLS += VBoxJXpcom
    46 
    47 VBoxJXpcom_TEMPLATE = XPComDll
    48 VBoxJXpcom_CXXFLAGS = -Wno-write-strings
    49 VBoxJXpcom_DEFS     = \
    50         EXPORT_XPTI_API \
    51         EXPORT_XPT_API \
    52         VBOX_WITH_XPCOM
    53 VBoxJXpcom_NAME     = libvboxjxpcom
    54 VBoxJXpcom_DLLSUFF.darwin = .jnilib
    55 VBoxJXpcom_INCS     = \
    56         src \
    57         $(VBOX_JAVA_INC) \
    58         $(VBOX_PATH_XPCOM_SRC)/xpcom/glue \
    59         $(VBOX_PATH_XPCOM_SRC)/xpcom/build \
    60         $(VBOX_JXPCOM_JDEST)
    61 VBoxJXpcom_SOURCES  = \
    62         src/nsAppFileLocProviderProxy.cpp \
    63         src/nsJavaWrapper.cpp \
    64         src/nsJavaXPCOMBindingUtils.cpp \
    65         src/nsJavaXPTCStub.cpp \
    66         src/nsJavaXPTCStubWeakRef.cpp \
    67         src/nsJavaXPCOMGlue.cpp \
    68         src/nsJavaInterfaces.cpp
    69 VBoxJXpcom_LIBS     = \
    70         $(PATH_STAGE_LIB)/VBoxCOM$(VBOX_SUFF_LIB) \
    71         $(PATH_STAGE_BIN)/VBoxXPCOM$(VBOX_SUFF_DLL)
    72 
    73 #VBoxJXpcom_ORDERDEPS = $(VBOX_JXPCOM_GENH)
    74 #VBoxJXpcom_CLEAN     = $(VBOX_JXPCOM_GENH)
    75 VBOX_JXPCOM_GENH = \
    76         $(VBOX_JXPCOM_JDEST)/org_mozilla_xpcom_internal_XPCOMImpl.h \
    77         $(VBOX_JXPCOM_JDEST)/org_mozilla_xpcom_internal_GREImpl.h \
    78         $(VBOX_JXPCOM_JDEST)/org_mozilla_xpcom_internal_MozillaImpl.h \
    79         $(VBOX_JXPCOM_JDEST)/org_mozilla_xpcom_internal_XPCOMJavaProxy.h \
    80         $(VBOX_JXPCOM_JDEST)/org_mozilla_xpcom_internal_JavaXPCOMMethods.h \
    81         $(VBOX_JXPCOM_JDEST)/org_mozilla_xpcom_ProfileLock.h
    82 
    83 
    84 else # VBOX_ONLY_SDK
    85 # Nothing yet
    86 endif # VBOX_ONLY_SDK
     42 #
     43 # VBoxJXpcom - Java<->XPCOM native library
     44 #
     45 DLLS += VBoxJXpcom
     46
     47 VBoxJXpcom_TEMPLATE = XPComDll
     48 VBoxJXpcom_CXXFLAGS = -Wno-write-strings
     49 VBoxJXpcom_DEFS    = \
     50        EXPORT_XPTI_API \
     51        EXPORT_XPT_API \
     52        VBOX_WITH_XPCOM
     53 VBoxJXpcom_NAME    = libvboxjxpcom
     54 VBoxJXpcom_DLLSUFF.darwin = .jnilib
     55 VBoxJXpcom_INCS    = \
     56        src \
     57        $(VBOX_JAVA_INC) \
     58        $(VBOX_PATH_XPCOM_SRC)/xpcom/glue \
     59        $(VBOX_PATH_XPCOM_SRC)/xpcom/build \
     60        $(VBOX_JXPCOM_JDEST)
     61 VBoxJXpcom_SOURCES = \
     62        src/nsAppFileLocProviderProxy.cpp \
     63        src/nsJavaWrapper.cpp \
     64        src/nsJavaXPCOMBindingUtils.cpp \
     65        src/nsJavaXPTCStub.cpp \
     66        src/nsJavaXPTCStubWeakRef.cpp \
     67        src/nsJavaXPCOMGlue.cpp \
     68        src/nsJavaInterfaces.cpp
     69 VBoxJXpcom_LIBS    = \
     70        $(PATH_STAGE_LIB)/VBoxCOM$(VBOX_SUFF_LIB) \
     71        $(PATH_STAGE_BIN)/VBoxXPCOM$(VBOX_SUFF_DLL)
     72
     73 #VBoxJXpcom_ORDERDEPS = $(VBOX_JXPCOM_GENH)
     74 #VBoxJXpcom_CLEAN     = $(VBOX_JXPCOM_GENH)
     75 VBOX_JXPCOM_GENH = \
     76        $(VBOX_JXPCOM_JDEST)/org_mozilla_xpcom_internal_XPCOMImpl.h \
     77        $(VBOX_JXPCOM_JDEST)/org_mozilla_xpcom_internal_GREImpl.h \
     78        $(VBOX_JXPCOM_JDEST)/org_mozilla_xpcom_internal_MozillaImpl.h \
     79        $(VBOX_JXPCOM_JDEST)/org_mozilla_xpcom_internal_XPCOMJavaProxy.h \
     80        $(VBOX_JXPCOM_JDEST)/org_mozilla_xpcom_internal_JavaXPCOMMethods.h \
     81        $(VBOX_JXPCOM_JDEST)/org_mozilla_xpcom_ProfileLock.h
     82
     83endif # !VBOX_ONLY_SDK
    8784
    8885#
     
    9491VBOX_JXPCOM_NSERROR = $(VBOX_JXPCOM_GEN)/java/XPCOMError.java
    9592ifndef VBOX_WITH_JAVA_SUPPORT_IN_XPIDL
    96 VBOX_JXPCOM_GEN     = $(VBOX_JXPCOM_TARGET)/jxpcomgen
     93 VBOX_JXPCOM_GEN    = $(VBOX_JXPCOM_TARGET)/jxpcomgen
    9794else
    98 VBOX_JXPCOM_GEN     = $(VBOX_JXPCOM_TARGET)/jxpcomgen-idl
     95 VBOX_JXPCOM_GEN    = $(VBOX_JXPCOM_TARGET)/jxpcomgen-idl
    9996endif
    10097
     
    106103        $(VBOX_JXPCOM_JAR) \
    107104        $(VBOX_JXPCOM_NSERROR) \
    108         $(VBOX_JXPCOM_GEN)/jxpcomgen.list  \
     105        $(VBOX_JXPCOM_GEN)/jxpcomgen.list \
    109106        $(VBOX_JXPCOM_GEN)/jxpcomglue.list \
    110107        $(wildcard \
    111                 $(VBOX_JXPCOM_GEN)/java/*.java \
    112                 $(VBOX_JXPCOM_GEN)/java/glue/*.java \
    113                 $(VBOX_JXPCOM_JDEST)/*.class \
    114                 $(VBOX_JXPCOM_JDEST)/*/*.class \
    115                 $(VBOX_JXPCOM_JDEST)/*/*/*.class \
    116                 $(VBOX_JXPCOM_JDEST)/*/*/*/*.class \
    117                 $(VBOX_JXPCOM_JDEST)/*/*/*/*/*.class \
    118                 $(VBOX_JXPCOM_JDEST)/*/*/*/*/*/*.class \
     108        $(VBOX_JXPCOM_GEN)/java/*.java \
     109        $(VBOX_JXPCOM_GEN)/java/glue/*.java \
     110        $(VBOX_JXPCOM_JDEST)/*.class \
     111        $(VBOX_JXPCOM_JDEST)/*/*.class \
     112        $(VBOX_JXPCOM_JDEST)/*/*/*.class \
     113        $(VBOX_JXPCOM_JDEST)/*/*/*/*.class \
     114        $(VBOX_JXPCOM_JDEST)/*/*/*/*/*.class \
     115        $(VBOX_JXPCOM_JDEST)/*/*/*/*/*/*.class \
    119116        )
    120117VBoxJXpcom-inst-jar_BLDDIRS += $(VBOX_JXPCOM_GEN)/java $(VBOX_JXPCOM_GEN)/java/glue $(VBOX_JXPCOM_GEN)/java/interfaces
     
    141138
    142139ifndef VBOX_WITH_JAVA_SUPPORT_IN_XPIDL
    143 #
    144 # Generate .java interface files from .xidl
    145 #
    146 
    147 $(VBOX_JXPCOM_GEN)/jxpcomgen.list: \
    148                $(VBOX_XIDL_FILE)  \
    149                $(VBOX_FILESPLIT)  \
    150                $(VBOX_JXPCOM_SRC)/tools/genjifaces.xsl \
    151                | $(VBOX_JXPCOM_GEN)/java/interfaces/
     140 #
     141 # Generate .java interface files from .xidl
     142 #
     143
     144 $(VBOX_JXPCOM_GEN)/jxpcomgen.list: \
     145                $(VBOX_XIDL_FILE) \
     146                $(VBOX_FILESPLIT) \
     147                $(VBOX_JXPCOM_SRC)/tools/genjifaces.xsl \
     148                | $(VBOX_JXPCOM_GEN)/java/interfaces/
    152149        $(call MSG_L1,Generating Java interface files)
    153150        $(QUIET)$(RM) -f $(wildcard $(VBOX_JXPCOM_GEN)/java/interfaces/*.java)
     
    158155
    159156else  # VBOX_WITH_JAVA_SUPPORT_IN_XPIDL
    160 #
    161 # Generate .java interface files from the XPCOM and VirtualBox IDL files.
    162 #
    163 # Note! There is not a 1:1 relationship between input and output files here, unfortunately.
    164 # Note! VBOX_JXPCOM_NSERROR shares the output directory with us.
    165 #
    166 $(VBOX_JXPCOM_GEN)/jxpcomgen.list: \
    167                 $(VBOX_PATH_SDK)/bindings/xpcom/idl/VirtualBox_XPCOM.idl \
    168                 $$(addprefix $(VBOX_PATH_XPCOM_SRC)/,$$(XPCOM_IDLFILES)) \
    169                 $(VBOX_XPIDL) \
    170                 | $(VBOX_JXPCOM_GEN)/java/
     157 #
     158 # Generate .java interface files from the XPCOM and VirtualBox IDL files.
     159 #
     160 # Note! There is not a 1:1 relationship between input and output files here, unfortunately.
     161 # Note! VBOX_JXPCOM_NSERROR shares the output directory with us.
     162 #
     163 $(VBOX_JXPCOM_GEN)/jxpcomgen.list: \
     164                $(VBOX_PATH_SDK)/bindings/xpcom/idl/VirtualBox_XPCOM.idl \
     165                $$(addprefix $(VBOX_PATH_XPCOM_SRC)/,$$(XPCOM_IDLFILES)) \
     166                $(VBOX_XPIDL) \
     167                | $(VBOX_JXPCOM_GEN)/java/
    171168        $(call MSG_L1,Generating XPCOM Java interface files from IDL)
    172169        $(QUIET)$(RM) -f $(filter-out %/XPCOMError.java, $(wildcard $(VBOX_JXPCOM_GEN)/java/*.java))
     
    176173endif # VBOX_WITH_JAVA_SUPPORT_IN_XPIDL
    177174
    178 $(VBOX_JXPCOM_GEN)/jxpcomglue.list:  \
    179                 $(VBOX_XIDL_FILE)    \
    180                 $(VBOX_GLUE_XSLT_DIR)/glue-java.xsl \
    181                 $(VBOX_FILESPLIT)    \
     175$(VBOX_JXPCOM_GEN)/jxpcomglue.list: \
     176                $(VBOX_XIDL_FILE) \
     177                $(VBOX_GLUE_XSLT_DIR)/glue-java.xsl \
     178                $(VBOX_FILESPLIT) \
    182179                | $(VBOX_JXPCOM_GEN)/java/glue/
    183180        $(call MSG_L1,Generating Java glue files from XIDL)
  • trunk/src/libs/xpcom18a4/python/Makefile.kmk

    r98225 r98394  
    8989ifndef VBOX_ONLY_SDK
    9090
    91 #
    92 # Base Python Client Module - the C++/XPCOM bits (not actually built).
    93 #
    94 VBoxPythonBase_TEMPLATE = XPComDll
    95 VBoxPythonBase_CXXFLAGS = -Wno-write-strings
    96 VBoxPythonBase_CXXFLAGS.solaris = $(VBOX_GCC_Wno-unknown-pragmas) # /usr/include/python[23].[75]*/ceval.h:67: warning: ignoring #pragma no_inline(PyEval_EvalFrameEx)
    97 VBoxPythonBase_DLLSUFF.darwin = .so
    98 VBoxPythonBase_DEFS     = \
    99         _IMPL_NS_COM \
    100         _IMPL_NS_BASE \
    101         EXPORT_XPTI_API \
    102         EXPORT_XPT_API \
    103         VBOX_PYXPCOM \
    104         VBOX_WITH_XPCOM \
    105         VBOX_PYXPCOM_VERSIONED
    106 #VBoxPythonBase_DEFS.debug = \
    107 #       VBOX_DEBUG_LIFETIMES
    108 VBoxPythonBase_INCS     = \
    109         src
    110 VBoxPythonBase_SOURCES  = \
    111         src/module/_xpcom.cpp \
    112         src/dllmain.cpp \
    113         src/ErrorUtils.cpp \
    114         src/PyGBase.cpp \
    115         src/PyGInputStream.cpp \
    116         src/PyGModule.cpp \
    117         src/PyGStub.cpp \
    118         src/PyGWeakReference.cpp \
    119         src/PyIClassInfo.cpp \
    120         src/PyIComponentManager.cpp \
    121         src/PyIComponentManagerObsolete.cpp \
    122         src/PyIEnumerator.cpp \
    123         src/PyIID.cpp \
    124         src/PyIInputStream.cpp \
    125         src/PyIInterfaceInfo.cpp \
    126         src/PyIInterfaceInfoManager.cpp \
    127         src/PyISimpleEnumerator.cpp \
    128         src/PyISupports.cpp \
    129         src/PyIVariant.cpp \
    130         src/Pyxpt_info.cpp \
    131         src/TypeObject.cpp \
    132         src/VariantUtils.cpp
    133 VBoxPythonBase_LIBS     = \
    134         $(PATH_STAGE_LIB)/VBoxCOM$(VBOX_SUFF_LIB) \
    135         $(PATH_STAGE_BIN)/VBoxXPCOM$(VBOX_SUFF_DLL)
    136 
    137 # pymalloc abi variant.
    138 VBoxPythonBase_m_EXTENDS    = VBoxPythonBase
    139 VBoxPythonBase_m_DEFS       = MODULE_NAME_SUFFIX=m $(VBoxPythonBase_DEFS)
    140 
    141 # 32-bit base.
    142 VBoxPythonBase_x86_TEMPLATE = XPComDll-x86
    143 VBoxPythonBase_x86_EXTENDS  = VBoxPythonBase
    144 VBoxPythonBase_x86_DEFS     = MODULE_NAME_SUFFIX=_x86 $(VBoxPythonBase_DEFS)
    145 VBoxPythonBase_x86_LIBS     = \
    146         $(PATH_STAGE_LIB)/VBoxCOM-x86$(VBOX_SUFF_LIB) \
    147         $(PATH_STAGE_BIN)/VBoxXPCOM-x86$(VBOX_SUFF_DLL)
    148 
    149 # 32-bit pymalloc abi variant.
    150 VBoxPythonBase_x86_m_EXTENDS    = VBoxPythonBase_x86
    151 VBoxPythonBase_x86_m_DEFS       = MODULE_NAME_SUFFIX=_x86m $(VBoxPythonBase_DEFS)
    152 
    153 
    154 ifdef VBOX_PYTHON26_INC
    155 #
    156 # Python 2.6 version
    157 #
    158 DLLS += VBoxPython2_6
    159 VBoxPython2_6_EXTENDS    = VBoxPythonBase
    160 VBoxPython2_6_EXTENDS_BY = appending
    161  ifdef KMK_WITH_VERSION_COMPARE
    162 VBoxPython2_6_TEMPLATE   = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.6",OSX106,)
    163  else
    164 VBoxPython2_6_TEMPLATE   = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.6",OSX106,)
    165  endif
    166 VBoxPython2_6_INCS       = $(VBOX_PYTHON26_INC)
    167 VBoxPython2_6_LIBS       = $(VBOX_PYTHON26_LIB)
    168 
    169  ifdef VBOX_WITH_32_ON_64_MAIN_API
    170   ifdef VBOX_PYTHON26_LIB_X86
    171 DLLS += VBoxPython2_6_x86
    172 VBoxPython2_6_x86_EXTENDS    = VBoxPythonBase_x86
    173 VBoxPython2_6_x86_EXTENDS_BY = appending
    174    ifdef KMK_WITH_VERSION_COMPARE
    175 VBoxPython2_6_x86_TEMPLATE   = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.6",OSX106,-x86)
     91 #
     92 # Base Python Client Module - the C++/XPCOM bits (not actually built).
     93 #
     94 VBoxPythonBase_TEMPLATE = XPComDll
     95 VBoxPythonBase_CXXFLAGS = -Wno-write-strings
     96 VBoxPythonBase_CXXFLAGS.solaris = $(VBOX_GCC_Wno-unknown-pragmas) # /usr/include/python[23].[75]*/ceval.h:67: warning: ignoring #pragma no_inline(PyEval_EvalFrameEx)
     97 VBoxPythonBase_DLLSUFF.darwin = .so
     98 VBoxPythonBase_DEFS    = \
     99        _IMPL_NS_COM \
     100        _IMPL_NS_BASE \
     101        EXPORT_XPTI_API \
     102        EXPORT_XPT_API \
     103        VBOX_PYXPCOM \
     104        VBOX_WITH_XPCOM \
     105        VBOX_PYXPCOM_VERSIONED
     106 #VBoxPythonBase_DEFS.debug = \
     107 #      VBOX_DEBUG_LIFETIMES
     108 VBoxPythonBase_INCS    = \
     109        src
     110 VBoxPythonBase_SOURCES = \
     111        src/module/_xpcom.cpp \
     112        src/dllmain.cpp \
     113        src/ErrorUtils.cpp \
     114        src/PyGBase.cpp \
     115        src/PyGInputStream.cpp \
     116        src/PyGModule.cpp \
     117        src/PyGStub.cpp \
     118        src/PyGWeakReference.cpp \
     119        src/PyIClassInfo.cpp \
     120        src/PyIComponentManager.cpp \
     121        src/PyIComponentManagerObsolete.cpp \
     122        src/PyIEnumerator.cpp \
     123        src/PyIID.cpp \
     124        src/PyIInputStream.cpp \
     125        src/PyIInterfaceInfo.cpp \
     126        src/PyIInterfaceInfoManager.cpp \
     127        src/PyISimpleEnumerator.cpp \
     128        src/PyISupports.cpp \
     129        src/PyIVariant.cpp \
     130        src/Pyxpt_info.cpp \
     131        src/TypeObject.cpp \
     132        src/VariantUtils.cpp
     133 VBoxPythonBase_LIBS    = \
     134        $(PATH_STAGE_LIB)/VBoxCOM$(VBOX_SUFF_LIB) \
     135        $(PATH_STAGE_BIN)/VBoxXPCOM$(VBOX_SUFF_DLL)
     136
     137 # pymalloc abi variant.
     138 VBoxPythonBase_m_EXTENDS   = VBoxPythonBase
     139 VBoxPythonBase_m_DEFS      = MODULE_NAME_SUFFIX=m $(VBoxPythonBase_DEFS)
     140
     141 # 32-bit base.
     142 VBoxPythonBase_x86_TEMPLATE = XPComDll-x86
     143 VBoxPythonBase_x86_EXTENDS = VBoxPythonBase
     144 VBoxPythonBase_x86_DEFS    = MODULE_NAME_SUFFIX=_x86 $(VBoxPythonBase_DEFS)
     145 VBoxPythonBase_x86_LIBS    = \
     146        $(PATH_STAGE_LIB)/VBoxCOM-x86$(VBOX_SUFF_LIB) \
     147        $(PATH_STAGE_BIN)/VBoxXPCOM-x86$(VBOX_SUFF_DLL)
     148
     149 # 32-bit pymalloc abi variant.
     150 VBoxPythonBase_x86_m_EXTENDS   = VBoxPythonBase_x86
     151 VBoxPythonBase_x86_m_DEFS      = MODULE_NAME_SUFFIX=_x86m $(VBoxPythonBase_DEFS)
     152
     153
     154 ifdef VBOX_PYTHON26_INC
     155  #
     156  # Python 2.6 version
     157  #
     158  DLLS += VBoxPython2_6
     159  VBoxPython2_6_EXTENDS  = VBoxPythonBase
     160  VBoxPython2_6_EXTENDS_BY = appending
     161  ifdef KMK_WITH_VERSION_COMPARE
     162   VBoxPython2_6_TEMPLATE = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.6",OSX106,)
     163  else
     164   VBoxPython2_6_TEMPLATE = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.6",OSX106,)
     165  endif
     166  VBoxPython2_6_INCS     = $(VBOX_PYTHON26_INC)
     167  VBoxPython2_6_LIBS     = $(VBOX_PYTHON26_LIB)
     168
     169  ifdef VBOX_WITH_32_ON_64_MAIN_API
     170   ifdef VBOX_PYTHON26_LIB_X86
     171    DLLS += VBoxPython2_6_x86
     172    VBoxPython2_6_x86_EXTENDS = VBoxPythonBase_x86
     173    VBoxPython2_6_x86_EXTENDS_BY = appending
     174    ifdef KMK_WITH_VERSION_COMPARE
     175     VBoxPython2_6_x86_TEMPLATE = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.6",OSX106,-x86)
     176    else
     177     VBoxPython2_6_x86_TEMPLATE = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.6",OSX106,-x86)
     178    endif
     179    VBoxPython2_6_x86_INCS   = $(VBOX_PYTHON26_INC)
     180    VBoxPython2_6_x86_LIBS   = $(VBOX_PYTHON26_LIB_X86)
     181   endif
     182  endif
     183 endif
     184
     185 ifdef VBOX_PYTHON27_INC
     186  #
     187  # Python 2.7 version
     188  #
     189  DLLS += VBoxPython2_7
     190  VBoxPython2_7_EXTENDS  = VBoxPythonBase
     191  VBoxPython2_7_EXTENDS_BY = appending
     192  ifdef KMK_WITH_VERSION_COMPARE
     193   VBoxPython2_7_TEMPLATE = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.7",OSX107,)
     194  else
     195   VBoxPython2_7_TEMPLATE = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.7" && "$(length-var VBOX_DEF_MACOSX_VERSION_MIN)" == "4",OSX107,)
     196  endif
     197  VBoxPython2_7_INCS     = $(VBOX_PYTHON27_INC)
     198  VBoxPython2_7_LIBS     = $(VBOX_PYTHON27_LIB)
     199
     200  ifdef VBOX_WITH_32_ON_64_MAIN_API
     201   ifdef VBOX_PYTHON27_LIB_X86
     202    DLLS += VBoxPython2_7_x86
     203    VBoxPython2_7_x86_EXTENDS = VBoxPythonBase_x86
     204    VBoxPython2_7_x86_EXTENDS_BY = appending
     205    ifdef KMK_WITH_VERSION_COMPARE
     206     VBoxPython2_7_x86_TEMPLATE = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.7",OSX107,-x86)
     207    else
     208     VBoxPython2_7_x86_TEMPLATE = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.7" && "$(length-var VBOX_DEF_MACOSX_VERSION_MIN)" == "4",OSX107,-x86)
     209    endif
     210    VBoxPython2_7_x86_INCS   = $(VBOX_PYTHON27_INC)
     211    VBoxPython2_7_x86_LIBS   = $(VBOX_PYTHON27_LIB_X86)
     212   endif
     213  endif
     214 endif
     215
     216 #
     217 # Unversioned Python 2.x.
     218 #
     219 if defined(VBOX_PYTHON27_INC) || defined(VBOX_PYTHON26_INC)
     220  DLLS += VBoxPython2
     221  VBoxPython2_EXTENDS  = VBoxPythonBase
     222  VBoxPython2_EXTENDS_BY = appending
     223  VBoxPython2_DEFS     = VBOX_PYXPCOM_MAJOR_VERSIONED
     224  ifdef KMK_WITH_VERSION_COMPARE
     225   VBoxPython2_TEMPLATE = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.7",OSX107,)
     226  else
     227   VBoxPython2_TEMPLATE = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.7" && "$(length-var VBOX_DEF_MACOSX_VERSION_MIN)" == "4",OSX107,)
     228  endif
     229  if defined(VBOX_PYTHON26_INC)
     230   VBoxPython2_INCS    = $(VBOX_PYTHON26_INC)
     231   ifn1of ($(KBUILD_TARGET), linux)
     232    VBoxPython2_LIBS   = $(VBOX_PYTHON26_LIB)
     233   endif
     234  else
     235   VBoxPython2_INCS    = $(VBOX_PYTHON27_INC)
     236   ifn1of ($(KBUILD_TARGET), linux)
     237    VBoxPython2_LIBS   = $(VBOX_PYTHON27_LIB)
     238   endif
     239  endif
     240 endif
     241
     242 if defined(VBOX_WITH_32_ON_64_MAIN_API) && (defined(VBOX_PYTHON27_LIB_X86) || defined(VBOX_PYTHON26_INC_X86))
     243  DLLS += VBoxPython2_x86
     244  VBoxPython2_x86_EXTENDS  = VBoxPythonBase_x86
     245  VBoxPython2_x86_EXTENDS_BY = appending
     246  VBoxPython2_x86_DEFS     = VBOX_PYXPCOM_MAJOR_VERSIONED $(VBoxPythonBase_x86_DEFS)
     247  ifdef KMK_WITH_VERSION_COMPARE
     248   VBoxPython2_x86_TEMPLATE = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.7",OSX107,-x86)
     249  else
     250   VBoxPython2_x86_TEMPLATE = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.7" && "$(length-var VBOX_DEF_MACOSX_VERSION_MIN)" == "4",OSX107,-x86)
     251  endif
     252  if defined(VBOX_PYTHON26LIB_X86)
     253   VBoxPython2_x86_INCS    = $(VBOX_PYTHON26_INC)
     254   ifn1of ($(KBUILD_TARGET), linux)
     255    VBoxPython2_x86_LIBS   = $(VBOX_PYTHON26_LIB_X86)
     256   endif
     257  else
     258   VBoxPython2_x86_INCS    = $(VBOX_PYTHON27_INC)
     259   ifn1of ($(KBUILD_TARGET), linux)
     260    VBoxPython2_x86_LIBS   = $(VBOX_PYTHON27_LIB_X86)
     261   endif
     262  endif
     263 endif
     264
     265
     266 ifdef VBOX_PYTHON31_INC
     267  #
     268  # Python 3.1 version
     269  #
     270  DLLS += VBoxPython3_1
     271  VBoxPython3_1_EXTENDS  = VBoxPythonBase
     272  VBoxPython3_1_EXTENDS_BY = appending
     273  VBoxPython3_1_INCS     = $(VBOX_PYTHON31_INC)
     274  VBoxPython3_1_LIBS     = $(VBOX_PYTHON31_LIB)
     275
     276  ifdef VBOX_WITH_32_ON_64_MAIN_API
     277   ifdef VBOX_PYTHON31_LIB_X86
     278    DLLS += VBoxPython3_1_x86
     279    VBoxPython3_1_x86_EXTENDS = VBoxPythonBase_x86
     280    VBoxPython3_1_x86_EXTENDS_BY = appending
     281    VBoxPython3_1_x86_INCS   = $(VBOX_PYTHON31_INC)
     282    VBoxPython3_1_x86_LIBS   = $(VBOX_PYTHON31_LIB_X86)
     283   endif
     284  endif
     285 endif
     286
     287 ifdef VBOX_PYTHON32_INC
     288  #
     289  # Python 3.2 version
     290  #
     291  DLLS += VBoxPython3_2
     292  VBoxPython3_2_EXTENDS  = VBoxPythonBase
     293  VBoxPython3_2_EXTENDS_BY = appending
     294  VBoxPython3_2_INCS     = $(VBOX_PYTHON32_INC)
     295  VBoxPython3_2_LIBS     = $(VBOX_PYTHON32_LIB)
     296
     297  ifdef VBOX_WITH_32_ON_64_MAIN_API
     298   ifdef VBOX_PYTHON32_LIB_X86
     299    DLLS += VBoxPython3_2_x86
     300    VBoxPython3_2_x86_EXTENDS = VBoxPythonBase_x86
     301    VBoxPython3_2_x86_EXTENDS_BY = appending
     302    VBoxPython3_2_x86_INCS   = $(VBOX_PYTHON32_INC)
     303    VBoxPython3_2_x86_LIBS   = $(VBOX_PYTHON32_LIB_X86)
     304   endif
     305  endif
     306 endif
     307
     308 ifdef VBOX_PYTHON32M_INC
     309  #
     310  # Python 3.2 version with pymalloc
     311  #
     312  DLLS += VBoxPython3_2m
     313  VBoxPython3_2m_EXTENDS  = VBoxPythonBase_m
     314  VBoxPython3_2m_EXTENDS_BY = appending
     315  VBoxPython3_2m_INCS     = $(VBOX_PYTHON32M_INC)
     316  VBoxPython3_2m_LIBS     = $(VBOX_PYTHON32M_LIB)
     317  VBoxPython3_2m_DEFS     = MODULE_NAME_SUFFIX
     318
     319  ifdef VBOX_WITH_32_ON_64_MAIN_API
     320   ifdef VBOX_PYTHON32M_LIB_X86
     321    DLLS += VBoxPython3_2m_x86
     322    VBoxPython3_2m_x86_EXTENDS = VBoxPythonBase_x86_m
     323    VBoxPython3_2m_x86_EXTENDS_BY = appending
     324    VBoxPython3_2m_x86_INCS   = $(VBOX_PYTHON32M_INC)
     325    VBoxPython3_2m_x86_LIBS   = $(VBOX_PYTHON32M_LIB_X86)
     326   endif
     327  endif
     328 endif
     329
     330 ifndef VBOX_WITH_ONLY_PYTHON_LIMITED_API
     331
     332  ifdef VBOX_PYTHON33_INC
     333   #
     334   # Python 3.3 version
     335   #
     336   DLLS += VBoxPython3_3
     337   VBoxPython3_3_EXTENDS = VBoxPythonBase
     338   VBoxPython3_3_EXTENDS_BY = appending
     339   VBoxPython3_3_INCS    = $(VBOX_PYTHON33_INC)
     340   VBoxPython3_3_LIBS    = $(VBOX_PYTHON33_LIB)
     341
     342   ifdef VBOX_WITH_32_ON_64_MAIN_API
     343    ifdef VBOX_PYTHON33_LIB_X86
     344     DLLS += VBoxPython3_3_x86
     345     VBoxPython3_3_x86_EXTENDS = VBoxPythonBase_x86
     346     VBoxPython3_3_x86_EXTENDS_BY = appending
     347     VBoxPython3_3_x86_INCS  = $(VBOX_PYTHON33_INC)
     348     VBoxPython3_3_x86_LIBS  = $(VBOX_PYTHON33_LIB_X86)
     349    endif
     350   endif
     351  endif
     352
     353  ifdef VBOX_PYTHON33M_INC
     354   #
     355   # Python 3.3 version with pymalloc
     356   #
     357   DLLS += VBoxPython3_3m
     358   VBoxPython3_3m_EXTENDS = VBoxPythonBase_m
     359   VBoxPython3_3m_EXTENDS_BY = appending
     360   VBoxPython3_3m_INCS    = $(VBOX_PYTHON33M_INC)
     361   VBoxPython3_3m_LIBS    = $(VBOX_PYTHON33M_LIB)
     362
     363   ifdef VBOX_WITH_32_ON_64_MAIN_API
     364    ifdef VBOX_PYTHON33M_LIB_X86
     365     DLLS += VBoxPython3_3m_x86
     366     VBoxPython3_3m_x86_EXTENDS = VBoxPythonBase_x86_m
     367     VBoxPython3_3m_x86_EXTENDS_BY = appending
     368     VBoxPython3_3m_x86_INCS  = $(VBOX_PYTHON33M_INC)
     369     VBoxPython3_3m_x86_LIBS  = $(VBOX_PYTHON33M_LIB_X86)
     370    endif
     371   endif
     372  endif
     373
     374  ifdef VBOX_PYTHON34_INC
     375   #
     376   # Python 3.4 version
     377   #
     378   DLLS += VBoxPython3_4
     379   VBoxPython3_4_EXTENDS = VBoxPythonBase
     380   VBoxPython3_4_EXTENDS_BY = appending
     381   VBoxPython3_4_INCS    = $(VBOX_PYTHON34_INC)
     382   VBoxPython3_4_LIBS    = $(VBOX_PYTHON34_LIB)
     383
     384   ifdef VBOX_WITH_32_ON_64_MAIN_API
     385    ifdef VBOX_PYTHON34_LIB_X86
     386     DLLS += VBoxPython3_4_x86
     387     VBoxPython3_4_x86_EXTENDS = VBoxPythonBase_x86
     388     VBoxPython3_4_x86_EXTENDS_BY = appending
     389     VBoxPython3_4_x86_INCS  = $(VBOX_PYTHON34_INC)
     390     VBoxPython3_4_x86_LIBS  = $(VBOX_PYTHON34_LIB_X86)
     391    endif
     392   endif
     393  endif
     394
     395  ifdef VBOX_PYTHON34M_INC
     396   #
     397   # Python 3.4 version with pymalloc
     398   #
     399   DLLS += VBoxPython3_4m
     400   VBoxPython3_4m_EXTENDS = VBoxPythonBase_m
     401   VBoxPython3_4m_EXTENDS_BY = appending
     402   VBoxPython3_4m_INCS    = $(VBOX_PYTHON34M_INC)
     403   VBoxPython3_4m_LIBS    = $(VBOX_PYTHON34M_LIB)
     404
     405   ifdef VBOX_WITH_32_ON_64_MAIN_API
     406    ifdef VBOX_PYTHON34M_LIB_X86
     407     DLLS += VBoxPython3_4m_x86
     408     VBoxPython3_4m_x86_EXTENDS = VBoxPythonBase_x86_m
     409     VBoxPython3_4m_x86_EXTENDS_BY = appending
     410     VBoxPython3_4m_x86_INCS  = $(VBOX_PYTHON34M_INC)
     411     VBoxPython3_4m_x86_LIBS  = $(VBOX_PYTHON34M_LIB_X86)
     412    endif
     413   endif
     414  endif
     415
     416  ifdef VBOX_PYTHON35_INC
     417   #
     418   # Python 3.5 version
     419   #
     420   DLLS += VBoxPython3_5
     421   VBoxPython3_5_EXTENDS = VBoxPythonBase
     422   VBoxPython3_5_EXTENDS_BY = appending
     423   VBoxPython3_5_INCS    = $(VBOX_PYTHON35_INC)
     424   VBoxPython3_5_LIBS    = $(VBOX_PYTHON35_LIB)
     425
     426   ifdef VBOX_WITH_32_ON_64_MAIN_API
     427    ifdef VBOX_PYTHON35_LIB_X86
     428     DLLS += VBoxPython3_5_x86
     429     VBoxPython3_5_x86_EXTENDS = VBoxPythonBase_x86
     430     VBoxPython3_5_x86_EXTENDS_BY = appending
     431     VBoxPython3_5_x86_INCS  = $(VBOX_PYTHON35_INC)
     432     VBoxPython3_5_x86_LIBS  = $(VBOX_PYTHON35_LIB_X86)
     433    endif
     434   endif
     435  endif
     436
     437  ifdef VBOX_PYTHON35M_INC
     438   #
     439   # Python 3.5 version with pymalloc
     440   #
     441   DLLS += VBoxPython3_5m
     442   VBoxPython3_5m_EXTENDS = VBoxPythonBase_m
     443   VBoxPython3_5m_EXTENDS_BY = appending
     444   VBoxPython3_5m_INCS    = $(VBOX_PYTHON35M_INC)
     445   VBoxPython3_5m_LIBS    = $(VBOX_PYTHON35M_LIB)
     446
     447   ifdef VBOX_WITH_32_ON_64_MAIN_API
     448    ifdef VBOX_PYTHON35M_LIB_X86
     449     DLLS += VBoxPython3_5m_x86
     450     VBoxPython3_5m_x86_EXTENDS = VBoxPythonBase_x86_m
     451     VBoxPython3_5m_x86_EXTENDS_BY = appending
     452     VBoxPython3_5m_x86_INCS  = $(VBOX_PYTHON35M_INC)
     453     VBoxPython3_5m_x86_LIBS  = $(VBOX_PYTHON35M_LIB_X86)
     454    endif
     455   endif
     456  endif
     457
     458  ifdef VBOX_PYTHON36_INC
     459   #
     460   # Python 3.6 version
     461   #
     462   DLLS += VBoxPython3_6
     463   VBoxPython3_6_EXTENDS = VBoxPythonBase
     464   VBoxPython3_6_EXTENDS_BY = appending
     465   VBoxPython3_6_INCS    = $(VBOX_PYTHON36_INC)
     466   VBoxPython3_6_LIBS    = $(VBOX_PYTHON36_LIB)
     467
     468   ifdef VBOX_WITH_32_ON_64_MAIN_API
     469    ifdef VBOX_PYTHON36_LIB_X86
     470     DLLS += VBoxPython3_6_x86
     471     VBoxPython3_6_x86_EXTENDS = VBoxPythonBase_x86
     472     VBoxPython3_6_x86_EXTENDS_BY = appending
     473     VBoxPython3_6_x86_INCS  = $(VBOX_PYTHON36_INC)
     474     VBoxPython3_6_x86_LIBS  = $(VBOX_PYTHON36_LIB_X86)
     475    endif
     476   endif
     477  endif
     478
     479  ifdef VBOX_PYTHON36M_INC
     480   #
     481   # Python 3.6 version with pymalloc
     482   #
     483   DLLS += VBoxPython3_6m
     484   VBoxPython3_6m_EXTENDS = VBoxPythonBase_m
     485   VBoxPython3_6m_EXTENDS_BY = appending
     486   VBoxPython3_6m_INCS    = $(VBOX_PYTHON36M_INC)
     487   VBoxPython3_6m_LIBS    = $(VBOX_PYTHON36M_LIB)
     488
     489   ifdef VBOX_WITH_32_ON_64_MAIN_API
     490    ifdef VBOX_PYTHON36M_LIB_X86
     491     DLLS += VBoxPython3_6m_x86
     492     VBoxPython3_6m_x86_EXTENDS = VBoxPythonBase_x86_m
     493     VBoxPython3_6m_x86_EXTENDS_BY = appending
     494     VBoxPython3_6m_x86_INCS  = $(VBOX_PYTHON36M_INC)
     495     VBoxPython3_6m_x86_LIBS  = $(VBOX_PYTHON36M_LIB_X86)
     496    endif
     497   endif
     498  endif
     499
     500  ifdef VBOX_PYTHON37_INC
     501   #
     502   # Python 3.7 version
     503   #
     504   DLLS += VBoxPython3_7
     505   VBoxPython3_7_EXTENDS = VBoxPythonBase
     506   VBoxPython3_7_EXTENDS_BY = appending
     507   VBoxPython3_7_INCS    = $(VBOX_PYTHON37_INC)
     508   VBoxPython3_7_LIBS    = $(VBOX_PYTHON37_LIB)
     509
     510   ifdef VBOX_WITH_32_ON_64_MAIN_API
     511    ifdef VBOX_PYTHON37_LIB_X86
     512     DLLS += VBoxPython3_7_x86
     513     VBoxPython3_7_x86_EXTENDS = VBoxPythonBase_x86
     514     VBoxPython3_7_x86_EXTENDS_BY = appending
     515     VBoxPython3_7_x86_INCS  = $(VBOX_PYTHON37_INC)
     516     VBoxPython3_7_x86_LIBS  = $(VBOX_PYTHON37_LIB_X86)
     517    endif
     518   endif
     519  endif
     520
     521  ifdef VBOX_PYTHON37M_INC
     522   #
     523   # Python 3.7 version with pymalloc
     524   #
     525   DLLS += VBoxPython3_7m
     526   VBoxPython3_7m_EXTENDS = VBoxPythonBase_m
     527   VBoxPython3_7m_EXTENDS_BY = appending
     528   VBoxPython3_7m_INCS    = $(VBOX_PYTHON37M_INC)
     529   VBoxPython3_7m_LIBS    = $(VBOX_PYTHON37M_LIB)
     530
     531   ifdef VBOX_WITH_32_ON_64_MAIN_API
     532    ifdef VBOX_PYTHON37M_LIB_X86
     533     DLLS += VBoxPython3_7m_x86
     534     VBoxPython3_7m_x86_EXTENDS = VBoxPythonBase_x86_m
     535     VBoxPython3_7m_x86_EXTENDS_BY = appending
     536     VBoxPython3_7m_x86_INCS  = $(VBOX_PYTHON37M_INC)
     537     VBoxPython3_7m_x86_LIBS  = $(VBOX_PYTHON37M_LIB_X86)
     538    endif
     539   endif
     540  endif
     541
     542  ifdef VBOX_PYTHON38_INC
     543   #
     544   # Python 3.8 version
     545   #
     546   DLLS += VBoxPython3_8
     547   VBoxPython3_8_EXTENDS = VBoxPythonBase
     548   VBoxPython3_8_EXTENDS_BY = appending
     549   VBoxPython3_8_INCS    = $(VBOX_PYTHON38_INC)
     550   VBoxPython3_8_LIBS    = $(VBOX_PYTHON38_LIB)
     551
     552   ifdef VBOX_WITH_32_ON_64_MAIN_API
     553    ifdef VBOX_PYTHON38_LIB_X86
     554     DLLS += VBoxPython3_8_x86
     555     VBoxPython3_8_x86_EXTENDS = VBoxPythonBase_x86
     556     VBoxPython3_8_x86_EXTENDS_BY = appending
     557     VBoxPython3_8_x86_INCS  = $(VBOX_PYTHON38_INC)
     558     VBoxPython3_8_x86_LIBS  = $(VBOX_PYTHON38_LIB_X86)
     559    endif
     560   endif
     561  endif
     562
     563  ifdef VBOX_PYTHON38M_INC
     564   #
     565   # Python 3.8 version with pymalloc
     566   #
     567   DLLS += VBoxPython3_8m
     568   VBoxPython3_8m_EXTENDS = VBoxPythonBase_m
     569   VBoxPython3_8m_EXTENDS_BY = appending
     570   VBoxPython3_8m_INCS    = $(VBOX_PYTHON38M_INC)
     571   VBoxPython3_8m_LIBS    = $(VBOX_PYTHON38M_LIB)
     572
     573   ifdef VBOX_WITH_32_ON_64_MAIN_API
     574    ifdef VBOX_PYTHON38M_LIB_X86
     575     DLLS += VBoxPython3_8m_x86
     576     VBoxPython3_8m_x86_EXTENDS = VBoxPythonBase_x86_m
     577     VBoxPython3_8m_x86_EXTENDS_BY = appending
     578     VBoxPython3_8m_x86_INCS  = $(VBOX_PYTHON38M_INC)
     579     VBoxPython3_8m_x86_LIBS  = $(VBOX_PYTHON38M_LIB_X86)
     580    endif
     581   endif
     582  endif
     583
     584  ifdef VBOX_PYTHON39_INC
     585   #
     586   # Python 3.9 version
     587   #
     588   DLLS += VBoxPython3_9
     589   VBoxPython3_9_EXTENDS = VBoxPythonBase
     590   VBoxPython3_9_EXTENDS_BY = appending
     591   VBoxPython3_9_INCS    = $(VBOX_PYTHON39_INC)
     592   VBoxPython3_9_LIBS    = $(VBOX_PYTHON39_LIB)
     593
     594   ifdef VBOX_WITH_32_ON_64_MAIN_API
     595    ifdef VBOX_PYTHON39_LIB_X86
     596     DLLS += VBoxPython3_9_x86
     597     VBoxPython3_9_x86_EXTENDS = VBoxPythonBase_x86
     598     VBoxPython3_9_x86_EXTENDS_BY = appending
     599     VBoxPython3_9_x86_INCS  = $(VBOX_PYTHON39_INC)
     600     VBoxPython3_9_x86_LIBS  = $(VBOX_PYTHON39_LIB_X86)
     601    endif
     602   endif
     603  endif
     604
     605  ifdef VBOX_PYTHON39M_INC
     606   #
     607   # Python 3.9 version with pymalloc
     608   #
     609   DLLS += VBoxPython3_9m
     610   VBoxPython3_9m_EXTENDS = VBoxPythonBase_m
     611   VBoxPython3_9m_EXTENDS_BY = appending
     612   VBoxPython3_9m_INCS    = $(VBOX_PYTHON39M_INC)
     613   VBoxPython3_9m_LIBS    = $(VBOX_PYTHON39M_LIB)
     614
     615   ifdef VBOX_WITH_32_ON_64_MAIN_API
     616    ifdef VBOX_PYTHON39M_LIB_X86
     617     DLLS += VBoxPython3_9m_x86
     618     VBoxPython3_9m_x86_EXTENDS = VBoxPythonBase_x86_m
     619     VBoxPython3_9m_x86_EXTENDS_BY = appending
     620     VBoxPython3_9m_x86_INCS  = $(VBOX_PYTHON39M_INC)
     621     VBoxPython3_9m_x86_LIBS  = $(VBOX_PYTHON39M_LIB_X86)
     622    endif
     623   endif
     624  endif
     625
     626  ifdef VBOX_PYTHON310_INC
     627   #
     628   # Python 3.10 version
     629   #
     630   DLLS += VBoxPython3_10
     631   VBoxPython3_10_EXTENDS = VBoxPythonBase
     632   VBoxPython3_10_EXTENDS_BY = appending
     633   VBoxPython3_10_INCS    = $(VBOX_PYTHON310_INC)
     634   VBoxPython3_10_LIBS    = $(VBOX_PYTHON310_LIB)
     635
     636   ifdef VBOX_WITH_32_ON_64_MAIN_API
     637    ifdef VBOX_PYTHON310_LIB_X86
     638     DLLS += VBoxPython3_10_x86
     639     VBoxPython3_10_x86_EXTENDS = VBoxPythonBase_x86
     640     VBoxPython3_10_x86_EXTENDS_BY = appending
     641     VBoxPython3_10_x86_INCS  = $(VBOX_PYTHON310_INC)
     642     VBoxPython3_10_x86_LIBS  = $(VBOX_PYTHON310_LIB_X86)
     643    endif
     644   endif
     645  endif
     646
     647  ifdef VBOX_PYTHON310M_INC
     648   #
     649   # Python 3.10 version with pymalloc
     650   #
     651   DLLS += VBoxPython3_10m
     652   VBoxPython3_10m_EXTENDS = VBoxPythonBase_m
     653   VBoxPython3_10m_EXTENDS_BY = appending
     654   VBoxPython3_10m_INCS    = $(VBOX_PYTHON310M_INC)
     655   VBoxPython3_10m_LIBS    = $(VBOX_PYTHON310M_LIB)
     656
     657   ifdef VBOX_WITH_32_ON_64_MAIN_API
     658    ifdef VBOX_PYTHON310M_LIB_X86
     659     DLLS += VBoxPython3_10m_x86
     660     VBoxPython3_10m_x86_EXTENDS = VBoxPythonBase_x86_m
     661     VBoxPython3_10m_x86_EXTENDS_BY = appending
     662     VBoxPython3_10m_x86_INCS  = $(VBOX_PYTHON310M_INC)
     663     VBoxPython3_10m_x86_LIBS  = $(VBOX_PYTHON310M_LIB_X86)
     664    endif
     665   endif
     666  endif
     667
     668  ifdef VBOX_PYTHONDEF_INC
     669   #
     670   # Python without versioning
     671   #
     672   DLLS += VBoxPython
     673   VBoxPython_EXTENDS   = VBoxPythonBase
     674   VBoxPython_DEFS      = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_DEFS))
     675   VBoxPython_INCS      = $(VBoxPythonBase_INCS) $(VBOX_PYTHONDEF_INC)
     676   if "$(KBUILD_TARGET)" == "linux"
     677    VBoxPython_LIBS     = $(VBoxPythonBase_LIBS)
    176678   else
    177 VBoxPython2_6_x86_TEMPLATE   = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.6",OSX106,-x86)
    178    endif
    179 VBoxPython2_6_x86_INCS       = $(VBOX_PYTHON26_INC)
    180 VBoxPython2_6_x86_LIBS       = $(VBOX_PYTHON26_LIB_X86)
    181   endif
    182  endif
    183 endif
    184 
    185 ifdef VBOX_PYTHON27_INC
    186 #
    187 # Python 2.7 version
    188 #
    189 DLLS += VBoxPython2_7
    190 VBoxPython2_7_EXTENDS    = VBoxPythonBase
    191 VBoxPython2_7_EXTENDS_BY = appending
    192  ifdef KMK_WITH_VERSION_COMPARE
    193 VBoxPython2_7_TEMPLATE   = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.7",OSX107,)
    194  else
    195 VBoxPython2_7_TEMPLATE   = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.7" && "$(length-var VBOX_DEF_MACOSX_VERSION_MIN)" == "4",OSX107,)
    196  endif
    197 VBoxPython2_7_INCS       = $(VBOX_PYTHON27_INC)
    198 VBoxPython2_7_LIBS       = $(VBOX_PYTHON27_LIB)
    199 
    200  ifdef VBOX_WITH_32_ON_64_MAIN_API
    201   ifdef VBOX_PYTHON27_LIB_X86
    202 DLLS += VBoxPython2_7_x86
    203 VBoxPython2_7_x86_EXTENDS    = VBoxPythonBase_x86
    204 VBoxPython2_7_x86_EXTENDS_BY = appending
    205    ifdef KMK_WITH_VERSION_COMPARE
    206 VBoxPython2_7_x86_TEMPLATE   = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.7",OSX107,-x86)
    207    else
    208 VBoxPython2_7_x86_TEMPLATE   = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.7" && "$(length-var VBOX_DEF_MACOSX_VERSION_MIN)" == "4",OSX107,-x86)
    209    endif
    210 VBoxPython2_7_x86_INCS       = $(VBOX_PYTHON27_INC)
    211 VBoxPython2_7_x86_LIBS       = $(VBOX_PYTHON27_LIB_X86)
    212   endif
    213  endif
    214 endif
    215 
    216 #
    217 # Unversioned Python 2.x.
    218 #
    219  if defined(VBOX_PYTHON27_INC) || defined(VBOX_PYTHON26_INC)
    220 DLLS += VBoxPython2
    221 VBoxPython2_EXTENDS    = VBoxPythonBase
    222 VBoxPython2_EXTENDS_BY = appending
    223 VBoxPython2_DEFS       = VBOX_PYXPCOM_MAJOR_VERSIONED
    224   ifdef KMK_WITH_VERSION_COMPARE
    225 VBoxPython2_TEMPLATE   = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.7",OSX107,)
    226   else
    227 VBoxPython2_TEMPLATE   = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.7" && "$(length-var VBOX_DEF_MACOSX_VERSION_MIN)" == "4",OSX107,)
    228   endif
    229   if defined(VBOX_PYTHON26_INC)
    230 VBoxPython2_INCS       = $(VBOX_PYTHON26_INC)
    231    ifn1of ($(KBUILD_TARGET), linux)
    232 VBoxPython2_LIBS       = $(VBOX_PYTHON26_LIB)
    233    endif
    234   else
    235 VBoxPython2_INCS       = $(VBOX_PYTHON27_INC)
    236    ifn1of ($(KBUILD_TARGET), linux)
    237 VBoxPython2_LIBS       = $(VBOX_PYTHON27_LIB)
    238    endif
    239   endif
    240  endif
    241 
    242  if defined(VBOX_WITH_32_ON_64_MAIN_API) && (defined(VBOX_PYTHON27_LIB_X86) || defined(VBOX_PYTHON26_INC_X86))
    243 DLLS += VBoxPython2_x86
    244 VBoxPython2_x86_EXTENDS    = VBoxPythonBase_x86
    245 VBoxPython2_x86_EXTENDS_BY = appending
    246 VBoxPython2_x86_DEFS       = VBOX_PYXPCOM_MAJOR_VERSIONED $(VBoxPythonBase_x86_DEFS)
    247   ifdef KMK_WITH_VERSION_COMPARE
    248 VBoxPython2_x86_TEMPLATE   = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.7",OSX107,-x86)
    249   else
    250 VBoxPython2_x86_TEMPLATE   = XPComDll$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.7" && "$(length-var VBOX_DEF_MACOSX_VERSION_MIN)" == "4",OSX107,-x86)
    251   endif
    252   if defined(VBOX_PYTHON26LIB_X86)
    253 VBoxPython2_x86_INCS       = $(VBOX_PYTHON26_INC)
    254    ifn1of ($(KBUILD_TARGET), linux)
    255 VBoxPython2_x86_LIBS       = $(VBOX_PYTHON26_LIB_X86)
    256    endif
    257   else
    258 VBoxPython2_x86_INCS       = $(VBOX_PYTHON27_INC)
    259    ifn1of ($(KBUILD_TARGET), linux)
    260 VBoxPython2_x86_LIBS       = $(VBOX_PYTHON27_LIB_X86)
    261    endif
    262   endif
    263  endif
    264 
    265 
    266 ifdef VBOX_PYTHON31_INC
    267 #
    268 # Python 3.1 version
    269 #
    270 DLLS += VBoxPython3_1
    271 VBoxPython3_1_EXTENDS    = VBoxPythonBase
    272 VBoxPython3_1_EXTENDS_BY = appending
    273 VBoxPython3_1_INCS       = $(VBOX_PYTHON31_INC)
    274 VBoxPython3_1_LIBS       = $(VBOX_PYTHON31_LIB)
    275 
    276  ifdef VBOX_WITH_32_ON_64_MAIN_API
    277   ifdef VBOX_PYTHON31_LIB_X86
    278 DLLS += VBoxPython3_1_x86
    279 VBoxPython3_1_x86_EXTENDS    = VBoxPythonBase_x86
    280 VBoxPython3_1_x86_EXTENDS_BY = appending
    281 VBoxPython3_1_x86_INCS       = $(VBOX_PYTHON31_INC)
    282 VBoxPython3_1_x86_LIBS       = $(VBOX_PYTHON31_LIB_X86)
    283   endif
    284  endif
    285 endif
    286 
    287 ifdef VBOX_PYTHON32_INC
    288 #
    289 # Python 3.2 version
    290 #
    291 DLLS += VBoxPython3_2
    292 VBoxPython3_2_EXTENDS    = VBoxPythonBase
    293 VBoxPython3_2_EXTENDS_BY = appending
    294 VBoxPython3_2_INCS       = $(VBOX_PYTHON32_INC)
    295 VBoxPython3_2_LIBS       = $(VBOX_PYTHON32_LIB)
    296 
    297  ifdef VBOX_WITH_32_ON_64_MAIN_API
    298   ifdef VBOX_PYTHON32_LIB_X86
    299 DLLS += VBoxPython3_2_x86
    300 VBoxPython3_2_x86_EXTENDS    = VBoxPythonBase_x86
    301 VBoxPython3_2_x86_EXTENDS_BY = appending
    302 VBoxPython3_2_x86_INCS       = $(VBOX_PYTHON32_INC)
    303 VBoxPython3_2_x86_LIBS       = $(VBOX_PYTHON32_LIB_X86)
    304   endif
    305  endif
    306 endif
    307 
    308 ifdef VBOX_PYTHON32M_INC
    309 #
    310 # Python 3.2 version with pymalloc
    311 #
    312 DLLS += VBoxPython3_2m
    313 VBoxPython3_2m_EXTENDS    = VBoxPythonBase_m
    314 VBoxPython3_2m_EXTENDS_BY = appending
    315 VBoxPython3_2m_INCS       = $(VBOX_PYTHON32M_INC)
    316 VBoxPython3_2m_LIBS       = $(VBOX_PYTHON32M_LIB)
    317 VBoxPython3_2m_DEFS       = MODULE_NAME_SUFFIX
    318 
    319  ifdef VBOX_WITH_32_ON_64_MAIN_API
    320   ifdef VBOX_PYTHON32M_LIB_X86
    321 DLLS += VBoxPython3_2m_x86
    322 VBoxPython3_2m_x86_EXTENDS    = VBoxPythonBase_x86_m
    323 VBoxPython3_2m_x86_EXTENDS_BY = appending
    324 VBoxPython3_2m_x86_INCS       = $(VBOX_PYTHON32M_INC)
    325 VBoxPython3_2m_x86_LIBS       = $(VBOX_PYTHON32M_LIB_X86)
    326   endif
    327  endif
    328 endif
    329 
    330  ifndef VBOX_WITH_ONLY_PYTHON_LIMITED_API
    331 
    332 ifdef VBOX_PYTHON33_INC
    333 #
    334 # Python 3.3 version
    335 #
    336 DLLS += VBoxPython3_3
    337 VBoxPython3_3_EXTENDS    = VBoxPythonBase
    338 VBoxPython3_3_EXTENDS_BY = appending
    339 VBoxPython3_3_INCS       = $(VBOX_PYTHON33_INC)
    340 VBoxPython3_3_LIBS       = $(VBOX_PYTHON33_LIB)
    341 
    342  ifdef VBOX_WITH_32_ON_64_MAIN_API
    343   ifdef VBOX_PYTHON33_LIB_X86
    344 DLLS += VBoxPython3_3_x86
    345 VBoxPython3_3_x86_EXTENDS    = VBoxPythonBase_x86
    346 VBoxPython3_3_x86_EXTENDS_BY = appending
    347 VBoxPython3_3_x86_INCS       = $(VBOX_PYTHON33_INC)
    348 VBoxPython3_3_x86_LIBS       = $(VBOX_PYTHON33_LIB_X86)
    349   endif
    350  endif
    351 endif
    352 
    353 ifdef VBOX_PYTHON33M_INC
    354 #
    355 # Python 3.3 version with pymalloc
    356 #
    357 DLLS += VBoxPython3_3m
    358 VBoxPython3_3m_EXTENDS    = VBoxPythonBase_m
    359 VBoxPython3_3m_EXTENDS_BY = appending
    360 VBoxPython3_3m_INCS       = $(VBOX_PYTHON33M_INC)
    361 VBoxPython3_3m_LIBS       = $(VBOX_PYTHON33M_LIB)
    362 
    363  ifdef VBOX_WITH_32_ON_64_MAIN_API
    364   ifdef VBOX_PYTHON33M_LIB_X86
    365 DLLS += VBoxPython3_3m_x86
    366 VBoxPython3_3m_x86_EXTENDS    = VBoxPythonBase_x86_m
    367 VBoxPython3_3m_x86_EXTENDS_BY = appending
    368 VBoxPython3_3m_x86_INCS       = $(VBOX_PYTHON33M_INC)
    369 VBoxPython3_3m_x86_LIBS       = $(VBOX_PYTHON33M_LIB_X86)
    370   endif
    371  endif
    372 endif
    373 
    374 ifdef VBOX_PYTHON34_INC
    375 #
    376 # Python 3.4 version
    377 #
    378 DLLS += VBoxPython3_4
    379 VBoxPython3_4_EXTENDS    = VBoxPythonBase
    380 VBoxPython3_4_EXTENDS_BY = appending
    381 VBoxPython3_4_INCS       = $(VBOX_PYTHON34_INC)
    382 VBoxPython3_4_LIBS       = $(VBOX_PYTHON34_LIB)
    383 
    384  ifdef VBOX_WITH_32_ON_64_MAIN_API
    385   ifdef VBOX_PYTHON34_LIB_X86
    386 DLLS += VBoxPython3_4_x86
    387 VBoxPython3_4_x86_EXTENDS    = VBoxPythonBase_x86
    388 VBoxPython3_4_x86_EXTENDS_BY = appending
    389 VBoxPython3_4_x86_INCS       = $(VBOX_PYTHON34_INC)
    390 VBoxPython3_4_x86_LIBS       = $(VBOX_PYTHON34_LIB_X86)
    391   endif
    392  endif
    393 endif
    394 
    395 ifdef VBOX_PYTHON34M_INC
    396 #
    397 # Python 3.4 version with pymalloc
    398 #
    399 DLLS += VBoxPython3_4m
    400 VBoxPython3_4m_EXTENDS    = VBoxPythonBase_m
    401 VBoxPython3_4m_EXTENDS_BY = appending
    402 VBoxPython3_4m_INCS       = $(VBOX_PYTHON34M_INC)
    403 VBoxPython3_4m_LIBS       = $(VBOX_PYTHON34M_LIB)
    404 
    405  ifdef VBOX_WITH_32_ON_64_MAIN_API
    406   ifdef VBOX_PYTHON34M_LIB_X86
    407 DLLS += VBoxPython3_4m_x86
    408 VBoxPython3_4m_x86_EXTENDS    = VBoxPythonBase_x86_m
    409 VBoxPython3_4m_x86_EXTENDS_BY = appending
    410 VBoxPython3_4m_x86_INCS       = $(VBOX_PYTHON34M_INC)
    411 VBoxPython3_4m_x86_LIBS       = $(VBOX_PYTHON34M_LIB_X86)
    412   endif
    413  endif
    414 endif
    415 
    416 ifdef VBOX_PYTHON35_INC
    417 #
    418 # Python 3.5 version
    419 #
    420 DLLS += VBoxPython3_5
    421 VBoxPython3_5_EXTENDS    = VBoxPythonBase
    422 VBoxPython3_5_EXTENDS_BY = appending
    423 VBoxPython3_5_INCS       = $(VBOX_PYTHON35_INC)
    424 VBoxPython3_5_LIBS       = $(VBOX_PYTHON35_LIB)
    425 
    426  ifdef VBOX_WITH_32_ON_64_MAIN_API
    427   ifdef VBOX_PYTHON35_LIB_X86
    428 DLLS += VBoxPython3_5_x86
    429 VBoxPython3_5_x86_EXTENDS    = VBoxPythonBase_x86
    430 VBoxPython3_5_x86_EXTENDS_BY = appending
    431 VBoxPython3_5_x86_INCS       = $(VBOX_PYTHON35_INC)
    432 VBoxPython3_5_x86_LIBS       = $(VBOX_PYTHON35_LIB_X86)
    433   endif
    434  endif
    435 endif
    436 
    437 ifdef VBOX_PYTHON35M_INC
    438 #
    439 # Python 3.5 version with pymalloc
    440 #
    441 DLLS += VBoxPython3_5m
    442 VBoxPython3_5m_EXTENDS    = VBoxPythonBase_m
    443 VBoxPython3_5m_EXTENDS_BY = appending
    444 VBoxPython3_5m_INCS       = $(VBOX_PYTHON35M_INC)
    445 VBoxPython3_5m_LIBS       = $(VBOX_PYTHON35M_LIB)
    446 
    447  ifdef VBOX_WITH_32_ON_64_MAIN_API
    448   ifdef VBOX_PYTHON35M_LIB_X86
    449 DLLS += VBoxPython3_5m_x86
    450 VBoxPython3_5m_x86_EXTENDS    = VBoxPythonBase_x86_m
    451 VBoxPython3_5m_x86_EXTENDS_BY = appending
    452 VBoxPython3_5m_x86_INCS       = $(VBOX_PYTHON35M_INC)
    453 VBoxPython3_5m_x86_LIBS       = $(VBOX_PYTHON35M_LIB_X86)
    454   endif
    455  endif
    456 endif
    457 
    458 ifdef VBOX_PYTHON36_INC
    459 #
    460 # Python 3.6 version
    461 #
    462 DLLS += VBoxPython3_6
    463 VBoxPython3_6_EXTENDS    = VBoxPythonBase
    464 VBoxPython3_6_EXTENDS_BY = appending
    465 VBoxPython3_6_INCS       = $(VBOX_PYTHON36_INC)
    466 VBoxPython3_6_LIBS       = $(VBOX_PYTHON36_LIB)
    467 
    468  ifdef VBOX_WITH_32_ON_64_MAIN_API
    469   ifdef VBOX_PYTHON36_LIB_X86
    470 DLLS += VBoxPython3_6_x86
    471 VBoxPython3_6_x86_EXTENDS    = VBoxPythonBase_x86
    472 VBoxPython3_6_x86_EXTENDS_BY = appending
    473 VBoxPython3_6_x86_INCS       = $(VBOX_PYTHON36_INC)
    474 VBoxPython3_6_x86_LIBS       = $(VBOX_PYTHON36_LIB_X86)
    475   endif
    476  endif
    477 endif
    478 
    479 ifdef VBOX_PYTHON36M_INC
    480 #
    481 # Python 3.6 version with pymalloc
    482 #
    483 DLLS += VBoxPython3_6m
    484 VBoxPython3_6m_EXTENDS    = VBoxPythonBase_m
    485 VBoxPython3_6m_EXTENDS_BY = appending
    486 VBoxPython3_6m_INCS       = $(VBOX_PYTHON36M_INC)
    487 VBoxPython3_6m_LIBS       = $(VBOX_PYTHON36M_LIB)
    488 
    489  ifdef VBOX_WITH_32_ON_64_MAIN_API
    490   ifdef VBOX_PYTHON36M_LIB_X86
    491 DLLS += VBoxPython3_6m_x86
    492 VBoxPython3_6m_x86_EXTENDS    = VBoxPythonBase_x86_m
    493 VBoxPython3_6m_x86_EXTENDS_BY = appending
    494 VBoxPython3_6m_x86_INCS       = $(VBOX_PYTHON36M_INC)
    495 VBoxPython3_6m_x86_LIBS       = $(VBOX_PYTHON36M_LIB_X86)
    496   endif
    497  endif
    498 endif
    499 
    500 ifdef VBOX_PYTHON37_INC
    501 #
    502 # Python 3.7 version
    503 #
    504 DLLS += VBoxPython3_7
    505 VBoxPython3_7_EXTENDS    = VBoxPythonBase
    506 VBoxPython3_7_EXTENDS_BY = appending
    507 VBoxPython3_7_INCS       = $(VBOX_PYTHON37_INC)
    508 VBoxPython3_7_LIBS       = $(VBOX_PYTHON37_LIB)
    509 
    510  ifdef VBOX_WITH_32_ON_64_MAIN_API
    511   ifdef VBOX_PYTHON37_LIB_X86
    512 DLLS += VBoxPython3_7_x86
    513 VBoxPython3_7_x86_EXTENDS    = VBoxPythonBase_x86
    514 VBoxPython3_7_x86_EXTENDS_BY = appending
    515 VBoxPython3_7_x86_INCS       = $(VBOX_PYTHON37_INC)
    516 VBoxPython3_7_x86_LIBS       = $(VBOX_PYTHON37_LIB_X86)
    517   endif
    518  endif
    519 endif
    520 
    521 ifdef VBOX_PYTHON37M_INC
    522 #
    523 # Python 3.7 version with pymalloc
    524 #
    525 DLLS += VBoxPython3_7m
    526 VBoxPython3_7m_EXTENDS    = VBoxPythonBase_m
    527 VBoxPython3_7m_EXTENDS_BY = appending
    528 VBoxPython3_7m_INCS       = $(VBOX_PYTHON37M_INC)
    529 VBoxPython3_7m_LIBS       = $(VBOX_PYTHON37M_LIB)
    530 
    531  ifdef VBOX_WITH_32_ON_64_MAIN_API
    532   ifdef VBOX_PYTHON37M_LIB_X86
    533 DLLS += VBoxPython3_7m_x86
    534 VBoxPython3_7m_x86_EXTENDS    = VBoxPythonBase_x86_m
    535 VBoxPython3_7m_x86_EXTENDS_BY = appending
    536 VBoxPython3_7m_x86_INCS       = $(VBOX_PYTHON37M_INC)
    537 VBoxPython3_7m_x86_LIBS       = $(VBOX_PYTHON37M_LIB_X86)
    538   endif
    539  endif
    540 endif
    541 
    542 ifdef VBOX_PYTHON38_INC
    543 #
    544 # Python 3.8 version
    545 #
    546 DLLS += VBoxPython3_8
    547 VBoxPython3_8_EXTENDS    = VBoxPythonBase
    548 VBoxPython3_8_EXTENDS_BY = appending
    549 VBoxPython3_8_INCS       = $(VBOX_PYTHON38_INC)
    550 VBoxPython3_8_LIBS       = $(VBOX_PYTHON38_LIB)
    551 
    552  ifdef VBOX_WITH_32_ON_64_MAIN_API
    553   ifdef VBOX_PYTHON38_LIB_X86
    554 DLLS += VBoxPython3_8_x86
    555 VBoxPython3_8_x86_EXTENDS    = VBoxPythonBase_x86
    556 VBoxPython3_8_x86_EXTENDS_BY = appending
    557 VBoxPython3_8_x86_INCS       = $(VBOX_PYTHON38_INC)
    558 VBoxPython3_8_x86_LIBS       = $(VBOX_PYTHON38_LIB_X86)
    559   endif
    560  endif
    561 endif
    562 
    563 ifdef VBOX_PYTHON38M_INC
    564 #
    565 # Python 3.8 version with pymalloc
    566 #
    567 DLLS += VBoxPython3_8m
    568 VBoxPython3_8m_EXTENDS    = VBoxPythonBase_m
    569 VBoxPython3_8m_EXTENDS_BY = appending
    570 VBoxPython3_8m_INCS       = $(VBOX_PYTHON38M_INC)
    571 VBoxPython3_8m_LIBS       = $(VBOX_PYTHON38M_LIB)
    572 
    573  ifdef VBOX_WITH_32_ON_64_MAIN_API
    574   ifdef VBOX_PYTHON38M_LIB_X86
    575 DLLS += VBoxPython3_8m_x86
    576 VBoxPython3_8m_x86_EXTENDS    = VBoxPythonBase_x86_m
    577 VBoxPython3_8m_x86_EXTENDS_BY = appending
    578 VBoxPython3_8m_x86_INCS       = $(VBOX_PYTHON38M_INC)
    579 VBoxPython3_8m_x86_LIBS       = $(VBOX_PYTHON38M_LIB_X86)
    580   endif
    581  endif
    582 endif
    583 
    584 ifdef VBOX_PYTHON39_INC
    585 #
    586 # Python 3.9 version
    587 #
    588 DLLS += VBoxPython3_9
    589 VBoxPython3_9_EXTENDS    = VBoxPythonBase
    590 VBoxPython3_9_EXTENDS_BY = appending
    591 VBoxPython3_9_INCS       = $(VBOX_PYTHON39_INC)
    592 VBoxPython3_9_LIBS       = $(VBOX_PYTHON39_LIB)
    593 
    594  ifdef VBOX_WITH_32_ON_64_MAIN_API
    595   ifdef VBOX_PYTHON39_LIB_X86
    596 DLLS += VBoxPython3_9_x86
    597 VBoxPython3_9_x86_EXTENDS    = VBoxPythonBase_x86
    598 VBoxPython3_9_x86_EXTENDS_BY = appending
    599 VBoxPython3_9_x86_INCS       = $(VBOX_PYTHON39_INC)
    600 VBoxPython3_9_x86_LIBS       = $(VBOX_PYTHON39_LIB_X86)
    601   endif
    602  endif
    603 endif
    604 
    605 ifdef VBOX_PYTHON39M_INC
    606 #
    607 # Python 3.9 version with pymalloc
    608 #
    609 DLLS += VBoxPython3_9m
    610 VBoxPython3_9m_EXTENDS    = VBoxPythonBase_m
    611 VBoxPython3_9m_EXTENDS_BY = appending
    612 VBoxPython3_9m_INCS       = $(VBOX_PYTHON39M_INC)
    613 VBoxPython3_9m_LIBS       = $(VBOX_PYTHON39M_LIB)
    614 
    615  ifdef VBOX_WITH_32_ON_64_MAIN_API
    616   ifdef VBOX_PYTHON39M_LIB_X86
    617 DLLS += VBoxPython3_9m_x86
    618 VBoxPython3_9m_x86_EXTENDS    = VBoxPythonBase_x86_m
    619 VBoxPython3_9m_x86_EXTENDS_BY = appending
    620 VBoxPython3_9m_x86_INCS       = $(VBOX_PYTHON39M_INC)
    621 VBoxPython3_9m_x86_LIBS       = $(VBOX_PYTHON39M_LIB_X86)
    622   endif
    623  endif
    624 endif
    625 
    626 ifdef VBOX_PYTHON310_INC
    627 #
    628 # Python 3.10 version
    629 #
    630 DLLS += VBoxPython3_10
    631 VBoxPython3_10_EXTENDS    = VBoxPythonBase
    632 VBoxPython3_10_EXTENDS_BY = appending
    633 VBoxPython3_10_INCS       = $(VBOX_PYTHON310_INC)
    634 VBoxPython3_10_LIBS       = $(VBOX_PYTHON310_LIB)
    635 
    636  ifdef VBOX_WITH_32_ON_64_MAIN_API
    637   ifdef VBOX_PYTHON310_LIB_X86
    638 DLLS += VBoxPython3_10_x86
    639 VBoxPython3_10_x86_EXTENDS    = VBoxPythonBase_x86
    640 VBoxPython3_10_x86_EXTENDS_BY = appending
    641 VBoxPython3_10_x86_INCS       = $(VBOX_PYTHON310_INC)
    642 VBoxPython3_10_x86_LIBS       = $(VBOX_PYTHON310_LIB_X86)
    643   endif
    644  endif
    645 endif
    646 
    647 ifdef VBOX_PYTHON310M_INC
    648 #
    649 # Python 3.10 version with pymalloc
    650 #
    651 DLLS += VBoxPython3_10m
    652 VBoxPython3_10m_EXTENDS    = VBoxPythonBase_m
    653 VBoxPython3_10m_EXTENDS_BY = appending
    654 VBoxPython3_10m_INCS       = $(VBOX_PYTHON310M_INC)
    655 VBoxPython3_10m_LIBS       = $(VBOX_PYTHON310M_LIB)
    656 
    657  ifdef VBOX_WITH_32_ON_64_MAIN_API
    658   ifdef VBOX_PYTHON310M_LIB_X86
    659 DLLS += VBoxPython3_10m_x86
    660 VBoxPython3_10m_x86_EXTENDS    = VBoxPythonBase_x86_m
    661 VBoxPython3_10m_x86_EXTENDS_BY = appending
    662 VBoxPython3_10m_x86_INCS       = $(VBOX_PYTHON310M_INC)
    663 VBoxPython3_10m_x86_LIBS       = $(VBOX_PYTHON310M_LIB_X86)
    664   endif
    665  endif
    666 endif
    667 
    668 ifdef VBOX_PYTHONDEF_INC
    669 #
    670 # Python without versioning
    671 #
    672 DLLS += VBoxPython
    673 VBoxPython_EXTENDS      = VBoxPythonBase
    674 VBoxPython_DEFS         = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_DEFS))
    675 VBoxPython_INCS         = $(VBoxPythonBase_INCS) $(VBOX_PYTHONDEF_INC)
    676 if "$(KBUILD_TARGET)" == "linux"
    677  VBoxPython_LIBS        = $(VBoxPythonBase_LIBS)
    678 else
    679  VBoxPython_LIBS        = $(VBoxPythonBase_LIBS) $(VBOX_PYTHONDEF_LIB)
    680 endif
    681 
    682  ifdef VBOX_WITH_32_ON_64_MAIN_API
    683   ifdef VBOX_PYTHONDEF_LIB_X86
    684 VBoxPython_x86_EXTENDS      = VBoxPythonBase_x86
    685 VBoxPython_x86_DEFS         = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_x86_DEFS))
    686 VBoxPython_x86_INCS         = $(VBoxPythonBase_x86_INCS) $(VBOX_PYTHONDEF_INC)
    687 if "$(KBUILD_TARGET)" == "linux"
    688  VBoxPython_x86_LIBS        = $(VBoxPythonBase_x86_LIBS)
    689 else
    690  VBoxPython_x86_LIBS        = $(VBoxPythonBase_x86_LIBS) $(VBOX_PYTHONDEF_LIB_X86)
    691 endif
    692   endif
    693  endif
    694 endif
     679    VBoxPython_LIBS     = $(VBoxPythonBase_LIBS) $(VBOX_PYTHONDEF_LIB)
     680   endif
     681
     682   ifdef VBOX_WITH_32_ON_64_MAIN_API
     683    ifdef VBOX_PYTHONDEF_LIB_X86
     684     VBoxPython_x86_EXTENDS = VBoxPythonBase_x86
     685     VBoxPython_x86_DEFS    = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_x86_DEFS))
     686     VBoxPython_x86_INCS    = $(VBoxPythonBase_x86_INCS) $(VBOX_PYTHONDEF_INC)
     687     if "$(KBUILD_TARGET)" == "linux"
     688      VBoxPython_x86_LIBS   = $(VBoxPythonBase_x86_LIBS)
     689     else
     690      VBoxPython_x86_LIBS   = $(VBoxPythonBase_x86_LIBS) $(VBOX_PYTHONDEF_LIB_X86)
     691     endif
     692    endif
     693   endif
     694  endif
    695695
    696696 endif # !VBOX_WITH_ONLY_PYTHON_LIMITED_API
    697697
    698698 ifndef VBOX_WITHOUT_PYTHON_LIMITED_API
    699 #
    700 # If there is python 3.3 or later present, we can build a generic
    701 # 3.x extension.  Since 3.3 and 3.4 are rather old, we will pick
    702 # those headers last.
    703 #
    704 # Note! No library dependencies are needed here (at least that's
    705 #       how the xxlimited.so demo extension is done on linux and darwin).
    706 # Note! The 'm' ABI suffix was discontinued in 3.8.
    707 # TODO: ASSUMING that we don't need a different headers for pymalloc
    708 #       ('m' builds < 3.8) and CRT malloc.
    709 #
    710 VBOX_PYTHON_LIMITED_API_VER := $(firstword $(foreach ver, 35 36 38 39 310   34 33 \
    711 ,$(if-expr defined(VBOX_PYTHON$(ver)_INC),$(ver),)$(if-expr defined(VBOX_PYTHON$(ver)M_INC),$(ver)M,)))
     699  #
     700  # If there is python 3.3 or later present, we can build a generic
     701  # 3.x extension.  Since 3.3 and 3.4 are rather old, we will pick
     702  # those headers last.
     703  #
     704  # Note! No library dependencies are needed here (at least that's
     705  #       how the xxlimited.so demo extension is done on linux and darwin).
     706  # Note! The 'm' ABI suffix was discontinued in 3.8.
     707  # TODO: ASSUMING that we don't need a different headers for pymalloc
     708  #       ('m' builds < 3.8) and CRT malloc.
     709  #
     710  VBOX_PYTHON_LIMITED_API_VER := $(firstword $(foreach ver, 35 36 38 39 310   34 33 \
     711        ,$(if-expr defined(VBOX_PYTHON$(ver)_INC),$(ver),)$(if-expr defined(VBOX_PYTHON$(ver)M_INC),$(ver)M,)))
    712712  ifneq ($(VBOX_PYTHON_LIMITED_API_VER),)
    713 DLLS += VBoxPython3
    714 VBoxPython3_EXTENDS      = VBoxPythonBase
    715 VBoxPython3_DEFS         = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_DEFS)) Py_LIMITED_API=0x03030000
    716 VBoxPython3_INCS         = $(VBoxPythonBase_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC)
    717 
    718 DLLS += VBoxPython3m
    719 VBoxPython3m_EXTENDS     = VBoxPythonBase_m
    720 VBoxPython3m_DEFS        = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_m_DEFS)) Py_LIMITED_API=0x03030000
    721 VBoxPython3m_INCS        = $(VBoxPythonBase_m_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC)
     713   DLLS += VBoxPython3
     714   VBoxPython3_EXTENDS   = VBoxPythonBase
     715   VBoxPython3_DEFS      = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_DEFS)) Py_LIMITED_API=0x03030000
     716   VBoxPython3_INCS      = $(VBoxPythonBase_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC)
     717
     718   DLLS += VBoxPython3m
     719   VBoxPython3m_EXTENDS  = VBoxPythonBase_m
     720   VBoxPython3m_DEFS     = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_m_DEFS)) Py_LIMITED_API=0x03030000
     721   VBoxPython3m_INCS     = $(VBoxPythonBase_m_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC)
    722722  endif
    723723 endif # VBOX_WITH_PYTHON_LIMITED_API
Note: See TracChangeset for help on using the changeset viewer.

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