diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 1995-09-01 12:03:32 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 1995-09-01 12:03:32 (GMT) |
commit | 6655c4e2d230519f14f2f6a6311fe5157e636049 (patch) | |
tree | abe5520f20f8d2671f3b9fa8800c451813040064 /Mac/scripts/fullbuild.py | |
parent | 0f452fa557eaf41aa576f8644b0955efea8daaac (diff) | |
download | cpython-6655c4e2d230519f14f2f6a6311fe5157e636049.zip cpython-6655c4e2d230519f14f2f6a6311fe5157e636049.tar.gz cpython-6655c4e2d230519f14f2f6a6311fe5157e636049.tar.bz2 |
Build appplications, libraries and applets according to builtin
instructions.
Diffstat (limited to 'Mac/scripts/fullbuild.py')
-rw-r--r-- | Mac/scripts/fullbuild.py | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/Mac/scripts/fullbuild.py b/Mac/scripts/fullbuild.py new file mode 100644 index 0000000..88108bf --- /dev/null +++ b/Mac/scripts/fullbuild.py @@ -0,0 +1,104 @@ +# +# fullbuild creates everything that needs to be created before a +# distribution can be made, and puts it all in the right place. +# +# It expects the projects to be in the places where Jack likes them: +# in directories named like 'build.macppc.shared'. That is fixable, +# however. +# +# NOTE: You should proably make a copy of python with which to execute this +# script, rebuilding running programs does not work... + +import os +import sys +import macfs + +import addpack +addpack.addpack('Tools') +addpack.addpack('bgen') +addpack.addpack('AE') +import aetools +from Metrowerks_Shell_Suite import Metrowerks_Shell_Suite +from Required_Suite import Required_Suite + +addpack.addpack('Mac') +addpack.addpack('scripts') +import mkapplet + +class MwShell(aetools.TalkTo, Metrowerks_Shell_Suite, Required_Suite): + pass + + +def buildmwproject(top, creator, projects): + """Build projects with an MW compiler""" + print 'Please start project mgr with signature', creator,'-' + sys.stdin.readline() + try: + mgr = MwShell(creator) + except 'foo': + print 'Not handled:', creator + return + for file in projects: + file = os.path.join(top, file) + fss = macfs.FSSpec(file) + print 'Building', file + mgr.open(fss) + mgr.Make_Project() + mgr.Close_Project() + mgr.quit() + +def buildapplet(top, dummy, list): + """Create a PPC python applet""" + template = mkapplet.findtemplate() + for src in list: + if src[-3:] != '.py': + raise 'Should end in .py', src + base = os.path.basename(src) + dst = os.path.join(top, base)[:-3] + src = os.path.join(top, src) + try: + os.unlink(dst) + except os.error: + pass + print 'Building applet', dst + mkapplet.process(template, src, dst) + +# +# The build instructions. Entries are (routine, arg, list-of-files) +# XXXX We could also include the builds for stdwin and such here... +INSTRUCTIONS=[ + (buildmwproject, "MPCC", [ + ":build.macppc.shared:PythonCore.µ", + ":build.macppc.shared:PythonPPC.µ", + ":build.macppc.shared:PythonApplet.µ", + + ":PlugIns:ctbmodule.µ", + ":PlugIns:imgmodules.µ", + ":PlugIns:macspeechmodule.µ", + ":PlugIns:mactcpmodules.µ", + ":PlugIns:stdwinmodule.µ", + ":PlugIns:toolboxmodules.µ", + ]), + (buildmwproject, "MMCC", [ + ":build.mac68k.stand:Python68K.µ", + ]), + (buildapplet, None, [ + ":Mac:scripts:EditPythonPrefs.py", + ":Mac:scripts:mkapplet.py", + ":Mac:scripts:RunLibScript.py" + ]) +] + +def main(): + dir, ok = macfs.GetDirectory('Python source folder:') + if not ok: + sys.exit(0) + dir = dir.as_pathname() + for routine, arg, list in INSTRUCTIONS: + routine(dir, arg, list) + print "All done!" + sys.exit(1) + +if __name__ == '__main__': + main() + |