[Python-checkins] CVS: python/dist/src/Mac/Demo building.html,1.29,1.30

Jack Jansen jackjansen@users.sourceforge.net
Thu, 16 Aug 2001 07:10:58 -0700


Update of /cvsroot/python/python/dist/src/Mac/Demo
In directory usw-pr-cvs1:/tmp/cvs-serv5572/Python/Mac/Demo

Modified Files:
	building.html 
Log Message:
Updated to the current state of things (long overdue).

Index: building.html
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Demo/building.html,v
retrieving revision 1.29
retrieving revision 1.30
diff -C2 -d -r1.29 -r1.30
*** building.html	2001/04/25 22:11:21	1.29
--- building.html	2001/08/16 14:10:56	1.30
***************
*** 7,16 ****
  <HR>
  
- <B>Note</B>: This document is mostly still for Python 2.0, so
- it is not correct. See the <a href="http://www.cwi.nl/~jack/macpython.html">
- MacPython homepage</a> for an updated version, and if none is available
- complain bitterly to me and work on it should progress faster.
- <p>
- 
  This document explains how to build MacPython from source. This is
  necessary if you want to make modifications to the Python core. Building
--- 7,10 ----
***************
*** 42,49 ****
  
  <LI> You need a MacPython source distribution, of course. You can
! obtain one from <A HREF="ftp://ftp.cwi.nl/pub/jack/python/mac">
! ftp://ftp.cwi.nl/pub/jack/python/mac</A> or from the companion webpage
! at <A HREF="http://www.cwi.nl/~jack/macpython.html">
! http://www.cwi.nl/~jack/macpython.html</A> (which has up-to-date links
  to the other packages needed too) and possibly also from the standard
  <A HREF="ftp://ftp.python.org/pub/python/mac">python.org ftp
--- 36,41 ----
  
  <LI> You need a MacPython source distribution, of course. You can
! obtain one via <A HREF="http://www.cwi.nl/~jack/macpython.html">
! http://www.cwi.nl/~jack/macpython.html</A>  (which has up-to-date links
  to the other packages needed too) and possibly also from the standard
  <A HREF="ftp://ftp.python.org/pub/python/mac">python.org ftp
***************
*** 58,63 ****
  been built with CodeWarrior Pro 6.1. Ordering information is
  available on the <A HREF="http://www.metrowerks.com/">MetroWerks
! homepage</A>. Building Python with MPW or Think/Symantec C is
! probably impossible without major surgery.
  
  <LI> You need GUSI version 2, the Grand Unified Socket Interface, by
--- 50,55 ----
  been built with CodeWarrior Pro 6.1. Ordering information is
  available on the <A HREF="http://www.metrowerks.com/">MetroWerks
! homepage</A>. Building Python with MPW, Think/Symantec C or the OSX
! developer tools is impossible without major surgery.
  
  <LI> You need GUSI version 2, the Grand Unified Socket Interface, by
***************
*** 69,77 ****
  HREF="http://www.cwi.nl/~jack/macpython.html">MacPython homepage</A>
  for a GUSI that is most easily used for building Python. 
- <br>
  
- If nothing is listed there (yet) you will have problems building a
- Carbon Python. Complaining loudly on the pythonmac-sig@python.org mailing
- list will make me work faster towards distributing Carbon-GUSI:-).
  </UL>
  
--- 61,65 ----
***************
*** 97,101 ****
  was built using version 2.0, which is included in the CodeWarrior
  package. You can also obtain it from <A
! HREF="http://www.boingo.com/waste">&lt;http://www.boingo.com/waste&gt;</A>
  and various other places.
  
--- 85,89 ----
  was built using version 2.0, which is included in the CodeWarrior
  package. You can also obtain it from <A
! HREF="http://www.merzwaren.com/waste">&lt;http://www.merzwaren.com/waste&gt;</A>
  and various other places.
  
***************
*** 103,114 ****
  <A HREF="http://www.cwi.nl/~jack/macsoftware.html">
  http://www.cwi.nl/~jack/macsoftware.html</A> and <A HREF="ftp://ftp.cwi.nl/pub/jack/mac">
! ftp://ftp.cwi.nl/pub/jack/mac</A>. Also in the MacPython cvs repository at
! <code>lib-src/gdbm</code>.
  
  <LI> JPEG library by the Independent JPEG Group. A version including
  Mac projects can be found at Jack's page mentioned above. 
  The most recent JPEG library can always be obtained from <A
