Changeset 391 for python/trunk/Mac/BuildScript/README.txt
- Timestamp:
- Mar 19, 2014, 11:31:01 PM (12 years ago)
- Location:
- python/trunk
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
Mac/BuildScript/README.txt (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
python/trunk
-
Property svn:mergeinfo
set to
/python/vendor/Python-2.7.6 merged eligible /python/vendor/current merged eligible
-
Property svn:mergeinfo
set to
-
python/trunk/Mac/BuildScript/README.txt
r2 r391 1 Building a MacPythondistribution2 ================================= 1 Building a Python Mac OS X distribution 2 ======================================= 3 3 4 The ``build-install.py`` script creates MacPython distributions, including5 sleepycat db4, sqlite3 and readline support. It builds a complete4 The ``build-install.py`` script creates Python distributions, including 5 certain third-party libraries as necessary. It builds a complete 6 6 framework-based Python out-of-tree, installs it in a funny place with 7 7 $DESTROOT, massages that installation to remove .pyc files and such, creates … … 9 9 and ``scripts`` and placed that on a ``.dmg`` disk image. 10 10 11 Prerequisites12 ------------- 11 For Python 2.7.x and 3.2.x, PSF practice is to build two installer variants 12 for each release. 13 13 14 * A MacOS X 10.4 (or later) 14 1. 32-bit-only, i386 and PPC universal, capable on running on all machines 15 supported by Mac OS X 10.3.9 through (at least) 10.8:: 15 16 16 * XCode 2.2 (or later), with the universal SDK 17 /usr/bin/python build-installer.py \ 18 --sdk-path=/Developer/SDKs/MacOSX10.4u.sdk \ 19 --universal-archs=32-bit \ 20 --dep-target=10.3 17 21 18 * No Fink (in ``/sw``) or DarwinPorts (in ``/opt/local``), those could 22 - builds the following third-party libraries 23 24 * Bzip2 25 * NCurses 26 * GNU Readline (GPL) 27 * SQLite 3.7.13 28 * Zlib 1.2.3 29 * Oracle Sleepycat DB 4.8 (Python 2.x only) 30 31 - requires ActiveState ``Tcl/Tk 8.4`` (currently 8.4.19) to be installed for building 32 33 - recommended build environment: 34 35 * Mac OS X 10.5.8 PPC or Intel 36 * Xcode 3.1.4 37 * ``MacOSX10.4u`` SDK (later SDKs do not support PPC G3 processors) 38 * ``MACOSX_DEPLOYMENT_TARGET=10.3`` 39 * Apple ``gcc-4.0`` 40 * system Python 2.5 for documentation build with Sphinx 41 42 - alternate build environments: 43 44 * Mac OS X 10.6.8 with Xcode 3.2.6 45 - need to change ``/System/Library/Frameworks/{Tcl,Tk}.framework/Version/Current`` to ``8.4`` 46 * Note Xcode 4.* does not support building for PPC so cannot be used for this build 47 48 49 2. 64-bit / 32-bit, x86_64 and i386 universal, for OS X 10.6 (and later):: 50 51 /usr/bin/python build-installer.py \ 52 --sdk-path=/Developer/SDKs/MacOSX10.6.sdk \ 53 --universal-archs=intel \ 54 --dep-target=10.6 55 56 - builds the following third-party libraries 57 58 * NCurses 5.9 (http://bugs.python.org/issue15037) 59 * SQLite 3.7.13 60 61 - uses system-supplied versions of third-party libraries 62 63 * readline module links with Apple BSD editline (libedit) 64 * builds Oracle Sleepycat DB 4.8 (Python 2.x only) 65 66 - requires ActiveState Tcl/Tk 8.5.9 (or later) to be installed for building 67 68 - recommended build environment: 69 70 * Mac OS X 10.6.8 (or later) 71 * Xcode 3.2.6 72 * ``MacOSX10.6`` SDK 73 * ``MACOSX_DEPLOYMENT_TARGET=10.6`` 74 * Apple ``gcc-4.2`` 75 * system Python 2.6 for documentation build with Sphinx 76 77 - alternate build environments: 78 79 * none. Xcode 4.x currently supplies two C compilers. 80 ``llvm-gcc-4.2.1`` has been found to miscompile Python 3.3.x and 81 produce a non-functional Python executable. As it appears to be 82 considered a migration aid by Apple and is not likely to be fixed, 83 its use should be avoided. The other compiler, ``clang``, has been 84 undergoing rapid development. While it appears to have become 85 production-ready in the most recent Xcode 4 releases (Xcode 4.5.x 86 as of this writing), there are still some open issues when 87 building Python and there has not yet been the level of exposure in 88 production environments that the Xcode 3 gcc-4.2 compiler has had. 89 90 91 General Prerequisites 92 --------------------- 93 94 * No Fink (in ``/sw``) or MacPorts (in ``/opt/local``) or other local 95 libraries or utilities (in ``/usr/local``) as they could 19 96 interfere with the build. 20 97 21 * The documentation for the release must be available on python.org98 * The documentation for the release is built using Sphinx 22 99 because it is included in the installer. 100 101 * It is safest to start each variant build with an empty source directory 102 populated with a fresh copy of the untarred source. 103 104 * It is recommended that you remove any existing installed version of the 105 Python being built:: 106 107 sudo rm -rf /Library/Frameworks/Python.framework/Versions/n.n 23 108 24 109 … … 26 111 ---------- 27 112 28 Here are the steps you need to follow to build a MacPython installer:113 Here are the steps you need to follow to build a Python installer: 29 114 30 * Run ``./build-installer.py``. Optionally you can pass a number of arguments31 to specify locations of various files. Please see the top of115 * Run ``build-installer.py``. Optionally you can pass a number of arguments 116 to specify locations of various files. Please see the top of 32 117 ``build-installer.py`` for its usage. 33 118 34 Running this script takes some time, Iwill not only build Python itself119 Running this script takes some time, it will not only build Python itself 35 120 but also some 3th-party libraries that are needed for extensions. 36 121 … … 38 123 somewhere in ``/tmp/_py``). 39 124 40 Building a 4-way universal installer41 ................................... .125 Building other universal installers 126 ................................... 42 127 43 128 It is also possible to build a 4-way universal installer that runs on 44 OS XLeopard or later::129 OS X 10.5 Leopard or later:: 45 130 46 $ ./build-installer.py --dep-target=10.5 --universal-archs=all --sdk=/ 131 /usr/bin/python /build-installer.py \ 132 --dep-target=10.5 133 --universal-archs=all 134 --sdk-path=/Developer/SDKs/MacOSX10.5.sdk 47 135 48 This requires that the deployment target is 10.5 (or later), and hence 49 also that your building on at least OSX 10.5. 136 This requires that the deployment target is 10.5, and hence 137 also that you are building on at least OS X 10.5. 4-way includes 138 ``i386``, ``x86_64``, ``ppc``, and ``ppc64`` (G5). ``ppc64`` executable 139 variants can only be run on G5 machines running 10.5. Note that, 140 while OS X 10.6 is only supported on Intel-based machines, it is possible 141 to run ``ppc`` (32-bit) executables unmodified thanks to the Rosetta ppc 142 emulation in OS X 10.5 and 10.6. The 4-way installer variant must be 143 built with Xcode 3. It is not regularly built or tested. 144 145 Other ``--universal-archs`` options are ``64-bit`` (``x86_64``, ``ppc64``), 146 and ``3-way`` (``ppc``, ``i386``, ``x86_64``). None of these options 147 are regularly exercised; use at your own risk. 148 50 149 51 150 Testing 52 151 ------- 53 152 54 The resulting binaries should work on MacOSX 10.3.9 or later. I usually run 55 the installer on a 10.3.9, a 10.4.x PPC and a 10.4.x Intel system and then 56 run the testsuite to make sure. 153 Ideally, the resulting binaries should be installed and the test suite run 154 on all supported OS X releases and architectures. As a practical matter, 155 that is generally not possible. At a minimum, variant 1 should be run on 156 a PPC G4 system with OS X 10.5 and at least one Intel system running OS X 157 10.8, 10.7, 10.6, or 10.5. Variant 2 should be run on 10.8, 10.7, and 10.6 158 systems in both 32-bit and 64-bit modes.:: 57 159 160 /usr/local/bin/pythonn.n -m test -w -u all,-largefile 161 /usr/local/bin/pythonn.n-32 -m test -w -u all 162 163 Certain tests will be skipped and some cause the interpreter to fail 164 which will likely generate ``Python quit unexpectedly`` alert messages 165 to be generated at several points during a test run. These are normal 166 during testing and can be ignored. 58 167 59 Announcements 60 ------------- 168 It is also recommend to launch IDLE and verify that it is at least 169 functional. Double-click on the IDLE app icon in ``/Applications/Pythonn.n``. 170 It should also be tested from the command line:: 61 171 62 (This is mostly of historic interest) 172 /usr/local/bin/idlen.n 63 173 64 When all is done, announcements can be posted to at least the following65 places:66 - pythonmac-sig@python.org67 - python-dev@python.org68 - python-announce@python.org69 - archivist@info-mac.org70 - adcnews@apple.com71 - news@macnn.com72 - http://www.macupdate.com73 - http://guide.apple.com/usindex.lasso74 - http://www.apple.com/downloads/macosx/submit75 - http://www.versiontracker.com/ (userid Jack.Jansen@oratrix.com)76 - http://www.macshareware.net (userid jackjansen)77 78 Also, check out Stephan Deibels http://pythonology.org/market contact list
Note:
See TracChangeset
for help on using the changeset viewer.
