• Home
  • Raw
  • Download

Lines Matching +full:build +full:- +full:macos

2 Python on macOS README
6 Jack Jansen (2004-07),
7 Ronald Oussoren (2010-04),
8 Ned Deily (2012-06)
10 This document provides a quick overview of some macOS specific features in
13 Compilers for building on macOS
16 The core developers primarily test builds on macOS with Apple's compiler tools,
18 a compiler that includes an SDK that targets the OS on the build machine, that is
21 For example, for macOS 12 we support Xcode 13 and Xcode 14 (or the corresponding
26 macOS specific arguments to configure
29 * ``--enable-framework[=DIR]``
31 If this argument is specified the build will create a Python.framework rather
33 _`Building and using a framework-based Python on macOS` for more
40 $ ./configure --enable-framework=/Users/ronald/Library/Frameworks
45 command-line tools in ``/Users/ronald/bin``.
47 * ``--with-framework-name=NAME``
50 is only valid when ``--enable-framework`` is specified.
52 * ``--enable-universalsdk[=PATH]``
54 Create a universal binary build of Python. This can be used with both
57 The optional argument specifies which macOS SDK should be used to perform the
58 build. In most cases on current systems, you do not need to specify PATH or
60 Line Tools developer directory will be used. See the macOS ``xcrun`` man page
61 for more information. Current versions of macOS and Xcode no longer install
64 The Apple-supplied build tools handle this transparently and current
66 and since macOS 10.14, no longer possible to force the installation of system
67 headers with ``xcode-select``.
69 * ``--with-universal-archs=VALUE``
72 only valid when ``--enable-universalsdk`` is specified. The default is
73 ``32-bit`` if building with a SDK that supports PPC, otherwise defaults
74 to ``intel``. Note that ``intel`` means a universal build of both 32-bit
75 and 64-bit binaries and that may not be what you want; for example,
76 as of macOS 10.15 Catalina, 32-bit execution is no longer supported by
78 values for ``--with-universal-archs``:
80 ``--enable-universalsdk --with-universal-archs=intel-64``
85 Building and using a universal binary of Python on macOS
89 -----------------------------
91 A universal binary build of Python contains object code for more than one
92 CPU architecture. A universal macOS executable file or library combines the
93 architecture-specific code into one file and can therefore run at native
95 macOS 10.4 to add support for Intel-based Macs to the existing PowerPC (PPC)
96 machines. In macOS 10.5 support was extended to 64-bit Intel and 64-bit PPC
97 architectures. It is possible to build Python with various combinations
98 of architectures depending on the build tools and macOS version in use.
99 Note that PPC support was removed in macOS 10.7 and 32-bit Intel support
100 was removed in macOS 10.15. So currently as of macOS 10.15, macOS only
101 supports one execution architecture, 64-bit Intel (``x86_64``).
103 2. How do I build a universal binary
104 ------------------------------------
106 You can enable universal binaries by specifying the "--enable-universalsdk"
109 $ ./configure --enable-universalsdk
113 This flag can be used with a framework build of python, but also with a classic
114 unix build. Universal builds were first supported with macOS 10.4 with Xcode 2.1
115 and the 10.4u SDK. Starting with Xcode 3 and macOS 10.5, more configurations are
119 Apple-supplied compilers and other build tools included in Apple's Xcode
121 component appropriate for the macOS release you are running on. See the
128 It is possible to build a number of flavors of the universal binary build,
129 the default is a 32-bit only binary (i386 and ppc) in build environments that
131 Intel-32/-64-bit binary (i386 and X86_64) in build environments that do not
133 using the configure option ``--with-universal-archs=VALUE``. The following
140 * ``intel-32``: ``i386``
142 * ``intel-64``: ``x86_64``
144 * ``32-bit``: ``ppc``, ``i386``
146 * ``3-way``: ``i386``, ``x86_64``, ``ppc``
148 * ``64-bit``: ``ppc64``, ``x86_64``
152 To build a universal binary that includes a 64-bit architecture, you must build
153 on a system running macOS 10.5 or later. The ``all`` and ``64-bit`` flavors can
155 macOS 10.5. Although legacy ``ppc`` support was included with Xcode 3 on macOS
156 10.6, it was removed in Xcode 4, versions of which were released on macOS 10.6
157 and which is the standard for macOS 10.7. To summarize, the
158 following combinations of SDKs and universal-archs flavors are available:
160 * 10.4u SDK with Xcode 2 supports ``32-bit`` only
164 * 10.6 SDK with Xcode 3.2.x supports ``intel``, ``intel-32``,
165 ``intel-64``, ``3-way``, and ``32-bit``
167 * 10.6 SDK with Xcode 4 supports ``intel``, ``intel-32``, and ``intel-64``
169 * 10.7 through 10.14 SDKs support ``intel``, ``intel-32``, and ``intel-64``
171 * 10.15 and later SDKs support ``intel-64`` only
175 The makefile for a framework build will also install ``python3.x-32``
176 binaries when the universal architecture includes at least one 32-bit
177 architecture (that is, for all flavors but ``64-bit`` and ``intel-64``).
178 It will also install ``python3.x-intel64`` binaries in the ``universal2``
187 $ arch -i386 python
189 Or to explicitly run in 32-bit mode, regardless of the machine hardware::
191 $ arch -i386 -ppc python
196 subprocesses also run in 32-bit-mode if the main interpreter does, use
197 a ``python3.x-32`` binary and use the value of ``sys.executable`` as the
200 Likewise, use ``python3.x-intel64`` to force execution in ``x86_64`` mode
203 Building and using a framework-based Python on macOS
208 -------------------------------------------------------------------------
211 exception of X11/XDarwin-based GUI toolkits all GUI programs need to be run
212 from a macOS application bundle (".app").
217 A second reason for using frameworks is that they put Python-related items in
226 ------------------------------------------------------------------
235 ----------------------------
237 Yes, probably. If you want Tkinter support you need to get the macOS AquaTk
238 distribution, this is installed by default on macOS 10.4 or later. Be
239 aware, though, that the Cocoa-based AquaTk's supplied starting with macOS
241 installing a newer version before building on macOS 10.6 or later, such as
249 4. How do I build a framework Python?
250 -------------------------------------
252 This directory contains a Makefile that will create a couple of python-related
253 applications (full-blown macOS .app applications, that is) in
262 1. ./configure --enable-framework
274 by configuring with ``--enable-framework=$HOME/Library/Frameworks``.
276 at ``$HOME/Applications/Python-<VERSION>`` and ``$HOME/bin``.
279 frameworkinstall is composed of a couple of sub-targets that install the
294 double-click a .py, .pyc or .pyw file. For the first two it creates a Terminal
295 window and runs the scripts with the normal command-line Python. For the
297 GUI-things. Keep the ``Option`` key depressed while dragging or double-clicking
303 ``pythonwx.x`` which in early releases of Python on macOS was required to run
311 ``build-installer.py`` that does all the work. This will download and build
312 a number of 3rd-party libraries, configures and builds a framework Python,
319 The script will build a universal binary so you'll therefore have to run this
320 script on macOS 10.4 or later and with Xcode 2.1 or later installed.
321 However, the Python build process itself has several build dependencies not
322 available out of the box with macOS 10.4 so you may have to install
325 versions of Xcode to build installers that are compatible with older systems
329 dependencies. It is safest to build the distribution on a system running the
330 minimum macOS version supported.
333 use your normal build directory nor does it install into /.
337 command-line arguments, run it with --help for more information.
350 configure: WARNING: ## -------------------------------------------------------- ##
352 configure: WARNING: ## -------------------------------------------------------- ##
354 This almost always means you are trying to build a universal binary for
356 architectures. Temporarily move ``/usr/local`` aside to finish the build.
364 macOS does not provide a central uninstaller.
369 version-specific subdirectory: ``/Library/Frameworks/Python.framework/Versions/X.Y``.
382 to macOS 10.9. This is done through weak linking of symbols introduced in macOS
385 This requires the use of Apple's compiler toolchain on macOS 10.13 or later.
415 * https://www.python.org/downloads/macos/
417 * https://www.python.org/community/sigs/current/pythonmac-sig/