VirtualBox

source: vbox/trunk/src/libs/xpcom18a4/python/Makefile.kmk@ 85527

Last change on this file since 85527 was 85350, checked in by vboxsync, 5 years ago

xpcom18a4/python: Adjustments for newer Xcode version, fixing version compare through string compare.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 19.0 KB
Line 
1# $Id: Makefile.kmk 85350 2020-07-15 14:29:39Z vboxsync $
2## @file
3# Sub-Makefile for Python bindings
4#
5
6#
7# Copyright (C) 2009-2017 Oracle Corporation
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.virtualbox.org. This file is free software;
11# you can redistribute it and/or modify it under the terms of the GNU
12# General Public License (GPL) as published by the Free Software
13# Foundation, in version 2 as it comes in the "COPYING" file of the
14# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16#
17
18SUB_DEPTH = ../../../..
19include $(KBUILD_PATH)/subheader.kmk
20
21ifdef VBOX_WITH_MULTIVERSION_PYTHON
22 VBOX_MULTIPYTHON = 1
23else
24 VBOX_MULTIPYTHON = 0
25endif
26
27#
28# List of supported Python versions, defining a number of
29# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|DEF]_[INC|LIB] variables
30# which get picked up below.
31#
32ifeq ($(KBUILD_TARGET),darwin) # Relatively predictable, don't script.
33 ifn1of ($(VBOX_DEF_MACOSX_VERSION_MIN), 10.10 10.9 10.8 10.7 10.6 10.5 10.4) ## @todo @bugref{9790}: if $(VBOX_DEF_MACOSX_VERSION_MIN) vge 10.11
34 VBOX_PYTHON_SUFFTBD := .tbd
35 else
36 VBOX_PYTHON_SUFFTBD :=
37 endif
38 ifndef VBOX_WITHOUT_VBOXPYTHON_FOR_OSX_10_6
39 if1of ($(VBOX_DEF_MACOSX_VERSION_MIN), 10.5 10.4)
40 VBOX_PYTHON26_INC = $(VBOX_PATH_MACOSX_SDK_10_6)/usr/include/python2.6
41 VBOX_PYTHON26_LIB = $(VBOX_PATH_MACOSX_SDK_10_6)/usr/lib/libpython2.6.dylib
42 else if "$(VBOX_DEF_MACOSX_VERSION_MIN)" == "10.9" && "$(VBOX_XCODE_VERSION)" == "6.2" # 'effing 10.9 SDK in Xcode 6.2 is missing python. Stupid, stupid Apple!!
43 VBOX_PYTHON26_INC = $(VBOX_PATH_MACOSX_SDK)/../MacOSX10.10.sdk/System/Library/Frameworks/Python.framework/Versions/2.6/Headers
44 VBOX_PYTHON26_LIB = $(VBOX_PATH_MACOSX_SDK)/../MacOSX10.10.sdk/System/Library/Frameworks/Python.framework/Versions/2.6/Python
45 else if1of ($(VBOX_DEF_MACOSX_VERSION_MIN), 10.6 10.7 10.8 10.9 10.10 10.11 10.12) ## @todo @bugref{9790} 2.6 header was dropped in 10.13, so: else if $(VBOX_DEF_MACOSX_VERSION_MIN) vge 10.13
46 VBOX_PYTHON26_INC = $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/Python.framework/Versions/2.6/Headers
47 VBOX_PYTHON26_LIB = $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/Python.framework/Versions/2.6/Python$(VBOX_PYTHON_SUFFTBD)
48 endif
49 if !defined(VBOX_OSE) || "$(wildcard $(VBOX_PYTHON26_LIB))" != ""
50 VBOX_PYTHON26_LIB_X86 = $(VBOX_PYTHON26_LIB)
51 else
52 VBOX_PYTHON26_INC =
53 VBOX_PYTHON26_LIB =
54 endif
55 endif
56 ifndef VBOX_WITHOUT_VBOXPYTHON_FOR_OSX_10_7
57 if1of ($(VBOX_DEF_MACOSX_VERSION_MIN), 10.6 10.5 10.4)
58 VBOX_PYTHON27_INC = $(VBOX_PATH_MACOSX_SDK_10_7)/usr/include/python2.7
59 VBOX_PYTHON27_LIB = $(VBOX_PATH_MACOSX_SDK_10_7)/usr/lib/libpython2.7.dylib
60 else if "$(VBOX_DEF_MACOSX_VERSION_MIN)" == "10.9" && "$(VBOX_XCODE_VERSION)" == "6.2" # 'effing 10.9 SDK in Xcode 6.2 is missing python. Stupid, stupid Apple!!
61 VBOX_PYTHON27_INC = $(VBOX_PATH_MACOSX_SDK)/../MacOSX10.10.sdk/System/Library/Frameworks/Python.framework/Versions/2.7/Headers
62 VBOX_PYTHON27_LIB = $(VBOX_PATH_MACOSX_SDK)/../MacOSX10.10.sdk/System/Library/Frameworks/Python.framework/Versions/2.7/Python
63 else
64 VBOX_PYTHON27_INC = $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/Python.framework/Versions/2.7/Headers
65 VBOX_PYTHON27_LIB = $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/Python.framework/Versions/2.7/Python$(VBOX_PYTHON_SUFFTBD)
66 endif
67 if !defined(VBOX_OSE) || "$(wildcard $(VBOX_PYTHON27_LIB))" != ""
68 VBOX_PYTHON27_LIB_X86 = $(VBOX_PYTHON27_LIB)
69 else
70 VBOX_PYTHON27_INC =
71 VBOX_PYTHON27_LIB =
72 endif
73 endif
74 # No Python 3.x yet as part of OSX versions including El Capitan, 10.11.
75
76else
77 # Use the script.
78 $(eval $(subst |,$(NL),$(shell $(VBOX_BLD_PYTHON) \
79 $(PATH_SUB_CURRENT)/gen_python_deps.py \
80 $(KBUILD_TARGET) \
81 $(KBUILD_TARGET_ARCH) \
82 $(VBOX_MULTIPYTHON) )))
83endif
84
85ifndef VBOX_ONLY_SDK
86
87#
88# Base Python Client Module - the C++/XPCOM bits (not actually built).
89#
90VBoxPythonBase_TEMPLATE = XPCOM
91VBoxPythonBase_CXXFLAGS = -Wno-write-strings
92VBoxPythonBase_DLLSUFF.darwin = .so
93VBoxPythonBase_DEFS = \
94 _IMPL_NS_COM \
95 _IMPL_NS_BASE \
96 EXPORT_XPTI_API \
97 EXPORT_XPT_API \
98 VBOX_PYXPCOM \
99 VBOX_WITH_XPCOM \
100 VBOX_PYXPCOM_VERSIONED
101#VBoxPythonBase_DEFS.debug = \
102# VBOX_DEBUG_LIFETIMES
103VBoxPythonBase_INCS = \
104 src
105VBoxPythonBase_SOURCES = \
106 src/module/_xpcom.cpp \
107 src/dllmain.cpp \
108 src/ErrorUtils.cpp \
109 src/PyGBase.cpp \
110 src/PyGInputStream.cpp \
111 src/PyGModule.cpp \
112 src/PyGStub.cpp \
113 src/PyGWeakReference.cpp \
114 src/PyIClassInfo.cpp \
115 src/PyIComponentManager.cpp \
116 src/PyIComponentManagerObsolete.cpp \
117 src/PyIEnumerator.cpp \
118 src/PyIID.cpp \
119 src/PyIInputStream.cpp \
120 src/PyIInterfaceInfo.cpp \
121 src/PyIInterfaceInfoManager.cpp \
122 src/PyISimpleEnumerator.cpp \
123 src/PyISupports.cpp \
124 src/PyIVariant.cpp \
125 src/Pyxpt_info.cpp \
126 src/TypeObject.cpp \
127 src/VariantUtils.cpp
128VBoxPythonBase_LIBS = \
129 $(PATH_STAGE_LIB)/VBoxCOM$(VBOX_SUFF_LIB) \
130 $(PATH_STAGE_BIN)/VBoxXPCOM$(VBOX_SUFF_DLL)
131
132# pymalloc abi variant.
133VBoxPythonBase_m_EXTENDS = VBoxPythonBase
134VBoxPythonBase_m_DEFS = MODULE_NAME_SUFFIX=m $(VBoxPythonBase_DEFS)
135
136# 32-bit base.
137VBoxPythonBase_x86_TEMPLATE = XPCOM-x86
138VBoxPythonBase_x86_EXTENDS = VBoxPythonBase
139VBoxPythonBase_x86_DEFS = MODULE_NAME_SUFFIX=_x86 $(VBoxPythonBase_DEFS)
140VBoxPythonBase_x86_LIBS = \
141 $(PATH_STAGE_LIB)/VBoxCOM-x86$(VBOX_SUFF_LIB) \
142 $(PATH_STAGE_BIN)/VBoxXPCOM-x86$(VBOX_SUFF_DLL)
143
144# 32-bit pymalloc abi variant.
145VBoxPythonBase_x86_m_EXTENDS = VBoxPythonBase_x86
146VBoxPythonBase_x86_m_DEFS = MODULE_NAME_SUFFIX=_x86m $(VBoxPythonBase_DEFS)
147
148
149ifdef VBOX_PYTHON26_INC
150#
151# Python 2.6 version
152#
153DLLS += VBoxPython2_6
154VBoxPython2_6_EXTENDS = VBoxPythonBase
155VBoxPython2_6_EXTENDS_BY = appending
156 ifdef KMK_WITH_VERSION_COMPARE
157VBoxPython2_6_TEMPLATE = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.6",OSX106,)
158 else
159VBoxPython2_6_TEMPLATE = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.6",OSX106,)
160 endif
161VBoxPython2_6_INCS = $(VBOX_PYTHON26_INC)
162VBoxPython2_6_LIBS = $(VBOX_PYTHON26_LIB)
163
164 ifdef VBOX_WITH_32_ON_64_MAIN_API
165 ifdef VBOX_PYTHON26_LIB_X86
166DLLS += VBoxPython2_6_x86
167VBoxPython2_6_x86_EXTENDS = VBoxPythonBase_x86
168VBoxPython2_6_x86_EXTENDS_BY = appending
169 ifdef KMK_WITH_VERSION_COMPARE
170VBoxPython2_6_x86_TEMPLATE = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.6",OSX106,-x86)
171 else
172VBoxPython2_6_x86_TEMPLATE = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.6",OSX106,-x86)
173 endif
174VBoxPython2_6_x86_INCS = $(VBOX_PYTHON26_INC)
175VBoxPython2_6_x86_LIBS = $(VBOX_PYTHON26_LIB_X86)
176 endif
177 endif
178endif
179
180ifdef VBOX_PYTHON27_INC
181#
182# Python 2.7 version
183#
184DLLS += VBoxPython2_7
185VBoxPython2_7_EXTENDS = VBoxPythonBase
186VBoxPython2_7_EXTENDS_BY = appending
187 ifdef KMK_WITH_VERSION_COMPARE
188VBoxPython2_7_TEMPLATE = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.7",OSX107,)
189 else
190VBoxPython2_7_TEMPLATE = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.7" && "$(length-var VBOX_DEF_MACOSX_VERSION_MIN)" == "4",OSX107,)
191 endif
192VBoxPython2_7_INCS = $(VBOX_PYTHON27_INC)
193VBoxPython2_7_LIBS = $(VBOX_PYTHON27_LIB)
194
195 ifdef VBOX_WITH_32_ON_64_MAIN_API
196 ifdef VBOX_PYTHON27_LIB_X86
197DLLS += VBoxPython2_7_x86
198VBoxPython2_7_x86_EXTENDS = VBoxPythonBase_x86
199VBoxPython2_7_x86_EXTENDS_BY = appending
200 ifdef KMK_WITH_VERSION_COMPARE
201VBoxPython2_7_x86_TEMPLATE = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.7",OSX107,-x86)
202 else
203VBoxPython2_7_x86_TEMPLATE = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.7" && "$(length-var VBOX_DEF_MACOSX_VERSION_MIN)" == "4",OSX107,-x86)
204 endif
205VBoxPython2_7_x86_INCS = $(VBOX_PYTHON27_INC)
206VBoxPython2_7_x86_LIBS = $(VBOX_PYTHON27_LIB_X86)
207 endif
208 endif
209endif
210
211ifdef VBOX_PYTHON31_INC
212#
213# Python 3.1 version
214#
215DLLS += VBoxPython3_1
216VBoxPython3_1_EXTENDS = VBoxPythonBase
217VBoxPython3_1_EXTENDS_BY = appending
218VBoxPython3_1_TEMPLATE = XPCOM
219VBoxPython3_1_INCS = $(VBOX_PYTHON31_INC)
220VBoxPython3_1_LIBS = $(VBOX_PYTHON31_LIB)
221
222 ifdef VBOX_WITH_32_ON_64_MAIN_API
223 ifdef VBOX_PYTHON31_LIB_X86
224DLLS += VBoxPython3_1_x86
225VBoxPython3_1_x86_EXTENDS = VBoxPythonBase_x86
226VBoxPython3_1_x86_EXTENDS_BY = appending
227VBoxPython3_1_x86_TEMPLATE = XPCOM
228VBoxPython3_1_x86_INCS = $(VBOX_PYTHON31_INC)
229VBoxPython3_1_x86_LIBS = $(VBOX_PYTHON31_LIB_X86)
230 endif
231 endif
232endif
233
234ifdef VBOX_PYTHON32_INC
235#
236# Python 3.2 version
237#
238DLLS += VBoxPython3_2
239VBoxPython3_2_EXTENDS = VBoxPythonBase
240VBoxPython3_2_EXTENDS_BY = appending
241VBoxPython3_2_TEMPLATE = XPCOM
242VBoxPython3_2_INCS = $(VBOX_PYTHON32_INC)
243VBoxPython3_2_LIBS = $(VBOX_PYTHON32_LIB)
244
245 ifdef VBOX_WITH_32_ON_64_MAIN_API
246 ifdef VBOX_PYTHON32_LIB_X86
247DLLS += VBoxPython3_2_x86
248VBoxPython3_2_x86_EXTENDS = VBoxPythonBase_x86
249VBoxPython3_2_x86_EXTENDS_BY = appending
250VBoxPython3_2_x86_TEMPLATE = XPCOM
251VBoxPython3_2_x86_INCS = $(VBOX_PYTHON32_INC)
252VBoxPython3_2_x86_LIBS = $(VBOX_PYTHON32_LIB_X86)
253 endif
254 endif
255endif
256
257ifdef VBOX_PYTHON32M_INC
258#
259# Python 3.2 version with pymalloc
260#
261DLLS += VBoxPython3_2m
262VBoxPython3_2m_EXTENDS = VBoxPythonBase_m
263VBoxPython3_2m_EXTENDS_BY = appending
264VBoxPython3_2m_TEMPLATE = XPCOM
265VBoxPython3_2m_INCS = $(VBOX_PYTHON32M_INC)
266VBoxPython3_2m_LIBS = $(VBOX_PYTHON32M_LIB)
267VBoxPython3_2m_DEFS = MODULE_NAME_SUFFIX
268
269 ifdef VBOX_WITH_32_ON_64_MAIN_API
270 ifdef VBOX_PYTHON32M_LIB_X86
271DLLS += VBoxPython3_2m_x86
272VBoxPython3_2m_x86_EXTENDS = VBoxPythonBase_x86_m
273VBoxPython3_2m_x86_EXTENDS_BY = appending
274VBoxPython3_2m_x86_TEMPLATE = XPCOM
275VBoxPython3_2m_x86_INCS = $(VBOX_PYTHON32M_INC)
276VBoxPython3_2m_x86_LIBS = $(VBOX_PYTHON32M_LIB_X86)
277 endif
278 endif
279endif
280
281ifdef VBOX_PYTHON33_INC
282#
283# Python 3.3 version
284#
285DLLS += VBoxPython3_3
286VBoxPython3_3_EXTENDS = VBoxPythonBase
287VBoxPython3_3_EXTENDS_BY = appending
288VBoxPython3_3_TEMPLATE = XPCOM
289VBoxPython3_3_INCS = $(VBOX_PYTHON33_INC)
290VBoxPython3_3_LIBS = $(VBOX_PYTHON33_LIB)
291
292 ifdef VBOX_WITH_32_ON_64_MAIN_API
293 ifdef VBOX_PYTHON33_LIB_X86
294DLLS += VBoxPython3_3_x86
295VBoxPython3_3_x86_EXTENDS = VBoxPythonBase_x86
296VBoxPython3_3_x86_EXTENDS_BY = appending
297VBoxPython3_3_x86_TEMPLATE = XPCOM
298VBoxPython3_3_x86_INCS = $(VBOX_PYTHON33_INC)
299VBoxPython3_3_x86_LIBS = $(VBOX_PYTHON33_LIB_X86)
300 endif
301 endif
302endif
303
304ifdef VBOX_PYTHON33M_INC
305#
306# Python 3.3 version with pymalloc
307#
308DLLS += VBoxPython3_3m
309VBoxPython3_3m_EXTENDS = VBoxPythonBase_m
310VBoxPython3_3m_EXTENDS_BY = appending
311VBoxPython3_3m_TEMPLATE = XPCOM
312VBoxPython3_3m_INCS = $(VBOX_PYTHON33M_INC)
313VBoxPython3_3m_LIBS = $(VBOX_PYTHON33M_LIB)
314
315 ifdef VBOX_WITH_32_ON_64_MAIN_API
316 ifdef VBOX_PYTHON33M_LIB_X86
317DLLS += VBoxPython3_3m_x86
318VBoxPython3_3m_x86_EXTENDS = VBoxPythonBase_x86_m
319VBoxPython3_3m_x86_EXTENDS_BY = appending
320VBoxPython3_3m_x86_TEMPLATE = XPCOM
321VBoxPython3_3m_x86_INCS = $(VBOX_PYTHON33M_INC)
322VBoxPython3_3m_x86_LIBS = $(VBOX_PYTHON33M_LIB_X86)
323 endif
324 endif
325endif
326
327ifdef VBOX_PYTHON34_INC
328#
329# Python 3.4 version
330#
331DLLS += VBoxPython3_4
332VBoxPython3_4_EXTENDS = VBoxPythonBase
333VBoxPython3_4_EXTENDS_BY = appending
334VBoxPython3_4_TEMPLATE = XPCOM
335VBoxPython3_4_INCS = $(VBOX_PYTHON34_INC)
336VBoxPython3_4_LIBS = $(VBOX_PYTHON34_LIB)
337
338 ifdef VBOX_WITH_32_ON_64_MAIN_API
339 ifdef VBOX_PYTHON34_LIB_X86
340DLLS += VBoxPython3_4_x86
341VBoxPython3_4_x86_EXTENDS = VBoxPythonBase_x86
342VBoxPython3_4_x86_EXTENDS_BY = appending
343VBoxPython3_4_x86_TEMPLATE = XPCOM
344VBoxPython3_4_x86_INCS = $(VBOX_PYTHON34_INC)
345VBoxPython3_4_x86_LIBS = $(VBOX_PYTHON34_LIB_X86)
346 endif
347 endif
348endif
349
350ifdef VBOX_PYTHON34M_INC
351#
352# Python 3.4 version with pymalloc
353#
354DLLS += VBoxPython3_4m
355VBoxPython3_4m_EXTENDS = VBoxPythonBase_m
356VBoxPython3_4m_EXTENDS_BY = appending
357VBoxPython3_4m_TEMPLATE = XPCOM
358VBoxPython3_4m_INCS = $(VBOX_PYTHON34M_INC)
359VBoxPython3_4m_LIBS = $(VBOX_PYTHON34M_LIB)
360
361 ifdef VBOX_WITH_32_ON_64_MAIN_API
362 ifdef VBOX_PYTHON34M_LIB_X86
363DLLS += VBoxPython3_4m_x86
364VBoxPython3_4m_x86_EXTENDS = VBoxPythonBase_x86_m
365VBoxPython3_4m_x86_EXTENDS_BY = appending
366VBoxPython3_4m_x86_TEMPLATE = XPCOM
367VBoxPython3_4m_x86_INCS = $(VBOX_PYTHON34M_INC)
368VBoxPython3_4m_x86_LIBS = $(VBOX_PYTHON34M_LIB_X86)
369 endif
370 endif
371endif
372
373ifdef VBOX_PYTHON35_INC
374#
375# Python 3.5 version
376#
377DLLS += VBoxPython3_5
378VBoxPython3_5_EXTENDS = VBoxPythonBase
379VBoxPython3_5_EXTENDS_BY = appending
380VBoxPython3_5_TEMPLATE = XPCOM
381VBoxPython3_5_INCS = $(VBOX_PYTHON35_INC)
382VBoxPython3_5_LIBS = $(VBOX_PYTHON35_LIB)
383
384 ifdef VBOX_WITH_32_ON_64_MAIN_API
385 ifdef VBOX_PYTHON35_LIB_X86
386DLLS += VBoxPython3_5_x86
387VBoxPython3_5_x86_EXTENDS = VBoxPythonBase_x86
388VBoxPython3_5_x86_EXTENDS_BY = appending
389VBoxPython3_5_x86_TEMPLATE = XPCOM
390VBoxPython3_5_x86_INCS = $(VBOX_PYTHON35_INC)
391VBoxPython3_5_x86_LIBS = $(VBOX_PYTHON35_LIB_X86)
392 endif
393 endif
394endif
395
396ifdef VBOX_PYTHON35M_INC
397#
398# Python 3.5 version with pymalloc
399#
400DLLS += VBoxPython3_5m
401VBoxPython3_5m_EXTENDS = VBoxPythonBase_m
402VBoxPython3_5m_EXTENDS_BY = appending
403VBoxPython3_5m_TEMPLATE = XPCOM
404VBoxPython3_5m_INCS = $(VBOX_PYTHON35M_INC)
405VBoxPython3_5m_LIBS = $(VBOX_PYTHON35M_LIB)
406
407 ifdef VBOX_WITH_32_ON_64_MAIN_API
408 ifdef VBOX_PYTHON35M_LIB_X86
409DLLS += VBoxPython3_5m_x86
410VBoxPython3_5m_x86_EXTENDS = VBoxPythonBase_x86_m
411VBoxPython3_5m_x86_EXTENDS_BY = appending
412VBoxPython3_5m_x86_TEMPLATE = XPCOM
413VBoxPython3_5m_x86_INCS = $(VBOX_PYTHON35M_INC)
414VBoxPython3_5m_x86_LIBS = $(VBOX_PYTHON35M_LIB_X86)
415 endif
416 endif
417endif
418
419ifdef VBOX_PYTHON36_INC
420#
421# Python 3.6 version
422#
423DLLS += VBoxPython3_6
424VBoxPython3_6_EXTENDS = VBoxPythonBase
425VBoxPython3_6_EXTENDS_BY = appending
426VBoxPython3_6_TEMPLATE = XPCOM
427VBoxPython3_6_INCS = $(VBOX_PYTHON36_INC)
428VBoxPython3_6_LIBS = $(VBOX_PYTHON36_LIB)
429
430 ifdef VBOX_WITH_32_ON_64_MAIN_API
431 ifdef VBOX_PYTHON36_LIB_X86
432DLLS += VBoxPython3_6_x86
433VBoxPython3_6_x86_EXTENDS = VBoxPythonBase_x86
434VBoxPython3_6_x86_EXTENDS_BY = appending
435VBoxPython3_6_x86_TEMPLATE = XPCOM
436VBoxPython3_6_x86_INCS = $(VBOX_PYTHON36_INC)
437VBoxPython3_6_x86_LIBS = $(VBOX_PYTHON36_LIB_X86)
438 endif
439 endif
440endif
441
442ifdef VBOX_PYTHON36M_INC
443#
444# Python 3.6 version with pymalloc
445#
446DLLS += VBoxPython3_6m
447VBoxPython3_6m_EXTENDS = VBoxPythonBase_m
448VBoxPython3_6m_EXTENDS_BY = appending
449VBoxPython3_6m_TEMPLATE = XPCOM
450VBoxPython3_6m_INCS = $(VBOX_PYTHON36M_INC)
451VBoxPython3_6m_LIBS = $(VBOX_PYTHON36M_LIB)
452
453 ifdef VBOX_WITH_32_ON_64_MAIN_API
454 ifdef VBOX_PYTHON36M_LIB_X86
455DLLS += VBoxPython3_6m_x86
456VBoxPython3_6m_x86_EXTENDS = VBoxPythonBase_x86_m
457VBoxPython3_6m_x86_EXTENDS_BY = appending
458VBoxPython3_6m_x86_TEMPLATE = XPCOM
459VBoxPython3_6m_x86_INCS = $(VBOX_PYTHON36M_INC)
460VBoxPython3_6m_x86_LIBS = $(VBOX_PYTHON36M_LIB_X86)
461 endif
462 endif
463endif
464
465ifdef VBOX_PYTHON37_INC
466#
467# Python 3.7 version
468#
469DLLS += VBoxPython3_7
470VBoxPython3_7_EXTENDS = VBoxPythonBase
471VBoxPython3_7_EXTENDS_BY = appending
472VBoxPython3_7_TEMPLATE = XPCOM
473VBoxPython3_7_INCS = $(VBOX_PYTHON37_INC)
474VBoxPython3_7_LIBS = $(VBOX_PYTHON37_LIB)
475
476 ifdef VBOX_WITH_32_ON_64_MAIN_API
477 ifdef VBOX_PYTHON37_LIB_X86
478DLLS += VBoxPython3_7_x86
479VBoxPython3_7_x86_EXTENDS = VBoxPythonBase_x86
480VBoxPython3_7_x86_EXTENDS_BY = appending
481VBoxPython3_7_x86_TEMPLATE = XPCOM
482VBoxPython3_7_x86_INCS = $(VBOX_PYTHON37_INC)
483VBoxPython3_7_x86_LIBS = $(VBOX_PYTHON37_LIB_X86)
484 endif
485 endif
486endif
487
488ifdef VBOX_PYTHON37M_INC
489#
490# Python 3.7 version with pymalloc
491#
492DLLS += VBoxPython3_7m
493VBoxPython3_7m_EXTENDS = VBoxPythonBase_m
494VBoxPython3_7m_EXTENDS_BY = appending
495VBoxPython3_7m_TEMPLATE = XPCOM
496VBoxPython3_7m_INCS = $(VBOX_PYTHON37M_INC)
497VBoxPython3_7m_LIBS = $(VBOX_PYTHON37M_LIB)
498
499 ifdef VBOX_WITH_32_ON_64_MAIN_API
500 ifdef VBOX_PYTHON37M_LIB_X86
501DLLS += VBoxPython3_7m_x86
502VBoxPython3_7m_x86_EXTENDS = VBoxPythonBase_x86_m
503VBoxPython3_7m_x86_EXTENDS_BY = appending
504VBoxPython3_7m_x86_TEMPLATE_ = XPCOM
505VBoxPython3_7m_x86_INCS = $(VBOX_PYTHON37M_INC)
506VBoxPython3_7m_x86_LIBS = $(VBOX_PYTHON37M_LIB_X86)
507 endif
508 endif
509endif
510
511ifdef VBOX_PYTHON38_INC
512#
513# Python 3.8 version
514#
515DLLS += VBoxPython3_8
516VBoxPython3_8_EXTENDS = VBoxPythonBase
517VBoxPython3_8_EXTENDS_BY = appending
518VBoxPython3_8_TEMPLATE = XPCOM
519VBoxPython3_8_INCS = $(VBOX_PYTHON38_INC)
520VBoxPython3_8_LIBS = $(VBOX_PYTHON38_LIB)
521
522 ifdef VBOX_WITH_32_ON_64_MAIN_API
523 ifdef VBOX_PYTHON38_LIB_X86
524DLLS += VBoxPython3_8_x86
525VBoxPython3_8_x86_EXTENDS = VBoxPythonBase_x86
526VBoxPython3_8_x86_EXTENDS_BY = appending
527VBoxPython3_8_x86_TEMPLATE = XPCOM
528VBoxPython3_8_x86_INCS = $(VBOX_PYTHON38_INC)
529VBoxPython3_8_x86_LIBS = $(VBOX_PYTHON38_LIB_X86)
530 endif
531 endif
532endif
533
534ifdef VBOX_PYTHON38M_INC
535#
536# Python 3.8 version with pymalloc
537#
538DLLS += VBoxPython3_8m
539VBoxPython3_8m_EXTENDS = VBoxPythonBase_m
540VBoxPython3_8m_EXTENDS_BY = appending
541VBoxPython3_8m_TEMPLATE = XPCOM
542VBoxPython3_8m_INCS = $(VBOX_PYTHON38M_INC)
543VBoxPython3_8m_LIBS = $(VBOX_PYTHON38M_LIB)
544
545 ifdef VBOX_WITH_32_ON_64_MAIN_API
546 ifdef VBOX_PYTHON38M_LIB_X86
547DLLS += VBoxPython3_8m_x86
548VBoxPython3_8m_x86_EXTENDS = VBoxPythonBase_x86_m
549VBoxPython3_8m_x86_EXTENDS_BY = appending
550VBoxPython3_8m_x86_TEMPLATE_ = XPCOM
551VBoxPython3_8m_x86_INCS = $(VBOX_PYTHON38M_INC)
552VBoxPython3_8m_x86_LIBS = $(VBOX_PYTHON38M_LIB_X86)
553 endif
554 endif
555endif
556
557ifdef VBOX_PYTHONDEF_INC
558#
559# Python without versioning
560#
561DLLS += VBoxPython
562VBoxPython_EXTENDS = VBoxPythonBase
563VBoxPython_DEFS = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_DEFS))
564VBoxPython_INCS = $(VBoxPythonBase_INCS) $(VBOX_PYTHONDEF_INC)
565if "$(KBUILD_TARGET)" == "linux"
566 VBoxPython_LIBS = $(VBoxPythonBase_LIBS)
567else
568 VBoxPython_LIBS = $(VBoxPythonBase_LIBS) $(VBOX_PYTHONDEF_LIB)
569endif
570
571 ifdef VBOX_WITH_32_ON_64_MAIN_API
572 ifdef VBOX_PYTHONDEF_LIB_X86
573VBoxPython_x86_EXTENDS = VBoxPythonBase_x86
574VBoxPython_x86_DEFS = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_x86_DEFS))
575VBoxPython_x86_INCS = $(VBoxPythonBase_x86_INCS) $(VBOX_PYTHONDEF_INC)
576if "$(KBUILD_TARGET)" == "linux"
577 VBoxPython_x86_LIBS = $(VBoxPythonBase_x86_LIBS)
578else
579 VBoxPython_x86_LIBS = $(VBoxPythonBase_x86_LIBS) $(VBOX_PYTHONDEF_LIB_X86)
580endif
581 endif
582 endif
583endif
584
585endif # VBOX_ONLY_SDK
586
587#
588# Install the python modules.
589#
590INSTALLS += VBoxPython-inst-py-xpcom
591VBoxPython-inst-py-xpcom_INST = $(INST_SDK)bindings/xpcom/python/xpcom/
592VBoxPython-inst-py-xpcom_MODE = a+r,u+w
593VBoxPython-inst-py-xpcom_SOURCES = \
594 vboxxpcom.py \
595 components.py \
596 file.py \
597 __init__.py \
598 nsError.py \
599 primitives.py \
600 xpcom_consts.py \
601 xpt.py \
602 client/__init__.py=>client/__init__.py \
603 server/__init__.py=>server/__init__.py \
604 server/enumerator.py=>server/enumerator.py \
605 server/factory.py=>server/factory.py \
606 server/loader.py=>server/loader.py \
607 server/module.py=>server/module.py \
608 server/policy.py=>server/policy.py
609
610
611include $(FILE_KBUILD_SUB_FOOTER)
612
Note: See TracBrowser for help on using the repository browser.

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