! HREF="ftp://ftp.uu.net/graphics/jpeg/">ftp://ftp.uu.net/graphics/jpeg/</A>. Again,
! also in the MacPython cvs repository at <code>lib-src/jpeg</code>.
  
  <LI> The netpbm/pbmplus, libtiff, zlib and png libraries. The netpbm distribution
--- 91,100 ----
  <A HREF="http://www.cwi.nl/~jack/macsoftware.html">
  http://www.cwi.nl/~jack/macsoftware.html</A> and <A HREF="ftp://ftp.cwi.nl/pub/jack/mac">
! ftp://ftp.cwi.nl/pub/jack/mac</A>. 
  
  <LI> JPEG library by the Independent JPEG Group. A version including
  Mac projects can be found at Jack's page mentioned above. 
  The most recent JPEG library can always be obtained from <A
! HREF="ftp://ftp.uu.net/graphics/jpeg/">ftp://ftp.uu.net/graphics/jpeg/</A>. 
  
  <LI> The netpbm/pbmplus, libtiff, zlib and png libraries. The netpbm distribution
***************
*** 118,124 ****
  and not the complete applications. A distribution with correct
  projects and library source only is available from, you guessed it, Jack's Mac software
! page mentioned above. And, guessed it again, in the MacPython cvs repository
! at <code>lib-src/netpbm</code>, etc. The only gotcha is that libtiff lives in
! <code>lib-src/netpbm/libtiff</code>, for historical reasons.
  
  </UL>
--- 104,108 ----
  and not the complete applications. A distribution with correct
  projects and library source only is available from, you guessed it, Jack's Mac software
! page mentioned above. 
  
  </UL>
***************
*** 280,284 ****
  <DD> Mac-specific builtin modules. Theoretically these are all
  optional, but some are rather essential (like
! <code>macmodule</code>). A lot of these modules are generated with
  <code>bgen</code>, in which case the bgen input files are included so
  you can attempt to regenerate them or extend them.
--- 264,268 ----
  <DD> Mac-specific builtin modules. Theoretically these are all
  optional, but some are rather essential (like
! <code>macosmodule</code>). A lot of these modules are generated with
  <code>bgen</code>, in which case the bgen input files are included so
  you can attempt to regenerate them or extend them.
***************
*** 328,365 ****
  </DL>
  
- <H2>Building the 68K interpreter</H2>
- 
- 68K Python is no longer supported, and the projects are not included in the
- source distribution anymore. If you really want to build Python for the 68K
- your best bet is to check the sources out of the CVS repository. The latest
- projects (in :Mac:build:) that support 68K development are tagged as such,
- and are dated around August 2000. If you plan on doing this announce it on
- the SIG, please. <p>
- 
  <H2>Building the PPC interpreter</H2>
  <em>This is different under 2.1. You are best off using the fullbuild.py
! script. </em><p>
  First you optionally build the external libraries with buildlibs.prj. Next, 
  the projects for
! interpreter, core library and applet skeleton  are all linked together, so
! building the PythonInterpreter target in <code>PythonEngine.prj</code> 
! will result in everything being built. The
! resulting applications and fat shared library are deposited in the main
! Python folder. Finally, you build all the plugins with the plugins.prj project.
  
  For completeness sake here is a breakdown of the projects:
  
  <DL>
  
! <DT> PythonCore (with subproject PythonCorePPC)
  <DD> The shared library that contains the bulk of the interpreter and
! its resources. It is a good idea to immedeately put an alias to this
  shared library in the <code>Extensions</code> folder of your system
  folder.  Do exactly that: put an <em>alias</em> there, copying or
  moving the file will cause you grief later if you rebuild the library and
! forget to copy it to the extensions folder again. The InstallPython applet
! will also do this, along with creating the plugin aliases. <br>
! Note that the subproject looks a bit silly nowadays (with no more CFM68K
! support) but you will have to live with that for this release.
  
  <DT> PythonInterpeter
--- 312,345 ----
  </DL>
  
  <H2>Building the PPC interpreter</H2>
  <em>This is different under 2.1. You are best off using the fullbuild.py
! script, see <a href="#fullbuild">below</a>. </em><p>
! 
  First you optionally build the external libraries with buildlibs.prj. Next, 
  the projects for
