Makefile.kmk revision c292481772f0efeeaa5d9af9f00011698757820e
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# $Id$
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync## @file
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# Sub-Makefile for Python bindings
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync#
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync#
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# Copyright (C) 2009 Sun Microsystems, Inc.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync#
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# available from http://www.virtualbox.org. This file is free software;
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# you can redistribute it and/or modify it under the terms of the GNU
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync# General Public License (GPL) as published by the Free Software
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync#
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# Clara, CA 95054 USA or visit http://www.sun.com if you need
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# additional information or have any questions.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync#
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncSUB_DEPTH = ../../../..
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncinclude $(KBUILD_PATH)/subheader.kmk
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# list of supported Python versions
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync$(eval $(patsubst %|,%$(NL),$(shell $(VBOX_BLD_PYTHON) $(PATH_SUB_CURRENT)/gen_python_deps.py $(KBUILD_TARGET) $(KBUILD_TARGET_ARCH))))
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# Python Client Module - the C++/XPCOM bits.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPythonBase_TEMPLATE = XPCOM
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPythonBase_DEFS = _IMPL_NS_COM _IMPL_NS_BASE EXPORT_XPTI_API \
7e960d3a0a8a3a84d7aba2cca45d72b1c31cc97bvboxsync EXPORT_XPT_API VBOX_PYXPCOM VBOX_WITH_XPCOM
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPythonBase_INCS = \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPythonBase_SOURCES = \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/module/_xpcom.cpp \
61fa69e2bc9fc9e7490feed1c020273f3ddb238dvboxsync src/dllmain.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/ErrorUtils.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/PyGBase.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/PyGInputStream.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/PyGModule.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/PyGStub.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/PyGWeakReference.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/PyIClassInfo.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/PyIComponentManager.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/PyIComponentManagerObsolete.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/PyIEnumerator.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/PyIID.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/PyIInputStream.cpp \
223cf005b18af2c21352a70693ebaf0582f68ebcvboxsync src/PyIInterfaceInfo.cpp \
223cf005b18af2c21352a70693ebaf0582f68ebcvboxsync src/PyIInterfaceInfoManager.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/PyISimpleEnumerator.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/PyISupports.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/PyIVariant.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/Pyxpt_info.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/TypeObject.cpp \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync src/VariantUtils.cpp
afed5ab737f4aacfae3fe73776f40e989190a7cavboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPythonBase_LIBS = \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync $(PATH_LIB)/VBoxCOM$(VBOX_SUFF_LIB) \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync $(PATH_BIN)/VBoxXPCOM$(VBOX_SUFF_DLL)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncifeq ($(KBUILD_TARGET),darwin)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync ## @todo kBuild - this ain't working: VBoxPython_DLLSUFF.darwin = .so
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync VBoxPythonBase_DLLSUFF = .so
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncendif
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# Python 2.3 version
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython23_EXTENDS = VBoxPythonBase
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython23_EXTENDS_BY = appending
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython23_NAME = VBoxPython2_3
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython23_TEMPLATE = XPCOM
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython23_DEFS = VBOX_PYXPCOM_VERSIONED
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython23_INCS = $(VBOX_PYTHON23_INC)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython23_LIBS = $(VBOX_PYTHON23_LIB)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncifdef VBOX_PYTHON23_INC
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync KNOWN_GLUE += VBoxPython23
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncendif
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# Python 2.4 version
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython24_EXTENDS = VBoxPythonBase
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython24_EXTENDS_BY = appending
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython24_NAME = VBoxPython2_4
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython24_TEMPLATE = XPCOM
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython24_DEFS = VBOX_PYXPCOM_VERSIONED
7e960d3a0a8a3a84d7aba2cca45d72b1c31cc97bvboxsyncVBoxPython24_INCS = $(VBOX_PYTHON24_INC)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython24_LIBS = $(VBOX_PYTHON24_LIB)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncifdef VBOX_PYTHON24_INC
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync KNOWN_GLUE += VBoxPython24
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsyncendif
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# Python 2.5 version
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsyncVBoxPython25_EXTENDS = VBoxPythonBase
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython25_EXTENDS_BY = appending
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsyncVBoxPython25_NAME = VBoxPython2_5
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsyncif "$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)" == "darwin.x86"
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsync VBoxPython25_TEMPLATE = XPCOMOSX105
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncelse
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsync VBoxPython25_TEMPLATE = XPCOM
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncendif
7e960d3a0a8a3a84d7aba2cca45d72b1c31cc97bvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython25_DEFS = VBOX_PYXPCOM_VERSIONED
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython25_INCS = $(VBOX_PYTHON25_INC)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython25_LIBS = $(VBOX_PYTHON25_LIB)
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncifdef VBOX_PYTHON25_INC
fdea543f71872a3ec3909536a4fce37ab7aa3a8bvboxsync KNOWN_GLUE += VBoxPython25
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsyncendif
fdea543f71872a3ec3909536a4fce37ab7aa3a8bvboxsync
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsync# Python 2.6 version
fdea543f71872a3ec3909536a4fce37ab7aa3a8bvboxsyncVBoxPython26_EXTENDS = VBoxPythonBase
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsyncVBoxPython26_EXTENDS_BY = appending
fdea543f71872a3ec3909536a4fce37ab7aa3a8bvboxsyncVBoxPython26_NAME = VBoxPython2_6
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsyncVBoxPython26_TEMPLATE = XPCOM
8f7bc6ad2b7bbcb4b3b96248cd2478e45f2e3b88vboxsync
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsyncVBoxPython26_DEFS = VBOX_PYXPCOM_VERSIONED
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython26_INCS = $(VBOX_PYTHON26_INC)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython26_LIBS = $(VBOX_PYTHON26_LIB)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncifdef VBOX_PYTHON26_INC
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsync KNOWN_GLUE += VBoxPython26
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsyncendif
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsync
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsync# Python 2.7 version
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsyncVBoxPython27_EXTENDS = VBoxPythonBase
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsyncVBoxPython27_EXTENDS_BY = appending
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsyncVBoxPython27_NAME = VBoxPython2_7
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsyncVBoxPython27_TEMPLATE = XPCOM
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsync
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsyncVBoxPython27_DEFS = VBOX_PYXPCOM_VERSIONED
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsyncVBoxPython27_INCS = $(VBOX_PYTHON27_INC)
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsyncVBoxPython27_LIBS = $(VBOX_PYTHON27_LIB)
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsync
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsyncifdef VBOX_PYTHON27_INC
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsync KNOWN_GLUE += VBoxPython27
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsyncendif
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsync
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsync# Python 2.8 version
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsyncVBoxPython28_EXTENDS = VBoxPythonBase
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsyncVBoxPython28_EXTENDS_BY = appending
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsyncVBoxPython28_NAME = VBoxPython2_8
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsyncVBoxPython28_TEMPLATE = XPCOM
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsync
68ef804c4ec232c58e2c03c8fc6afe3765c5c0d1vboxsyncVBoxPython28_DEFS = VBOX_PYXPCOM_VERSIONED
68ef804c4ec232c58e2c03c8fc6afe3765c5c0d1vboxsyncVBoxPython28_INCS = $(VBOX_PYTHON28_INC)
68ef804c4ec232c58e2c03c8fc6afe3765c5c0d1vboxsyncVBoxPython28_LIBS = $(VBOX_PYTHON28_LIB)
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsync
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsyncifdef VBOX_PYTHON28_INC
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsync KNOWN_GLUE += VBoxPython28
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsyncendif
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsync
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsync# Python without versioning
726fc44ad0bd65a178ad4c3ab46ebd6cd3208e99vboxsyncVBoxPython_EXTENDS = VBoxPythonBase
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsyncVBoxPython_EXTENDS_BY = appending
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsyncVBoxPython_TEMPLATE = XPCOM
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
7e960d3a0a8a3a84d7aba2cca45d72b1c31cc97bvboxsyncVBoxPython_INCS = $(VBOX_PYTHONDEF_INC)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncif "$(KBUILD_TARGET)" == "linux"
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync VBoxPython_LIBS =
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncelse
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync VBoxPython_LIBS = $(VBOX_PYTHONDEF_LIB)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncendif
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncifdef VBOX_PYTHONDEF_INC
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync KNOWN_GLUE += VBoxPython
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncendif
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython-inst-py-xpcom_INST = $(INST_SDK)bindings/xpcom/python/xpcom/
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncVBoxPython-inst-py-xpcom_SOURCES = \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync vboxxpcom.py \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync components.py \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync file.py \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync __init__.py \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync nsError.py \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync primitives.py \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync xpcom_consts.py \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync xpt.py \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync client/__init__.py=>client/__init__.py \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync server/__init__.py=>server/__init__.py \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync server/enumerator.py=>server/enumerator.py \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync server/factory.py=>server/factory.py \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync server/loader.py=>server/loader.py \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync server/module.py=>server/module.py \
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync server/policy.py=>server/policy.py
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
b1c3cdef473df2fbc621d5da81acc82dbfb8a11avboxsync
a11c569636fa6838bd423f4631a9660a5a84204bvboxsyncifndef VBOX_ONLY_SDK
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync DLLS += $(KNOWN_GLUE)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncendif
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncINSTALLS += VBoxPython-inst-py-xpcom
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncinclude $(KBUILD_PATH)/subfooter.kmk
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync