You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.6 KiB
87 lines
2.6 KiB
"""This Python script uses the SIP build system to create a Makefile for |
|
building a custom Python interpreter. The script doesn't take any command line |
|
flags - just edit it to suit your needs. You will also need to edit custom.c |
|
or customw.c. |
|
""" |
|
|
|
|
|
import sys |
|
import sipconfig |
|
|
|
|
|
# Get the SIP configuration. |
|
cfg = sipconfig.Configuration() |
|
|
|
|
|
# This is the name of the interpreter executable (excluding any platform |
|
# specific extension. |
|
InterpreterName = "custom" |
|
|
|
# Set this to True to create a non-console interpreter on Windows (ie. a custom |
|
# version of pythonw). Make sure you make changes to customw.c rather than |
|
# custom.c. It is ignored on other platforms. |
|
WindowsInterpreter = False |
|
|
|
# Set this to the list of the name of modules to be builtin to the custom |
|
# interpreter. The modules must also be added to custom.c and/or customw.c. |
|
Modules = ["sip"] |
|
#Modules = ["sip", "qt", "qtaxcontainer", "qtcanvas", "qtext", "qtgl", |
|
# "qtnetwork", "qtsql", "qttable", "qtui", "qtxml"] |
|
|
|
# Set this to the name of the directory containing the static modules. |
|
ModuleDirectory = cfg.default_mod_dir |
|
|
|
# Set this to the list of additional libraries to link with the custom |
|
# interpreter. |
|
ExtraLibraries = [] |
|
#ExtraLibraries = ["qassistantclient"] |
|
|
|
# Set this to the list of additional directory names to search for any |
|
# additional libraries. |
|
ExtraLibraryDirectories = [] |
|
|
|
# Set this to the name of the directory containing the Python library. |
|
PythonLibraryDirectory = cfg.py_lib_dir |
|
|
|
|
|
# Make platform specific modifications. |
|
if sys.platform == "linux2": |
|
ExtraLibraries.append("util") |
|
|
|
|
|
# Create a dictionary describing the target and source files to be passed to |
|
# the SIP build system. |
|
build = {} |
|
|
|
if sys.platform == "win32" and WindowsInterpreter: |
|
build["target"] = InterpreterName + "w" |
|
build["sources"] = "customw.c" |
|
console = False |
|
else: |
|
build["target"] = InterpreterName |
|
build["sources"] = "custom.c" |
|
console = True |
|
|
|
# Assume Qt support is required if Qt support was enabled in the sip module. |
|
qt = (cfg.qt_version > 0) |
|
|
|
# Create the Makefile instance. |
|
mf = sipconfig.ProgramMakefile(cfg, build, python=True, console=console, qt=qt) |
|
|
|
# Modify the Makefile according to the values set above. |
|
mf.extra_lib_dirs.extend(ExtraLibraryDirectories) |
|
mf.extra_lib_dirs.append(ModuleDirectory) |
|
mf.extra_lib_dirs.append(PythonLibraryDirectory) |
|
|
|
mf.extra_libs.extend(Modules) |
|
|
|
if sys.platform == "win32": |
|
pylib = "python%u%u" |
|
else: |
|
pylib = "python%u.%u" |
|
|
|
mf.extra_libs.append(pylib % ((cfg.py_version >> 16), ((cfg.py_version >> 8) & 0xff))) |
|
mf.extra_libs.extend(ExtraLibraries) |
|
|
|
# Generate the Makefile itself. |
|
mf.generate()
|
|
|