! interpreter and core library are linked together, so
! building the PythonInterpreterClassic and/or PythonInterpreterCarbon target
! in <code>PythonInterpreter.prj</code> 
! will result in everything being built. The result, however, is an "Application
! template", (filetype Atmp). If you don't use fullbuild you can manually
! turn either of these into an interpreter by copying it to PythonInterpreter
! and setting the filetype to APPL (with ResEdit or some such). <p>
  
+ Fullbuild does this for you, and the Atmp files is also how ConfigurePythonCarbon
+ and ConfigurePythonClassic work their magic. <p>
+ 
  For completeness sake here is a breakdown of the projects:
  
  <DL>
  
! <DT> PythonCore
  <DD> The shared library that contains the bulk of the interpreter and
! its resources. It has targets for PythonCore and PythonCoreCarbon.
! It is a good idea to immedeately put an alias to this
  shared library in the <code>Extensions</code> folder of your system
  folder.  Do exactly that: put an <em>alias</em> there, copying or
  moving the file will cause you grief later if you rebuild the library and
! forget to copy it to the extensions folder again. The ConfigurePythonXXX applets
! will also do this. <br>
  
  <DT> PythonInterpeter
***************
*** 369,394 ****
  
  <DT> Plugin projects
! <DD> Each plugin module has a separate project. The <code>Plugins.prj</code>
! project tries to build them all, but is known to be flakey. See <code>fullbuild</code>
! below for a better way to build everything.
  </DL>
  
  After creating the alias to <code>PythonCore</code> you remove any old
! <code>Python 2.0b1 Preferences</code> file from the <code>Preferences</code> folder
  (if you had python installed on your system before) and run the interpreter once
  to create the correct preferences file.  <p>
  
  Next, you have to build the extension modules.
! The <code>PlugIns.ppc</code> project has all the
! other projects as subprojects and builds everything (but see the gotcha above).
  <p>
  
  Finally, you must build the standard applets:
! <code>EditPythonPrefs</code>, <code>BuildApplet</code>, etc. This is
! easiest done with the <code>fullbuild</code> script from
! <code>Mac:scripts</code>. <p>
  
  <BLOCKQUOTE>
