From: walker@island.com (Richard Walker) Date: Wed, 1 Jun 94 15:28:40 PDT Compiling Python Under MPW C ============================ This directory contains the Makefiles, source files and scripts required to compile Python under MPW C. Compiling: ---------- the "buildall" file at the top level is an MPW script which rebuilds the entire Python source. To build, start the MPW Shell and select the Worksheet window. Go to top level directory of the Python source tree. Type: buildall To rebuild: Type: buildall clean Type: buildall Configuration: -------------- The files "Makefile", "config.h", "Mac:config.c" and "Modules:Makefile" are normally configured and/or generated automagically under Unix. Macintosh programmers will have to be content with editing these files manually to reflect their desired configuration. The files provided here are examples only; Modules which made it into this version are those which required little or no modification. Running: -------- The top-level Makefile compiles Python as an MPW Tool. You can then run Python interactively from within the MPW Worksheet. Diagnostics: ------------ If Python fails to run by aborting in file "Parser:grammar1.c", at the end of the function "finddfa", line 46, try defining the preprocessor symbol "MPW_881_BUG" in file "Parser:acceler.c", function "fixstate", line 107. --------------------------------------------------------------- Additional notes by Guido for Python 1.1: ----------------------------------------- I have tried this with MPW 3.2 and tweaked Richards Makefiles and buildall script slightly to work with Python 1.1. The same configure file now works for THINK C 6.0 (or 7.0) and MPW 3.2. It is essential that 'MPW' is defined when compiling with MPW; for both compilers, 'HAVE_CONFIG_H' should also be defined. For MPW, the buildall script takes care of this. I moved some files around or renamed them and modified the Makefiles accordingly. All Mac specific files are now in the Mac subdirectory, especially config.c, config.h, macmodule.c, and (new) macmain.c. I wouldn't bother with the Grammar subdirectory or the Parser generator (Pgen) -- the needed Pgen output files are part of the distribution. If the buildall script stops at a compilation error you are usually left in one of the subordinate directories. Instead of using the buildall script you can also once execute the Set and Export commands listed at its top (which set compiler and linker options) and in each of the directories Mac, Parser, Python, Objects, Modules and finally the python rot directory, execute the two command make >makefile.out makefile.out Or you could execute make have a look at its output and execute selected commands from it. The buildall script executes Directory {Python} which normally prints the current directory, because {Python} is not defined. If it is set to the python root directory, you could place buildall somewhere in your command search path and execute it from anywhere. If you are mixing THINK C and MPW, you may experience weird errors in previously correct modules. These disappear when you throw away the module's .pyc file. The errors usually have to do with string literals containing '\n' or '\r'. The reason is an incompatibility between their handling of '\n' and '\r' -- in MPW C, '\n' actually is ASCII CR while '\r' is ASCII LF, which is the reverse situation from any other ASCII based C implementation. This behaviour is inherited by Python compiled with MPW C. This is normally not a problem, but *binary* files written by one system will be mis-interpreted by the other, and this is what happens to the .pyc files. There is no easy way to fix this in the source. (This is a real shame, since the format of .pyc files was carefully designed to be independent of byte order and integer size -- deviations in the ASCII character codes were never anticipated.)