Add support for python 3.11 Virtualbox 7.0.0 will only build a lib named VBoxPython3.so, regardless of the actual python version used when compiling. Remove VBoxPython3m.so, we don't use it. --- a/src/libs/xpcom18a4/python/Makefile.kmk +++ b/src/libs/xpcom18a4/python/Makefile.kmk @@ -30,7 +30,7 @@ # # List of supported Python versions, defining a number of -# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|310|310M|DEF]_[INC|LIB] variables +# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|310|310M|311|311M|DEF]_[INC|LIB] variables # which get picked up below. # ifeq ($(KBUILD_TARGET),darwin) # Relatively predictable, don't script. @@ -665,6 +665,48 @@ endif endif + ifdef VBOX_PYTHON311_INC + # + # Python 3.11 version + # + DLLS += VBoxPython3_11 + VBoxPython3_11_EXTENDS = VBoxPythonBase + VBoxPython3_11_EXTENDS_BY = appending + VBoxPython3_11_INCS = $(VBOX_PYTHON311_INC) + VBoxPython3_11_LIBS = $(VBOX_PYTHON311_LIB) + + ifdef VBOX_WITH_32_ON_64_MAIN_API + ifdef VBOX_PYTHON311_LIB_X86 + DLLS += VBoxPython3_11_x86 + VBoxPython3_11_x86_EXTENDS = VBoxPythonBase_x86 + VBoxPython3_11_x86_EXTENDS_BY = appending + VBoxPython3_11_x86_INCS = $(VBOX_PYTHON311_INC) + VBoxPython3_11_x86_LIBS = $(VBOX_PYTHON311_LIB_X86) + endif + endif + endif + + ifdef VBOX_PYTHON311M_INC + # + # Python 3.11 version with pymalloc + # + DLLS += VBoxPython3_11m + VBoxPython3_11m_EXTENDS = VBoxPythonBase_m + VBoxPython3_11m_EXTENDS_BY = appending + VBoxPython3_11m_INCS = $(VBOX_PYTHON311M_INC) + VBoxPython3_11m_LIBS = $(VBOX_PYTHON311M_LIB) + + ifdef VBOX_WITH_32_ON_64_MAIN_API + ifdef VBOX_PYTHON311M_LIB_X86 + DLLS += VBoxPython3_11m_x86 + VBoxPython3_11m_x86_EXTENDS = VBoxPythonBase_x86_m + VBoxPython3_11m_x86_EXTENDS_BY = appending + VBoxPython3_11m_x86_INCS = $(VBOX_PYTHON311M_INC) + VBoxPython3_11m_x86_LIBS = $(VBOX_PYTHON311M_LIB_X86) + endif + endif + endif + ifdef VBOX_PYTHONDEF_INC # # Python without versioning @@ -707,18 +749,13 @@ # TODO: ASSUMING that we don't need a different headers for pymalloc # ('m' builds < 3.8) and CRT malloc. # - VBOX_PYTHON_LIMITED_API_VER := $(firstword $(foreach ver, 35 36 38 39 310 34 33 \ + VBOX_PYTHON_LIMITED_API_VER := $(firstword $(foreach ver, 35 36 38 39 310 311 34 33 \ ,$(if-expr defined(VBOX_PYTHON$(ver)_INC),$(ver),)$(if-expr defined(VBOX_PYTHON$(ver)M_INC),$(ver)M,))) ifneq ($(VBOX_PYTHON_LIMITED_API_VER),) DLLS += VBoxPython3 VBoxPython3_EXTENDS = VBoxPythonBase VBoxPython3_DEFS = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_DEFS)) Py_LIMITED_API=0x03030000 VBoxPython3_INCS = $(VBoxPythonBase_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC) - - DLLS += VBoxPython3m - VBoxPython3m_EXTENDS = VBoxPythonBase_m - VBoxPython3m_DEFS = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_m_DEFS)) Py_LIMITED_API=0x03030000 - VBoxPython3m_INCS = $(VBoxPythonBase_m_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC) endif endif # VBOX_WITH_PYTHON_LIMITED_API