! Actually, the <code>fullbuild</code> script can be used to build
  everything, but you need a fully-functional interpreter before you can
  use it (and one that isn't rebuilt in the process: you cannot rebuild
--- 349,374 ----
  
  <DT> Plugin projects
! <DD> Each plugin module has a separate project, and these can be rebuilt on
! the fly. Fullbuild (or actually it's little helper genpluginprojects) takes
! care of this.
  </DL>
  
  After creating the alias to <code>PythonCore</code> you remove any old
! <code>Python XXXX Preferences</code> file from the <code>Preferences</code> folder
  (if you had python installed on your system before) and run the interpreter once
  to create the correct preferences file.  <p>
  
  Next, you have to build the extension modules.
! If you don't use fullbuild simply open each project and build it.
  <p>
  
  Finally, you must build the standard applets:
! <code>EditPythonPrefs</code>, <code>BuildApplet</code>, etc. For the N-th time:
! fullbuild does this for you, but you can also manually drag/drop them onto
! BuildApplet. <p>
  
  <BLOCKQUOTE>
! <a name="fullbuild"></a>
! The <code>fullbuild</code> script can be used to build
  everything, but you need a fully-functional interpreter before you can
  use it (and one that isn't rebuilt in the process: you cannot rebuild
***************
*** 410,422 ****
  are building a plugin module. <p>
  
! Rebuilding the .exp file is done by first removing the file and removing the
! reference to it in the project (in the "config" section). Next, build PythonCore.
! This will create a new .exp file. Edit this file to remove the references to
  the symbols <code>__initialize</code>, <code>__terminate</code>, <code>setjmp</code>,
! <code>longjmp</code>, <code>vec_longjmp</code>, <code>main</code> and (for PPC) <code>__ptmf_null</code> or (for
! CFM68K) <code>__start</code> and <code>dummy_init_routine</code>.
! Next, add the .exp file to the project
! again and rebuild PythonCore. <p>
  
  This rather convoluted procedure is needed to ensure that plugin modules don't
  accidentally link with those entrypoints from PythonCore, which will not work because
--- 390,405 ----
  are building a plugin module. <p>
  
! Rebuilding the .exp file is done by first both removing the file and removing the
! reference to it in the project (in the "config" section). Next, build PythonCore or
! PythonCoreCarbon.
! This will create a new .exp file, with the name <code>PythonCore.mcp.exp</code>.
! Rename this file to either <code>PythonCore.exp</code> or <code>PythonCoreCarbon.exp</code>
! and add this file back to the project. Next, edit ot to remove the references to
  the symbols <code>__initialize</code>, <code>__terminate</code>, <code>setjmp</code>,
! <code>longjmp</code>, <code>vec_longjmp</code>, <code>main</code> and <code>__ptmf_null</code>.
! They are all close together about halfway the file.
  
+ Finally rebuild again. <p>
+ 
  This rather convoluted procedure is needed to ensure that plugin modules don't
  accidentally link with those entrypoints from PythonCore, which will not work because
***************
*** 425,431 ****
  <H2><a name="cvs">Using the CVS source archive</a></H2>
  
- <em>Please check the MacPython homepage to see whether this information is
- still current: MacPython should move to sourceforge shortly. </em><p>
- 
  It is possible (and probably best) to access the Python sources through remote CVS. The
  advantage of this is that you get the very latest sources, so any bug
--- 408,411 ----
***************
*** 442,480 ****
  conversion". <p>
  
! It is also a good idea to disable Quicktime Exchange in the Quicktime
  control panel. Quicktime Exchange will magically map some extensions to
  filetypes, and this can seriously hinder you if, for instance, <code>.bmp</code>
  is not a Windows bitmap file. <p>
  
! The machine-independent Python sources are checked out from the main
  Python CVS archive on sourceforge.net, see the <a
  href="http://www.python.org/download/cvs.html">Source access via
  CVS</a> page for details. When you check the sources out you will get
  something like <code>Python:dist:src</code>, and under that the
! <code>Modules</code>, <code>Lib</code>, etc hierarchy. The
! <code>src</code> folder should be renamed to <code>Python</code>, and
  is what this document refers to as the "toplevel Python folder". <P>
- 
- Next, <em>in a separate folder</em>, you check out the
- mac-specific sources. You then move the <code>Mac</code> folder from this
- checkout (the only folder with anything in it) to the Python source folder.
- Note that the checking out in a separate folder and moving is necessary,
- due to the way cvs works.
- 
- The CVS path to use for the mac stuff can be found
- at the <a href="http://www.cwi.nl/~jack/macpython.html">MacPython
- homepage</a>. Finally, you check out the external libraries needed in
- the parent of the toplevel Python folder. The CVS path for these libraries is
- also mentioned at the MacPython homepage. <p>
  
! 
! You should end up with a folder structure as described at the top of this
! document. <p>
! 
! Note that while the Mac folder is now a subfolder of your toplevel Python
! folder this does not mean that they "act as one" as far as CVS is concerned.
! To update all your sources you have to do a "cvs update" in the toplevel
! Python folder and another one in the Mac folder. This is again a cvs problem:
! it cannot deal with subpackages coming from different repositories. <p>
  
  <H2>Odds and ends</H2>
--- 422,450 ----
  conversion". <p>
  
! <blockquote>
! There is one group of people for whom MacCVS is not the best choice: people with
! checkin rights to the Python repository. You will have to use MacCVS Pro
! (completely unrelated) from www.maccvs.org, because it has working SSH support.
! </blockquote>
! 
! It is a good idea to disable Quicktime Exchange in the Quicktime
  control panel. Quicktime Exchange will magically map some extensions to
  filetypes, and this can seriously hinder you if, for instance, <code>.bmp</code>
  is not a Windows bitmap file. <p>
  
! The Python sources are checked out from the main
  Python CVS archive on sourceforge.net, see the <a
  href="http://www.python.org/download/cvs.html">Source access via
  CVS</a> page for details. When you check the sources out you will get
  something like <code>Python:dist:src</code>, and under that the
! <code>Modules</code>, <code>Lib</code>, <code>Mac</code> etc hierarchy. The
! <code>src</code> folder can be renamed to <code>Python</code>, and
  is what this document refers to as the "toplevel Python folder". <P>
  
! The CVS repository does not contain all the projects for the plugin modules,
! these are built with <code>fullbuild.py</code> normally. For this reason
! it is probably a good idea to first build <code>PythonStandSmall.prj</code>,
! which builds a fairly minimal interpreter, and then follow the
! <a href="#fullbuild">fullbuild instructions</a>.
  
  <H2>Odds and ends</H2>