Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 1 | # |
| 2 | # fullbuild creates everything that needs to be created before a |
| 3 | # distribution can be made, and puts it all in the right place. |
| 4 | # |
| 5 | # It expects the projects to be in the places where Jack likes them: |
| 6 | # in directories named like 'build.macppc.shared'. That is fixable, |
| 7 | # however. |
| 8 | # |
| 9 | # NOTE: You should proably make a copy of python with which to execute this |
| 10 | # script, rebuilding running programs does not work... |
| 11 | |
| 12 | import os |
| 13 | import sys |
| 14 | import macfs |
Jack Jansen | 1023dff | 1996-02-21 15:28:49 +0000 | [diff] [blame^] | 15 | import MacOS |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 16 | |
| 17 | import addpack |
| 18 | addpack.addpack('Tools') |
| 19 | addpack.addpack('bgen') |
| 20 | addpack.addpack('AE') |
| 21 | import aetools |
Jack Jansen | 1023dff | 1996-02-21 15:28:49 +0000 | [diff] [blame^] | 22 | import AppleEvents |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 23 | from Metrowerks_Shell_Suite import Metrowerks_Shell_Suite |
| 24 | from Required_Suite import Required_Suite |
| 25 | |
| 26 | addpack.addpack('Mac') |
| 27 | addpack.addpack('scripts') |
| 28 | import mkapplet |
| 29 | |
| 30 | class MwShell(aetools.TalkTo, Metrowerks_Shell_Suite, Required_Suite): |
| 31 | pass |
| 32 | |
| 33 | |
| 34 | def buildmwproject(top, creator, projects): |
| 35 | """Build projects with an MW compiler""" |
| 36 | print 'Please start project mgr with signature', creator,'-' |
| 37 | sys.stdin.readline() |
| 38 | try: |
| 39 | mgr = MwShell(creator) |
| 40 | except 'foo': |
| 41 | print 'Not handled:', creator |
| 42 | return |
Jack Jansen | 1023dff | 1996-02-21 15:28:49 +0000 | [diff] [blame^] | 43 | mgr.send_timeout = AppleEvents.kNoTimeOut |
| 44 | |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 45 | for file in projects: |
| 46 | file = os.path.join(top, file) |
| 47 | fss = macfs.FSSpec(file) |
| 48 | print 'Building', file |
| 49 | mgr.open(fss) |
Jack Jansen | 1023dff | 1996-02-21 15:28:49 +0000 | [diff] [blame^] | 50 | try: |
| 51 | mgr.Make_Project() |
| 52 | except MacOS.Error, arg: |
| 53 | print '** Failed. Possible error:', arg |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 54 | mgr.Close_Project() |
| 55 | mgr.quit() |
| 56 | |
| 57 | def buildapplet(top, dummy, list): |
| 58 | """Create a PPC python applet""" |
| 59 | template = mkapplet.findtemplate() |
| 60 | for src in list: |
| 61 | if src[-3:] != '.py': |
| 62 | raise 'Should end in .py', src |
| 63 | base = os.path.basename(src) |
| 64 | dst = os.path.join(top, base)[:-3] |
| 65 | src = os.path.join(top, src) |
| 66 | try: |
| 67 | os.unlink(dst) |
| 68 | except os.error: |
| 69 | pass |
| 70 | print 'Building applet', dst |
| 71 | mkapplet.process(template, src, dst) |
| 72 | |
| 73 | # |
| 74 | # The build instructions. Entries are (routine, arg, list-of-files) |
| 75 | # XXXX We could also include the builds for stdwin and such here... |
| 76 | INSTRUCTIONS=[ |
Jack Jansen | b39a5d7 | 1995-10-09 23:19:30 +0000 | [diff] [blame] | 77 | (buildmwproject, "CWIE", [ |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 78 | ":build.macppc.shared:PythonCore.µ", |
| 79 | ":build.macppc.shared:PythonPPC.µ", |
| 80 | ":build.macppc.shared:PythonApplet.µ", |
| 81 | |
| 82 | ":PlugIns:ctbmodule.µ", |
| 83 | ":PlugIns:imgmodules.µ", |
| 84 | ":PlugIns:macspeechmodule.µ", |
| 85 | ":PlugIns:mactcpmodules.µ", |
| 86 | ":PlugIns:stdwinmodule.µ", |
| 87 | ":PlugIns:toolboxmodules.µ", |
Jack Jansen | b39a5d7 | 1995-10-09 23:19:30 +0000 | [diff] [blame] | 88 | |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 89 | ":build.mac68k.stand:Python68K.µ", |
| 90 | ]), |
| 91 | (buildapplet, None, [ |
| 92 | ":Mac:scripts:EditPythonPrefs.py", |
| 93 | ":Mac:scripts:mkapplet.py", |
Jack Jansen | b39a5d7 | 1995-10-09 23:19:30 +0000 | [diff] [blame] | 94 | ":Mac:scripts:RunLibScript.py", |
| 95 | ":Mac:scripts:MkPluginAliases.py" |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 96 | ]) |
| 97 | ] |
| 98 | |
| 99 | def main(): |
| 100 | dir, ok = macfs.GetDirectory('Python source folder:') |
| 101 | if not ok: |
| 102 | sys.exit(0) |
| 103 | dir = dir.as_pathname() |
| 104 | for routine, arg, list in INSTRUCTIONS: |
| 105 | routine(dir, arg, list) |
| 106 | print "All done!" |
| 107 | sys.exit(1) |
| 108 | |
| 109 | if __name__ == '__main__': |
| 110 | main() |
| 111 | |