Home | History | Annotate | only in /device/linaro/bootloader/edk2/AppPkg/Applications/Python/Python-2.7.10
Up to higher level directory
NameDateSize
Ia32/21-Aug-2018
Include/21-Aug-2018
Lib/21-Aug-2018
libprep.bat21-Aug-2018340
LICENSE21-Aug-201812.7K
Modules/21-Aug-2018
Objects/21-Aug-2018
Parser/21-Aug-2018
Py2710ReadMe.txt21-Aug-201812.4K
PyMod-2.7.10/21-Aug-2018
Python/21-Aug-2018
Python2710.inf21-Aug-20188.4K
README21-Aug-201853.9K
srcprep.bat21-Aug-2018336
X64/21-Aug-2018

README

      1 This is Python version 2.7.10
      2 =============================
      3 
      4 Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
      5 2012, 2013, 2014, 2015 Python Software Foundation.  All rights reserved.
      6 
      7 Copyright (c) 2000 BeOpen.com.
      8 All rights reserved.
      9 
     10 Copyright (c) 1995-2001 Corporation for National Research Initiatives.
     11 All rights reserved.
     12 
     13 Copyright (c) 1991-1995 Stichting Mathematisch Centrum.
     14 All rights reserved.
     15 
     16 
     17 License information
     18 -------------------
     19 
     20 See the file "LICENSE" for information on the history of this
     21 software, terms & conditions for usage, and a DISCLAIMER OF ALL
     22 WARRANTIES.
     23 
     24 This Python distribution contains no GNU General Public Licensed
     25 (GPLed) code so it may be used in proprietary projects just like prior
     26 Python distributions.  There are interfaces to some GNU code but these
     27 are entirely optional.
     28 
     29 All trademarks referenced herein are property of their respective
     30 holders.
     31 
     32 
     33 What's new in this release?
     34 ---------------------------
     35 
     36 See the file "Misc/NEWS".
     37 
     38 
     39 If you don't read instructions
     40 ------------------------------
     41 
     42 Congratulations on getting this far. :-)
     43 
     44 To start building right away (on UNIX): type "./configure" in the
     45 current directory and when it finishes, type "make".  This creates an
     46 executable "./python"; to install in /usr/local, first do "su root"
     47 and then "make install".
     48 
     49 The section `Build instructions' below is still recommended reading.
     50 
     51 
     52 What is Python anyway?
     53 ----------------------
     54 
     55 Python is an interpreted, interactive object-oriented programming
     56 language suitable (amongst other uses) for distributed application
     57 development, scripting, numeric computing and system testing.  Python
     58 is often compared to Tcl, Perl, Java, JavaScript, Visual Basic or
     59 Scheme.  To find out more about what Python can do for you, point your
     60 browser to http://www.python.org/.
     61 
     62 
     63 How do I learn Python?
     64 ----------------------
     65 
     66 The official tutorial is still a good place to start; see
     67 http://docs.python.org/ for online and downloadable versions, as well
     68 as a list of other introductions, and reference documentation.
     69 
     70 There's a quickly growing set of books on Python.  See
     71 http://wiki.python.org/moin/PythonBooks for a list.
     72 
     73 
     74 Documentation
     75 -------------
     76 
     77 All documentation is provided online in a variety of formats.  In
     78 order of importance for new users: Tutorial, Library Reference,
     79 Language Reference, Extending & Embedding, and the Python/C API.  The
     80 Library Reference is especially of immense value since much of
     81 Python's power is described there, including the built-in data types
     82 and functions!
     83 
     84 All documentation is also available online at the Python web site
     85 (http://docs.python.org/, see below).  It is available online for occasional
     86 reference, or can be downloaded in many formats for faster access.  The
     87 documentation is downloadable in HTML, PostScript, PDF, LaTeX, and
     88 reStructuredText (2.6+) formats; the LaTeX and reStructuredText versions are
     89 primarily for documentation authors, translators, and people with special
     90 formatting requirements.
     91 
     92 If you would like to contribute to the development of Python, relevant
     93 documentation is available at:
     94 
     95     http://docs.python.org/devguide/
     96 
     97 For information about building Python's documentation, refer to Doc/README.txt.
     98 
     99 
    100 Web sites
    101 ---------
    102 
    103 New Python releases and related technologies are published at
    104 http://www.python.org/.  Come visit us!
    105 
    106 
    107 Newsgroups and Mailing Lists
    108 ----------------------------
    109 
    110 Read comp.lang.python, a high-volume discussion newsgroup about
    111 Python, or comp.lang.python.announce, a low-volume moderated newsgroup
    112 for Python-related announcements.  These are also accessible as
    113 mailing lists: see http://www.python.org/community/lists/ for an
    114 overview of these and many other Python-related mailing lists.
    115 
    116 Archives are accessible via the Google Groups Usenet archive; see
    117 http://groups.google.com/.  The mailing lists are also archived, see
    118 http://www.python.org/community/lists/ for details.
    119 
    120 
    121 Bug reports
    122 -----------
    123 
    124 To report or search for bugs, please use the Python Bug
    125 Tracker at http://bugs.python.org/.
    126 
    127 
    128 Patches and contributions
    129 -------------------------
    130 
    131 To submit a patch or other contribution, please use the Python Patch
    132 Manager at http://bugs.python.org/.  Guidelines
    133 for patch submission may be found at http://www.python.org/dev/patches/.
    134 
    135 If you have a proposal to change Python, you may want to send an email to the
    136 comp.lang.python or python-ideas mailing lists for inital feedback. A Python
    137 Enhancement Proposal (PEP) may be submitted if your idea gains ground. All
    138 current PEPs, as well as guidelines for submitting a new PEP, are listed at
    139 http://www.python.org/dev/peps/.
    140 
    141 
    142 Questions
    143 ---------
    144 
    145 For help, if you can't find it in the manuals or on the web site, it's
    146 best to post to the comp.lang.python or the Python mailing list (see
    147 above).  If you specifically don't want to involve the newsgroup or
    148 mailing list, send questions to help (a] python.org (a group of volunteers
    149 who answer questions as they can).  The newsgroup is the most
    150 efficient way to ask public questions.
    151 
    152 
    153 Build instructions
    154 ==================
    155 
    156 Before you can build Python, you must first configure it.
    157 Fortunately, the configuration and build process has been automated
    158 for Unix and Linux installations, so all you usually have to do is
    159 type a few commands and sit back.  There are some platforms where
    160 things are not quite as smooth; see the platform specific notes below.
    161 If you want to build for multiple platforms sharing the same source
    162 tree, see the section on VPATH below.
    163 
    164 Start by running the script "./configure", which determines your
    165 system configuration and creates the Makefile.  (It takes a minute or
    166 two -- please be patient!)  You may want to pass options to the
    167 configure script -- see the section below on configuration options and
    168 variables.  When it's done, you are ready to run make.
    169 
    170 To build Python, you normally type "make" in the toplevel directory.
    171 If you have changed the configuration, the Makefile may have to be
    172 rebuilt.  In this case, you may have to run make again to correctly
    173 build your desired target.  The interpreter executable is built in the
    174 top level directory.
    175 
    176 Once you have built a Python interpreter, see the subsections below on
    177 testing and installation.  If you run into trouble, see the next
    178 section.
    179 
    180 Previous versions of Python used a manual configuration process that
    181 involved editing the file Modules/Setup.  While this file still exists
    182 and manual configuration is still supported, it is rarely needed any
    183 more: almost all modules are automatically built as appropriate under
    184 guidance of the setup.py script, which is run by Make after the
    185 interpreter has been built.
    186 
    187 
    188 Troubleshooting
    189 ---------------
    190 
    191 See also the platform specific notes in the next section.
    192 
    193 If you run into other trouble, see the FAQ
    194 (http://www.python.org/doc/faq/) for hints on what can go wrong, and
    195 how to fix it.
    196 
    197 If you rerun the configure script with different options, remove all
    198 object files by running "make clean" before rebuilding.  Believe it or
    199 not, "make clean" sometimes helps to clean up other inexplicable
    200 problems as well.  Try it before sending in a bug report!
    201 
    202 If the configure script fails or doesn't seem to find things that
    203 should be there, inspect the config.log file.
    204 
    205 If you get a warning for every file about the -Olimit option being no
    206 longer supported, you can ignore it.  There's no foolproof way to know
    207 whether this option is needed; all we can do is test whether it is
    208 accepted without error.  On some systems, e.g. older SGI compilers, it
    209 is essential for performance (specifically when compiling ceval.c,
    210 which has more basic blocks than the default limit of 1000).  If the
    211 warning bothers you, edit the Makefile to remove "-Olimit 1500" from
    212 the OPT variable.
    213 
    214 If you get failures in test_long, or sys.maxint gets set to -1, you
    215 are probably experiencing compiler bugs, usually related to
    216 optimization.  This is a common problem with some versions of gcc, and
    217 some vendor-supplied compilers, which can sometimes be worked around
    218 by turning off optimization.  Consider switching to stable versions
    219 (gcc 2.95.2, gcc 3.x, or contact your vendor.)
    220 
    221 From Python 2.0 onward, all Python C code is ANSI C.  Compiling using
    222 old K&R-C-only compilers is no longer possible.  ANSI C compilers are
    223 available for all modern systems, either in the form of updated
    224 compilers from the vendor, or one of the free compilers (gcc).
    225 
    226 If "make install" fails mysteriously during the "compiling the library"
    227 step, make sure that you don't have any of the PYTHONPATH or PYTHONHOME
    228 environment variables set, as they may interfere with the newly built
    229 executable which is compiling the library.
    230 
    231 Unsupported systems
    232 -------------------
    233 
    234 A number of systems are not supported in Python 2.7 anymore. Some
    235 support code is still present, but will be removed in later versions.
    236 If you still need to use current Python versions on these systems,
    237 please send a message to python-dev (a] python.org indicating that you
    238 volunteer to support this system. For a more detailed discussion 
    239 regarding no-longer-supported and resupporting platforms, as well
    240 as a list of platforms that became or will be unsupported, see PEP 11.
    241 
    242 More specifically, the following systems are not supported any
    243 longer:
    244 - SunOS 4
    245 - DYNIX
    246 - dgux
    247 - Minix
    248 - NeXT
    249 - Irix 4 and --with-sgi-dl
    250 - Linux 1
    251 - Systems defining __d6_pthread_create (configure.ac)
    252 - Systems defining PY_PTHREAD_D4, PY_PTHREAD_D6,
    253   or PY_PTHREAD_D7 in thread_pthread.h
    254 - Systems using --with-dl-dld
    255 - Systems using --without-universal-newlines
    256 - MacOS 9
    257 - Systems using --with-wctype-functions
    258 - Win9x, WinME
    259 
    260 
    261 Platform specific notes
    262 -----------------------
    263 
    264 (Some of these may no longer apply.  If you find you can build Python
    265 on these platforms without the special directions mentioned here,
    266 submit a documentation bug report to SourceForge (see Bug Reports
    267 above) so we can remove them!)
    268 
    269 Unix platforms: If your vendor still ships (and you still use) Berkeley DB
    270         1.85 you will need to edit Modules/Setup to build the bsddb185
    271         module and add a line to sitecustomize.py which makes it the
    272         default.  In Modules/Setup a line like
    273 
    274             bsddb185 bsddbmodule.c
    275 
    276         should work.  (You may need to add -I, -L or -l flags to direct the
    277         compiler and linker to your include files and libraries.)
    278 
    279 XXX I think this next bit is out of date:
    280 
    281 64-bit platforms: The modules audioop, and imageop don't work.
    282         The setup.py script disables them on 64-bit installations.
    283         Don't try to enable them in the Modules/Setup file.  They
    284         contain code that is quite wordsize sensitive.  (If you have a
    285         fix, let us know!)
    286 
    287 Solaris: When using Sun's C compiler with threads, at least on Solaris
    288         2.5.1, you need to add the "-mt" compiler option (the simplest
    289         way is probably to specify the compiler with this option as
    290         the "CC" environment variable when running the configure
    291         script).
    292 
    293         When using GCC on Solaris, beware of binutils 2.13 or GCC
    294         versions built using it.  This mistakenly enables the
    295         -zcombreloc option which creates broken shared libraries on
    296         Solaris.  binutils 2.12 works, and the binutils maintainers
    297         are aware of the problem.  Binutils 2.13.1 only partially
    298         fixed things.  It appears that 2.13.2 solves the problem
    299         completely.  This problem is known to occur with Solaris 2.7
    300         and 2.8, but may also affect earlier and later versions of the
    301         OS.
    302 
    303         When the dynamic loader complains about errors finding shared
    304         libraries, such as
    305 
    306         ld.so.1: ./python: fatal: libstdc++.so.5: open failed:
    307         No such file or directory
    308 
    309         you need to first make sure that the library is available on
    310         your system. Then, you need to instruct the dynamic loader how
    311         to find it. You can choose any of the following strategies:
    312 
    313         1. When compiling Python, set LD_RUN_PATH to the directories
    314            containing missing libraries.
    315         2. When running Python, set LD_LIBRARY_PATH to these directories.
    316         3. Use crle(8) to extend the search path of the loader.
    317         4. Modify the installed GCC specs file, adding -R options into the
    318            *link: section.
    319 
    320         The complex object fails to compile on Solaris 10 with gcc 3.4 (at
    321         least up to 3.4.3).  To work around it, define Py_HUGE_VAL as
    322         HUGE_VAL(), e.g.:
    323 
    324           make CPPFLAGS='-D"Py_HUGE_VAL=HUGE_VAL()" -I. -I$(srcdir)/Include'
    325           ./python setup.py CPPFLAGS='-D"Py_HUGE_VAL=HUGE_VAL()"'
    326 
    327 Linux:  A problem with threads and fork() was tracked down to a bug in
    328         the pthreads code in glibc version 2.0.5; glibc version 2.0.7
    329         solves the problem.  This causes the popen2 test to fail;
    330         problem and solution reported by Pablo Bleyer.
    331 
    332 Red Hat Linux: Red Hat 9 built Python2.2 in UCS-4 mode and hacked
    333         Tcl to support it. To compile Python2.3 with Tkinter, you will
    334         need to pass --enable-unicode=ucs4 flag to ./configure.
    335 
    336         There's an executable /usr/bin/python which is Python
    337         1.5.2 on most older Red Hat installations; several key Red Hat tools
    338         require this version.  Python 2.1.x may be installed as
    339         /usr/bin/python2.  The Makefile installs Python as
    340         /usr/local/bin/python, which may or may not take precedence
    341         over /usr/bin/python, depending on how you have set up $PATH.
    342 
    343 FreeBSD 3.x and probably platforms with NCurses that use libmytinfo or
    344         similar: When using cursesmodule, the linking is not done in
    345         the correct order with the defaults.  Remove "-ltermcap" from
    346         the readline entry in Setup, and use as curses entry: "curses
    347         cursesmodule.c -lmytinfo -lncurses -ltermcap" - "mytinfo" (so
    348         called on FreeBSD) should be the name of the auxiliary library
    349         required on your platform.  Normally, it would be linked
    350         automatically, but not necessarily in the correct order.
    351 
    352 BSDI:   BSDI versions before 4.1 have known problems with threads,
    353         which can cause strange errors in a number of modules (for
    354         instance, the 'test_signal' test script will hang forever.)
    355         Turning off threads (with --with-threads=no) or upgrading to
    356         BSDI 4.1 solves this problem.
    357 
    358 DEC Unix: Run configure with --with-dec-threads, or with
    359         --with-threads=no if no threads are desired (threads are on by
    360         default).  When using GCC, it is possible to get an internal
    361         compiler error if optimization is used.  This was reported for
    362         GCC 2.7.2.3 on selectmodule.c.  Manually compile the affected
    363         file without optimization to solve the problem.
    364 
    365 DEC Ultrix: compile with GCC to avoid bugs in the native compiler,
    366         and pass SHELL=/bin/sh5 to Make when installing.
    367 
    368 AIX:    A complete overhaul of the shared library support is now in
    369         place.  See Misc/AIX-NOTES for some notes on how it's done.
    370         (The optimizer bug reported at this place in previous releases
    371         has been worked around by a minimal code change.) If you get
    372         errors about pthread_* functions, during compile or during
    373         testing, try setting CC to a thread-safe (reentrant) compiler,
    374         like "cc_r".  For full C++ module support, set CC="xlC_r" (or
    375         CC="xlC" without thread support).
    376 
    377 AIX 5.3: To build a 64-bit version with IBM's compiler, I used the
    378         following:
    379 
    380         export PATH=/usr/bin:/usr/vacpp/bin
    381         ./configure --with-gcc="xlc_r -q64" --with-cxx="xlC_r -q64" \
    382                     --disable-ipv6 AR="ar -X64"
    383         make
    384 
    385 HP-UX:  When using threading, you may have to add -D_REENTRANT to the
    386         OPT variable in the top-level Makefile; reported by Pat Knight,
    387         this seems to make a difference (at least for HP-UX 10.20)
    388         even though pyconfig.h defines it. This seems unnecessary when
    389         using HP/UX 11 and later - threading seems to work "out of the
    390         box".
    391 
    392 HP-UX ia64: When building on the ia64 (Itanium) platform using HP's
    393         compiler, some experience has shown that the compiler's
    394         optimiser produces a completely broken version of python
    395         (see http://bugs.python.org/814976). To work around this,
    396         edit the Makefile and remove -O from the OPT line.
    397 
    398         To build a 64-bit executable on an Itanium 2 system using HP's
    399         compiler, use these environment variables:
    400 
    401                 CC=cc
    402                 CXX=aCC
    403                 BASECFLAGS="+DD64"
    404                 LDFLAGS="+DD64 -lxnet"
    405 
    406         and call configure as:
    407 
    408                 ./configure --without-gcc
    409 
    410         then *unset* the environment variables again before running
    411         make.  (At least one of these flags causes the build to fail
    412         if it remains set.)  You still have to edit the Makefile and
    413         remove -O from the OPT line.
    414 
    415 HP PA-RISC 2.0: A recent bug report (http://bugs.python.org/546117)
    416         suggests that the C compiler in this 64-bit system has bugs
    417         in the optimizer that break Python.  Compiling without
    418         optimization solves the problems.
    419 
    420 SCO:    The following apply to SCO 3 only; Python builds out of the box
    421         on SCO 5 (or so we've heard).
    422 
    423         1) Everything works much better if you add -U__STDC__ to the
    424         defs.  This is because all the SCO header files are broken.
    425         Anything that isn't mentioned in the C standard is
    426         conditionally excluded when __STDC__ is defined.
    427 
    428         2) Due to the U.S. export restrictions, SCO broke the crypt
    429         stuff out into a separate library, libcrypt_i.a so the LIBS
    430         needed be set to:
    431 
    432                 LIBS=' -lsocket -lcrypt_i'
    433 
    434 UnixWare: There are known bugs in the math library of the system, as well as
    435         problems in the handling of threads (calling fork in one
    436         thread may interrupt system calls in others). Therefore, test_math and
    437         tests involving threads will fail until those problems are fixed.
    438 
    439 QNX:    Chris Herborth (chrish (a] qnx.com) writes:
    440         configure works best if you use GNU bash; a port is available on
    441         ftp.qnx.com in /usr/free.  I used the following process to build,
    442         test and install Python 1.5.x under QNX:
    443 
    444         1) CONFIG_SHELL=/usr/local/bin/bash CC=cc RANLIB=: \
    445             ./configure --verbose --without-gcc --with-libm=""
    446 
    447         2) edit Modules/Setup to activate everything that makes sense for
    448            your system... tested here at QNX with the following modules:
    449 
    450                 array, audioop, binascii, cPickle, cStringIO, cmath,
    451                 crypt, curses, errno, fcntl, gdbm, grp, imageop,
    452                 _locale, math, md5, new, operator, parser, pcre,
    453                 posix, pwd, readline, regex, reop,
    454                 select, signal, socket, soundex, strop, struct,
    455                 syslog, termios, time, timing, zlib, audioop, imageop
    456 
    457         3) make SHELL=/usr/local/bin/bash
    458 
    459            or, if you feel the need for speed:
    460 
    461            make SHELL=/usr/local/bin/bash OPT="-5 -Oil+nrt"
    462 
    463         4) make SHELL=/usr/local/bin/bash test
    464 
    465            Using GNU readline 2.2 seems to behave strangely, but I
    466            think that's a problem with my readline 2.2 port.  :-\
    467 
    468         5) make SHELL=/usr/local/bin/bash install
    469 
    470         If you get SIGSEGVs while running Python (I haven't yet, but
    471         I've only run small programs and the test cases), you're
    472         probably running out of stack; the default 32k could be a
    473         little tight.  To increase the stack size, edit the Makefile
    474         to read: LDFLAGS = -N 48k
    475 
    476 BeOS:   See Misc/BeOS-NOTES for notes about compiling/installing
    477         Python on BeOS R3 or later.  Note that only the PowerPC
    478         platform is supported for R3; both PowerPC and x86 are
    479         supported for R4.
    480 
    481 Cray T3E: Mark Hadfield (m.hadfield (a] niwa.co.nz) writes:
    482         Python can be built satisfactorily on a Cray T3E but based on
    483         my experience with the NIWA T3E (2002-05-22, version 2.2.1)
    484         there are a few bugs and gotchas. For more information see a
    485         thread on comp.lang.python in May 2002 entitled "Building
    486         Python on Cray T3E".
    487 
    488         1) Use Cray's cc and not gcc. The latter was reported not to
    489            work by Konrad Hinsen. It may work now, but it may not.
    490 
    491         2) To set sys.platform to something sensible, pass the
    492            following environment variable to the configure script:
    493 
    494              MACHDEP=unicosmk
    495 
    496         2) Run configure with option "--enable-unicode=ucs4".
    497 
    498         3) The Cray T3E does not support dynamic linking, so extension
    499            modules have to be built by adding (or uncommenting) lines
    500            in Modules/Setup. The minimum set of modules is
    501 
    502              posix, new, _sre, unicodedata
    503 
    504            On NIWA's vanilla T3E system the following have also been
    505            included successfully:
    506 
    507              _codecs, _locale, _socket, _symtable, _testcapi, _weakref
    508              array, binascii, cmath, cPickle, crypt, cStringIO, dbm
    509              errno, fcntl, grp, math, md5, operator, parser, pcre, pwd
    510              regex, rotor, select, struct, strop, syslog, termios
    511              time, timing, xreadlines
    512 
    513         4) Once the python executable and library have been built, make
    514            will execute setup.py, which will attempt to build remaining
    515            extensions and link them dynamically. Each of these attempts
    516            will fail but should not halt the make process. This is
    517            normal.
    518 
    519         5) Running "make test" uses a lot of resources and causes
    520            problems on our system. You might want to try running tests
    521            singly or in small groups.
    522 
    523 SGI:    SGI's standard "make" utility (/bin/make or /usr/bin/make)
    524         does not check whether a command actually changed the file it
    525         is supposed to build.  This means that whenever you say "make"
    526         it will redo the link step.  The remedy is to use SGI's much
    527         smarter "smake" utility (/usr/sbin/smake), or GNU make.  If
    528         you set the first line of the Makefile to #!/usr/sbin/smake
    529         smake will be invoked by make (likewise for GNU make).
    530 
    531         WARNING: There are bugs in the optimizer of some versions of
    532         SGI's compilers that can cause bus errors or other strange
    533         behavior, especially on numerical operations.  To avoid this,
    534         try building with "make OPT=".
    535 
    536 OS/2:   If you are running Warp3 or Warp4 and have IBM's VisualAge C/C++
    537         compiler installed, just change into the pc\os2vacpp directory
    538         and type NMAKE.  Threading and sockets are supported by default
    539         in the resulting binaries of PYTHON15.DLL and PYTHON.EXE.
    540 
    541 Reliant UNIX: The thread support does not compile on Reliant UNIX, and
    542         there is a (minor) problem in the configure script for that
    543         platform as well.  This should be resolved in time for a
    544         future release.
    545 
    546 MacOSX: The tests will crash on both 10.1 and 10.2 with SEGV in
    547         test_re and test_sre due to the small default stack size.  If
    548         you set the stack size to 2048 before doing a "make test" the
    549         failure can be avoided.  If you're using the tcsh or csh shells,
    550         use "limit stacksize 2048" and for the bash shell (the default
    551         as of OSX 10.3), use "ulimit -s 2048".
    552 
    553         On naked Darwin you may want to add the configure option
    554         "--disable-toolbox-glue" to disable the glue code for the Carbon
    555         interface modules. The modules themselves are currently only built
    556         if you add the --enable-framework option, see below.
    557 
    558         On a clean OSX /usr/local does not exist. Do a
    559         "sudo mkdir -m 775 /usr/local"
    560         before you do a make install. It is probably not a good idea to
    561         do "sudo make install" which installs everything as superuser,
    562         as this may later cause problems when installing distutils-based
    563         additions.
    564 
    565         Some people have reported problems building Python after using "fink"
    566         to install additional unix software. Disabling fink (remove all 
    567         references to /sw from your .profile or .login) should solve this.
    568 
    569         You may want to try the configure option "--enable-framework"
    570         which installs Python as a framework. The location can be set
    571         as argument to the --enable-framework option (default
    572         /Library/Frameworks). A framework install is probably needed if you
    573         want to use any Aqua-based GUI toolkit (whether Tkinter, wxPython,
    574         Carbon, Cocoa or anything else).
    575 
    576         You may also want to try the configure option "--enable-universalsdk"
    577         which builds Python as a universal binary with support for the 
    578         i386 and PPC architetures. This requires Xcode 2.1 or later to build.
    579 
    580         See Mac/README for more information on framework and 
    581         universal builds.
    582 
    583 Cygwin: With recent (relative to the time of writing, 2001-12-19)
    584         Cygwin installations, there are problems with the interaction
    585         of dynamic linking and fork().  This manifests itself in build
    586         failures during the execution of setup.py.
    587 
    588         There are two workarounds that both enable Python (albeit
    589         without threading support) to build and pass all tests on
    590         NT/2000 (and most likely XP as well, though reports of testing
    591         on XP would be appreciated).
    592 
    593         The workarounds:
    594 
    595         (a) the band-aid fix is to link the _socket module statically
    596         rather than dynamically (which is the default).
    597 
    598         To do this, run "./configure --with-threads=no" including any
    599         other options you need (--prefix, etc.).  Then in Modules/Setup
    600         uncomment the lines:
    601 
    602         #SSL=/usr/local/ssl
    603         #_socket socketmodule.c \
    604         #       -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
    605         #       -L$(SSL)/lib -lssl -lcrypto
    606 
    607         and remove "local/" from the SSL variable.  Finally, just run
    608         "make"!
    609 
    610         (b) The "proper" fix is to rebase the Cygwin DLLs to prevent
    611         base address conflicts.  Details on how to do this can be
    612         found in the following mail:
    613 
    614            http://sources.redhat.com/ml/cygwin/2001-12/msg00894.html
    615 
    616         It is hoped that a version of this solution will be
    617         incorporated into the Cygwin distribution fairly soon.
    618 
    619         Two additional problems:
    620 
    621         (1) Threading support should still be disabled due to a known
    622         bug in Cygwin pthreads that causes test_threadedtempfile to
    623         hang.
    624 
    625         (2) The _curses module does not build.  This is a known
    626         Cygwin ncurses problem that should be resolved the next time
    627         that this package is released.
    628 
    629         On older versions of Cygwin, test_poll may hang and test_strftime
    630         may fail.
    631 
    632         The situation on 9X/Me is not accurately known at present.
    633         Some time ago, there were reports that the following
    634         regression tests failed:
    635 
    636             test_pwd
    637             test_select (hang)
    638             test_socket
    639 
    640         Due to the test_select hang on 9X/Me, one should run the
    641         regression test using the following:
    642 
    643             make TESTOPTS='-l -x test_select' test
    644 
    645         News regarding these platforms with more recent Cygwin
    646         versions would be appreciated!
    647 
    648 Windows: When executing Python scripts on the command line using file type
    649         associations (i.e. starting "script.py" instead of "python script.py"),
    650         redirects may not work unless you set a specific registry key.  See
    651         the Knowledge Base article <http://support.microsoft.com/kb/321788>.
    652 
    653 
    654 Configuring the bsddb and dbm modules
    655 -------------------------------------
    656 
    657 Beginning with Python version 2.3, the PyBsddb package
    658 <http://pybsddb.sf.net/> was adopted into Python as the bsddb package,
    659 exposing a set of package-level functions which provide
    660 backwards-compatible behavior.  Only versions 3.3 through 4.4 of
    661 Sleepycat's libraries provide the necessary API, so older versions
    662 aren't supported through this interface.  The old bsddb module has
    663 been retained as bsddb185, though it is not built by default.  Users
    664 wishing to use it will have to tweak Modules/Setup to build it.  The
    665 dbm module will still be built against the Sleepycat libraries if
    666 other preferred alternatives (ndbm, gdbm) are not found.
    667 
    668 Building the sqlite3 module
    669 ---------------------------
    670 
    671 To build the sqlite3 module, you'll need the sqlite3 or libsqlite3
    672 packages installed, including the header files. Many modern operating
    673 systems distribute the headers in a separate package to the library -
    674 often it will be the same name as the main package, but with a -dev or
    675 -devel suffix. 
    676 
    677 The version of pysqlite2 that's including in Python needs sqlite3 3.0.8
    678 or later. setup.py attempts to check that it can find a correct version.
    679 
    680 Configuring threads
    681 -------------------
    682 
    683 As of Python 2.0, threads are enabled by default.  If you wish to
    684 compile without threads, or if your thread support is broken, pass the
    685 --with-threads=no switch to configure.  Unfortunately, on some
    686 platforms, additional compiler and/or linker options are required for
    687 threads to work properly.  Below is a table of those options,
    688 collected by Bill Janssen.  We would love to automate this process
    689 more, but the information below is not enough to write a patch for the
    690 configure.ac file, so manual intervention is required.  If you patch
    691 the configure.ac file and are confident that the patch works, please
    692 send in the patch.  (Don't bother patching the configure script itself
    693 -- it is regenerated each time the configure.ac file changes.)
    694 
    695 Compiler switches for threads
    696 .............................
    697 
    698 The definition of _REENTRANT should be configured automatically, if
    699 that does not work on your system, or if _REENTRANT is defined
    700 incorrectly, please report that as a bug.
    701 
    702     OS/Compiler/threads                     Switches for use with threads
    703     (POSIX is draft 10, DCE is draft 4)     compile & link
    704 
    705     SunOS 5.{1-5}/{gcc,SunPro cc}/solaris   -mt
    706     SunOS 5.5/{gcc,SunPro cc}/POSIX         (nothing)
    707     DEC OSF/1 3.x/cc/DCE                    -threads
    708             (butenhof (a] zko.dec.com)
    709     Digital UNIX 4.x/cc/DCE                 -threads
    710             (butenhof (a] zko.dec.com)
    711     Digital UNIX 4.x/cc/POSIX               -pthread
    712             (butenhof (a] zko.dec.com)
    713     AIX 4.1.4/cc_r/d7                       (nothing)
    714             (buhrt (a] iquest.net)
    715     AIX 4.1.4/cc_r4/DCE                     (nothing)
    716             (buhrt (a] iquest.net)
    717     IRIX 6.2/cc/POSIX                       (nothing)
    718             (robertl (a] cwi.nl)
    719 
    720 
    721 Linker (ld) libraries and flags for threads
    722 ...........................................
    723 
    724     OS/threads                          Libraries/switches for use with threads
    725 
    726     SunOS 5.{1-5}/solaris               -lthread
    727     SunOS 5.5/POSIX                     -lpthread
    728     DEC OSF/1 3.x/DCE                   -lpthreads -lmach -lc_r -lc
    729             (butenhof (a] zko.dec.com)
    730     Digital UNIX 4.x/DCE                -lpthreads -lpthread -lmach -lexc -lc
    731             (butenhof (a] zko.dec.com)
    732     Digital UNIX 4.x/POSIX              -lpthread -lmach -lexc -lc
    733             (butenhof (a] zko.dec.com)
    734     AIX 4.1.4/{draft7,DCE}              (nothing)
    735             (buhrt (a] iquest.net)
    736     IRIX 6.2/POSIX                      -lpthread
    737             (jph (a] emilia.engr.sgi.com)
    738 
    739 
    740 Building a shared libpython
    741 ---------------------------
    742 
    743 Starting with Python 2.3, the majority of the interpreter can be built
    744 into a shared library, which can then be used by the interpreter
    745 executable, and by applications embedding Python. To enable this feature,
    746 configure with --enable-shared.
    747 
    748 If you enable this feature, the same object files will be used to create
    749 a static library.  In particular, the static library will contain object
    750 files using position-independent code (PIC) on platforms where PIC flags
    751 are needed for the shared library.
    752 
    753 
    754 Configuring additional built-in modules
    755 ---------------------------------------
    756 
    757 Starting with Python 2.1, the setup.py script at the top of the source
    758 distribution attempts to detect which modules can be built and
    759 automatically compiles them.  Autodetection doesn't always work, so
    760 you can still customize the configuration by editing the Modules/Setup
    761 file; but this should be considered a last resort.  The rest of this
    762 section only applies if you decide to edit the Modules/Setup file.
    763 You also need this to enable static linking of certain modules (which
    764 is needed to enable profiling on some systems).
    765 
    766 This file is initially copied from Setup.dist by the configure script;
    767 if it does not exist yet, create it by copying Modules/Setup.dist
    768 yourself (configure will never overwrite it).  Never edit Setup.dist
    769 -- always edit Setup or Setup.local (see below).  Read the comments in
    770 the file for information on what kind of edits are allowed.  When you
    771 have edited Setup in the Modules directory, the interpreter will
    772 automatically be rebuilt the next time you run make (in the toplevel
    773 directory).
    774 
    775 Many useful modules can be built on any Unix system, but some optional
    776 modules can't be reliably autodetected.  Often the quickest way to
    777 determine whether a particular module works or not is to see if it
    778 will build: enable it in Setup, then if you get compilation or link
    779 errors, disable it -- you're either missing support or need to adjust
    780 the compilation and linking parameters for that module.
    781 
    782 On SGI IRIX, there are modules that interface to many SGI specific
    783 system libraries, e.g. the GL library and the audio hardware.  These
    784 modules will not be built by the setup.py script.
    785 
    786 In addition to the file Setup, you can also edit the file Setup.local.
    787 (the makesetup script processes both).  You may find it more
    788 convenient to edit Setup.local and leave Setup alone.  Then, when
    789 installing a new Python version, you can copy your old Setup.local
    790 file.
    791 
    792 
    793 Setting the optimization/debugging options
    794 ------------------------------------------
    795 
    796 If you want or need to change the optimization/debugging options for
    797 the C compiler, assign to the OPT variable on the toplevel make
    798 command; e.g. "make OPT=-g" will build a debugging version of Python
    799 on most platforms.  The default is OPT=-O; a value for OPT in the
    800 environment when the configure script is run overrides this default
    801 (likewise for CC; and the initial value for LIBS is used as the base
    802 set of libraries to link with).
    803 
    804 When compiling with GCC, the default value of OPT will also include
    805 the -Wall and -Wstrict-prototypes options.
    806 
    807 Additional debugging code to help debug memory management problems can
    808 be enabled by using the --with-pydebug option to the configure script.
    809 
    810 For flags that change binary compatibility, use the EXTRA_CFLAGS
    811 variable.
    812 
    813 
    814 Profiling
    815 ---------
    816 
    817 If you want C profiling turned on, the easiest way is to run configure
    818 with the CC environment variable to the necessary compiler
    819 invocation.  For example, on Linux, this works for profiling using
    820 gprof(1):
    821 
    822     CC="gcc -pg" ./configure
    823 
    824 Note that on Linux, gprof apparently does not work for shared
    825 libraries.  The Makefile/Setup mechanism can be used to compile and
    826 link most extension modules statically.
    827 
    828 
    829 Coverage checking
    830 -----------------
    831 
    832 For C coverage checking using gcov, run "make coverage".  This will
    833 build a Python binary with profiling activated, and a ".gcno" and
    834 ".gcda" file for every source file compiled with that option.  With
    835 the built binary, now run the code whose coverage you want to check.
    836 Then, you can see coverage statistics for each individual source file
    837 by running gcov, e.g.
    838 
    839     gcov -o Modules zlibmodule
    840 
    841 This will create a "zlibmodule.c.gcov" file in the current directory
    842 containing coverage info for that source file.
    843 
    844 This works only for source files statically compiled into the
    845 executable; use the Makefile/Setup mechanism to compile and link
    846 extension modules you want to coverage-check statically.
    847 
    848 
    849 Testing
    850 -------
    851 
    852 To test the interpreter, type "make test" in the top-level directory.
    853 This runs the test set twice (once with no compiled files, once with
    854 the compiled files left by the previous test run).  The test set
    855 produces some output.  You can generally ignore the messages about
    856 skipped tests due to optional features which can't be imported.
    857 If a message is printed about a failed test or a traceback or core
    858 dump is produced, something is wrong.  On some Linux systems (those
    859 that are not yet using glibc 6), test_strftime fails due to a
    860 non-standard implementation of strftime() in the C library. Please
    861 ignore this, or upgrade to glibc version 6.
    862 
    863 By default, tests are prevented from overusing resources like disk space and
    864 memory.  To enable these tests, run "make testall".
    865 
    866 IMPORTANT: If the tests fail and you decide to mail a bug report,
    867 *don't* include the output of "make test".  It is useless.  Run the
    868 failing test manually, as follows:
    869 
    870         ./python Lib/test/regrtest.py -v test_whatever
    871 
    872 (substituting the top of the source tree for '.' if you built in a
    873 different directory).  This runs the test in verbose mode.
    874 
    875 
    876 Installing
    877 ----------
    878 
    879 To install the Python binary, library modules, shared library modules
    880 (see below), include files, configuration files, and the manual page,
    881 just type
    882 
    883         make install
    884 
    885 This will install all platform-independent files in subdirectories of
    886 the directory given with the --prefix option to configure or to the
    887 `prefix' Make variable (default /usr/local).  All binary and other
    888 platform-specific files will be installed in subdirectories if the
    889 directory given by --exec-prefix or the `exec_prefix' Make variable
    890 (defaults to the --prefix directory) is given.
    891 
    892 If DESTDIR is set, it will be taken as the root directory of the
    893 installation, and files will be installed into $(DESTDIR)$(prefix),
    894 $(DESTDIR)$(exec_prefix), etc.
    895 
    896 All subdirectories created will have Python's version number in their
    897 name, e.g. the library modules are installed in
    898 "/usr/local/lib/python<version>/" by default, where <version> is the
    899 <major>.<minor> release number (e.g. "2.1").  The Python binary is
    900 installed as "python<version>" and a hard link named "python" is
    901 created.  The only file not installed with a version number in its
    902 name is the manual page, installed as "/usr/local/man/man1/python.1"
    903 by default.
    904 
    905 If you want to install multiple versions of Python see the section below
    906 entitled "Installing multiple versions".
    907 
    908 The only thing you may have to install manually is the Python mode for
    909 Emacs found in Misc/python-mode.el.  (But then again, more recent
    910 versions of Emacs may already have it.)  Follow the instructions that
    911 came with Emacs for installation of site-specific files.
    912 
    913 On Mac OS X, if you have configured Python with --enable-framework, you
    914 should use "make frameworkinstall" to do the installation. Note that this
    915 installs the Python executable in a place that is not normally on your
    916 PATH, you may want to set up a symlink in /usr/local/bin.
    917 
    918 
    919 Installing multiple versions
    920 ----------------------------
    921 
    922 On Unix and Mac systems if you intend to install multiple versions of Python
    923 using the same installation prefix (--prefix argument to the configure
    924 script) you must take care that your primary python executable is not
    925 overwritten by the installation of a different version.  All files and
    926 directories installed using "make altinstall" contain the major and minor
    927 version and can thus live side-by-side.  "make install" also creates
    928 ${prefix}/bin/python which refers to ${prefix}/bin/pythonX.Y.  If you intend
    929 to install multiple versions using the same prefix you must decide which
    930 version (if any) is your "primary" version.  Install that version using
    931 "make install".  Install all other versions using "make altinstall".
    932 
    933 For example, if you want to install Python 2.5, 2.6 and 3.0 with 2.6 being
    934 the primary version, you would execute "make install" in your 2.6 build
    935 directory and "make altinstall" in the others.
    936 
    937 
    938 Configuration options and variables
    939 -----------------------------------
    940 
    941 Some special cases are handled by passing options to the configure
    942 script.
    943 
    944 WARNING: if you rerun the configure script with different options, you
    945 must run "make clean" before rebuilding.  Exceptions to this rule:
    946 after changing --prefix or --exec-prefix, all you need to do is remove
    947 Modules/getpath.o.
    948 
    949 --with(out)-gcc: The configure script uses gcc (the GNU C compiler) if
    950         it finds it.  If you don't want this, or if this compiler is
    951         installed but broken on your platform, pass the option
    952         --without-gcc.  You can also pass "CC=cc" (or whatever the
    953         name of the proper C compiler is) in the environment, but the
    954         advantage of using --without-gcc is that this option is
    955         remembered by the config.status script for its --recheck
    956         option.
    957 
    958 --prefix, --exec-prefix: If you want to install the binaries and the
    959         Python library somewhere else than in /usr/local/{bin,lib},
    960         you can pass the option --prefix=DIRECTORY; the interpreter
    961         binary will be installed as DIRECTORY/bin/python and the
    962         library files as DIRECTORY/lib/python/*.  If you pass
    963         --exec-prefix=DIRECTORY (as well) this overrides the
    964         installation prefix for architecture-dependent files (like the
    965         interpreter binary).  Note that --prefix=DIRECTORY also
    966         affects the default module search path (sys.path), when
    967         Modules/config.c is compiled.  Passing make the option
    968         prefix=DIRECTORY (and/or exec_prefix=DIRECTORY) overrides the
    969         prefix set at configuration time; this may be more convenient
    970         than re-running the configure script if you change your mind
    971         about the install prefix.
    972 
    973 --with-readline: This option is no longer supported.  GNU
    974         readline is automatically enabled by setup.py when present.
    975 
    976 --with-threads: On most Unix systems, you can now use multiple
    977         threads, and support for this is enabled by default.  To
    978         disable this, pass --with-threads=no.  If the library required
    979         for threads lives in a peculiar place, you can use
    980         --with-thread=DIRECTORY.  IMPORTANT: run "make clean" after
    981         changing (either enabling or disabling) this option, or you
    982         will get link errors!  Note: for DEC Unix use
    983         --with-dec-threads instead.
    984 
    985 --with-sgi-dl: On SGI IRIX 4, dynamic loading of extension modules is
    986         supported by the "dl" library by Jack Jansen, which is
    987         ftp'able from ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z.
    988         This is enabled (after you've ftp'ed and compiled the dl
    989         library) by passing --with-sgi-dl=DIRECTORY where DIRECTORY
    990         is the absolute pathname of the dl library.  (Don't bother on
    991         IRIX 5, it already has dynamic linking using SunOS style
    992         shared libraries.)  THIS OPTION IS UNSUPPORTED.
    993 
    994 --with-dl-dld: Dynamic loading of modules is rumored to be supported
    995         on some other systems: VAX (Ultrix), Sun3 (SunOS 3.4), Sequent
    996         Symmetry (Dynix), and Atari ST.  This is done using a
    997         combination of the GNU dynamic loading package
    998         (ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z) and an
    999         emulation of the SGI dl library mentioned above (the emulation
   1000         can be found at
   1001         ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z).  To
   1002         enable this, ftp and compile both libraries, then call
   1003         configure, passing it the option
   1004         --with-dl-dld=DL_DIRECTORY,DLD_DIRECTORY where DL_DIRECTORY is
   1005         the absolute pathname of the dl emulation library and
   1006         DLD_DIRECTORY is the absolute pathname of the GNU dld library.
   1007         (Don't bother on SunOS 4 or 5, they already have dynamic
   1008         linking using shared libraries.)  THIS OPTION IS UNSUPPORTED.
   1009 
   1010 --with-libm, --with-libc: It is possible to specify alternative
   1011         versions for the Math library (default -lm) and the C library
   1012         (default the empty string) using the options
   1013         --with-libm=STRING and --with-libc=STRING, respectively.  For
   1014         example, if your system requires that you pass -lc_s to the C
   1015         compiler to use the shared C library, you can pass
   1016         --with-libc=-lc_s. These libraries are passed after all other
   1017         libraries, the C library last.
   1018 
   1019 --with-libs='libs': Add 'libs' to the LIBS that the python interpreter
   1020         is linked against.
   1021 
   1022 --with-cxx-main=<compiler>: If you plan to use C++ extension modules,
   1023         then -- on some platforms -- you need to compile python's main()
   1024         function with the C++ compiler. With this option, make will use
   1025         <compiler> to compile main() *and* to link the python executable.
   1026         It is likely that the resulting executable depends on the C++
   1027         runtime library of <compiler>. (The default is --without-cxx-main.)
   1028 
   1029         There are platforms that do not require you to build Python
   1030         with a C++ compiler in order to use C++ extension modules.
   1031         E.g., x86 Linux with ELF shared binaries and GCC 3.x, 4.x is such
   1032         a platform. We recommend that you configure Python
   1033         --without-cxx-main on those platforms because a mismatch
   1034         between the C++ compiler version used to build Python and to
   1035         build a C++ extension module is likely to cause a crash at
   1036         runtime.
   1037 
   1038         The Python installation also stores the variable CXX that
   1039         determines, e.g., the C++ compiler distutils calls by default
   1040         to build C++ extensions. If you set CXX on the configure command
   1041         line to any string of non-zero length, then configure won't
   1042         change CXX. If you do not preset CXX but pass
   1043         --with-cxx-main=<compiler>, then configure sets CXX=<compiler>.
   1044         In all other cases, configure looks for a C++ compiler by
   1045         some common names (c++, g++, gcc, CC, cxx, cc++, cl) and sets
   1046         CXX to the first compiler it finds. If it does not find any
   1047         C++ compiler, then it sets CXX="".
   1048 
   1049         Similarly, if you want to change the command used to link the
   1050         python executable, then set LINKCC on the configure command line.
   1051 
   1052 
   1053 --with-pydebug:  Enable additional debugging code to help track down
   1054         memory management problems.  This allows printing a list of all
   1055         live objects when the interpreter terminates.
   1056 
   1057 --with(out)-universal-newlines: enable reading of text files with
   1058         foreign newline convention (default: enabled). In other words,
   1059         any of \r, \n or \r\n is acceptable as end-of-line character.
   1060         If enabled import and execfile will automatically accept any newline
   1061         in files. Python code can open a file with open(file, 'U') to
   1062         read it in universal newline mode. THIS OPTION IS UNSUPPORTED.
   1063 
   1064 --with-tsc: Profile using the Pentium timestamping counter (TSC).
   1065 
   1066 --with-system-ffi:  Build the _ctypes extension module using an ffi
   1067         library installed on the system.
   1068 
   1069 --with-dbmliborder=db1:db2:...:  Specify the order that backends for the
   1070 	dbm extension are checked. Valid value is a colon separated string
   1071 	with the backend names `ndbm', `gdbm' and `bdb'.
   1072 
   1073 Building for multiple architectures (using the VPATH feature)
   1074 -------------------------------------------------------------
   1075 
   1076 If your file system is shared between multiple architectures, it
   1077 usually is not necessary to make copies of the sources for each
   1078 architecture you want to support.  If the make program supports the
   1079 VPATH feature, you can create an empty build directory for each
   1080 architecture, and in each directory run the configure script (on the
   1081 appropriate machine with the appropriate options).  This creates the
   1082 necessary subdirectories and the Makefiles therein.  The Makefiles
   1083 contain a line VPATH=... which points to a directory containing the
   1084 actual sources.  (On SGI systems, use "smake -J1" instead of "make" if
   1085 you use VPATH -- don't try gnumake.)
   1086 
   1087 For example, the following is all you need to build a minimal Python
   1088 in /usr/tmp/python (assuming ~guido/src/python is the toplevel
   1089 directory and you want to build in /usr/tmp/python):
   1090 
   1091         $ mkdir /usr/tmp/python
   1092         $ cd /usr/tmp/python
   1093         $ ~guido/src/python/configure
   1094         [...]
   1095         $ make
   1096         [...]
   1097         $
   1098 
   1099 Note that configure copies the original Setup file to the build
   1100 directory if it finds no Setup file there.  This means that you can
   1101 edit the Setup file for each architecture independently.  For this
   1102 reason, subsequent changes to the original Setup file are not tracked
   1103 automatically, as they might overwrite local changes.  To force a copy
   1104 of a changed original Setup file, delete the target Setup file.  (The
   1105 makesetup script supports multiple input files, so if you want to be
   1106 fancy you can change the rules to create an empty Setup.local if it
   1107 doesn't exist and run it with arguments $(srcdir)/Setup Setup.local;
   1108 however this assumes that you only need to add modules.)
   1109 
   1110 Also note that you can't use a workspace for VPATH and non VPATH builds. The
   1111 object files left behind by one version confuses the other.
   1112 
   1113 
   1114 Building on non-UNIX systems
   1115 ----------------------------
   1116 
   1117 For Windows (2000/NT/ME/98/95), assuming you have MS VC++ 7.1, the
   1118 project files are in PCbuild, the workspace is pcbuild.dsw.  See
   1119 PCbuild\readme.txt for detailed instructions.
   1120 
   1121 For other non-Unix Windows compilers, in particular MS VC++ 6.0 and
   1122 for OS/2, enter the directory "PC" and read the file "readme.txt".
   1123 
   1124 For the Mac, a separate source distribution will be made available,
   1125 for use with the CodeWarrior compiler.  If you are interested in Mac
   1126 development, join the PythonMac Special Interest Group
   1127 (http://www.python.org/sigs/pythonmac-sig/, or send email to
   1128 pythonmac-sig-request (a] python.org).
   1129 
   1130 Of course, there are also binary distributions available for these
   1131 platforms -- see http://www.python.org/.
   1132 
   1133 To port Python to a new non-UNIX system, you will have to fake the
   1134 effect of running the configure script manually (for Mac and PC, this
   1135 has already been done for you).  A good start is to copy the file
   1136 pyconfig.h.in to pyconfig.h and edit the latter to reflect the actual
   1137 configuration of your system.  Most symbols must simply be defined as
   1138 1 only if the corresponding feature is present and can be left alone
   1139 otherwise; however the *_t type symbols must be defined as some
   1140 variant of int if they need to be defined at all.
   1141 
   1142 For all platforms, it's important that the build arrange to define the
   1143 preprocessor symbol NDEBUG on the compiler command line in a release
   1144 build of Python (else assert() calls remain in the code, hurting
   1145 release-build performance).  The Unix, Windows and Mac builds already
   1146 do this.
   1147 
   1148 
   1149 Miscellaneous issues
   1150 ====================
   1151 
   1152 Emacs mode
   1153 ----------
   1154 
   1155 There's an excellent Emacs editing mode for Python code; see the file
   1156 Misc/python-mode.el.  Originally written by the famous Tim Peters, it is now
   1157 maintained by the equally famous Barry Warsaw.  The latest version, along with
   1158 various other contributed Python-related Emacs goodies, is online at
   1159 http://launchpad.net/python-mode/.
   1160 
   1161 
   1162 Tkinter
   1163 -------
   1164 
   1165 The setup.py script automatically configures this when it detects a
   1166 usable Tcl/Tk installation.  This requires Tcl/Tk version 8.0 or
   1167 higher.
   1168 
   1169 For more Tkinter information, see the Tkinter Resource page:
   1170 http://www.python.org/topics/tkinter/
   1171 
   1172 There are demos in the Demo/tkinter directory.
   1173 
   1174 Note that there's a Python module called "Tkinter" (capital T) which
   1175 lives in Lib/lib-tk/Tkinter.py, and a C module called "_tkinter"
   1176 (lower case t and leading underscore) which lives in
   1177 Modules/_tkinter.c.  Demos and normal Tk applications import only the
   1178 Python Tkinter module -- only the latter imports the C _tkinter
   1179 module.  In order to find the C _tkinter module, it must be compiled
   1180 and linked into the Python interpreter -- the setup.py script does
   1181 this.  In order to find the Python Tkinter module, sys.path must be
   1182 set correctly -- normal installation takes care of this.
   1183 
   1184 
   1185 Distribution structure
   1186 ----------------------
   1187 
   1188 Most subdirectories have their own README files.  Most files have
   1189 comments.
   1190 
   1191 Demo/           Demonstration scripts, modules and programs
   1192 Doc/            Documentation sources (reStructuredText)
   1193 Grammar/        Input for the parser generator
   1194 Include/        Public header files
   1195 LICENSE         Licensing information
   1196 Lib/            Python library modules
   1197 Mac/            Macintosh specific resources
   1198 Makefile.pre.in Source from which config.status creates the Makefile.pre
   1199 Misc/           Miscellaneous useful files
   1200 Modules/        Implementation of most built-in modules
   1201 Objects/        Implementation of most built-in object types
   1202 PC/             Files specific to PC ports (DOS, Windows, OS/2)
   1203 PCbuild/        Build directory for Microsoft Visual C++
   1204 Parser/         The parser and tokenizer and their input handling
   1205 Python/         The byte-compiler and interpreter
   1206 README          The file you're reading now
   1207 RISCOS/         Files specific to RISC OS port
   1208 Tools/          Some useful programs written in Python
   1209 pyconfig.h.in   Source from which pyconfig.h is created (GNU autoheader output)
   1210 configure       Configuration shell script (GNU autoconf output)
   1211 configure.ac    Configuration specification (input for GNU autoconf)
   1212 install-sh      Shell script used to install files
   1213 setup.py        Python script used to build extension modules
   1214 
   1215 The following files will (may) be created in the toplevel directory by
   1216 the configuration and build processes:
   1217 
   1218 Makefile        Build rules
   1219 Makefile.pre    Build rules before running Modules/makesetup
   1220 buildno         Keeps track of the build number
   1221 config.cache    Cache of configuration variables
   1222 pyconfig.h      Configuration header
   1223 config.log      Log from last configure run
   1224 config.status   Status from last run of the configure script
   1225 getbuildinfo.o  Object file from Modules/getbuildinfo.c
   1226 libpython<version>.a    The library archive
   1227 python          The executable interpreter
   1228 reflog.txt      Output from running the regression suite with the -R flag 
   1229 tags, TAGS      Tags files for vi and Emacs
   1230 
   1231 
   1232 That's all, folks!
   1233 ------------------
   1234 
   1235 
   1236 --Guido van Rossum (home page: http://www.python.org/~guido/)
   1237