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: |
Jack Jansen | faad995 | 1997-09-01 15:37:07 +0000 | [diff] [blame] | 6 | # in directories named like 'build.mac'. That is fixable, |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 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 | |
Jack Jansen | faad995 | 1997-09-01 15:37:07 +0000 | [diff] [blame] | 12 | MACBUILDNO=":Mac:Include:macbuildno.h" |
| 13 | |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 14 | import os |
| 15 | import sys |
| 16 | import macfs |
Jack Jansen | 1023dff | 1996-02-21 15:28:49 +0000 | [diff] [blame] | 17 | import MacOS |
Jack Jansen | f04fa72 | 1996-04-10 14:51:14 +0000 | [diff] [blame] | 18 | import EasyDialogs |
Jack Jansen | be614ee | 2001-01-02 22:02:02 +0000 | [diff] [blame] | 19 | import re |
Jack Jansen | faad995 | 1997-09-01 15:37:07 +0000 | [diff] [blame] | 20 | import string |
Jack Jansen | e791a64 | 2001-08-16 20:39:17 +0000 | [diff] [blame] | 21 | import genpluginprojects |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 22 | |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 23 | import aetools |
Jack Jansen | 5a6fdcd | 2001-08-25 12:15:04 +0000 | [diff] [blame] | 24 | from Carbon import AppleEvents |
Jack Jansen | 87426b9 | 2000-08-17 22:12:12 +0000 | [diff] [blame] | 25 | |
| 26 | OLDAESUPPORT = 0 |
| 27 | |
| 28 | if OLDAESUPPORT: |
| 29 | from Metrowerks_Shell_Suite import Metrowerks_Shell_Suite |
| 30 | from CodeWarrior_suite import CodeWarrior_suite |
| 31 | from Metrowerks_Standard_Suite import Metrowerks_Standard_Suite |
| 32 | from Required_Suite import Required_Suite |
| 33 | else: |
| 34 | import CodeWarrior |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 35 | |
Jack Jansen | 5a6fdcd | 2001-08-25 12:15:04 +0000 | [diff] [blame] | 36 | from Carbon import Res |
| 37 | from Carbon import Dlg |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 38 | |
Jack Jansen | 490ec9c | 1998-07-31 09:45:27 +0000 | [diff] [blame] | 39 | import buildtools |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 40 | import cfmfile |
| 41 | |
| 42 | # Dialog resource. Note that the item numbers should correspond |
| 43 | # to those in the DITL resource. Also note that the order is important: |
| 44 | # things are built in this order, so there should be no forward dependencies. |
| 45 | DIALOG_ID = 512 |
| 46 | |
| 47 | I_OK=1 |
| 48 | I_CANCEL=2 |
Jack Jansen | e56e87d | 2001-01-03 11:12:21 +0000 | [diff] [blame] | 49 | # label 3 |
| 50 | I_PPC_EXTLIBS=4 |
| 51 | I_GEN_PROJECTS=5 |
Jack Jansen | 1f5cd70 | 2001-01-21 22:25:11 +0000 | [diff] [blame] | 52 | I_GEN_PROJECTS_FORCE=6 |
| 53 | I_GEN_IMGPROJECTS=7 |
| 54 | I_GEN_IMGPROJECTS_FORCE=8 |
| 55 | I_INC_BUILDNO=9 |
| 56 | # label 10 |
| 57 | I_PPC_CORE=11 |
| 58 | I_PPC_PLUGINS=12 |
| 59 | I_PPC_EXTENSIONS=13 |
| 60 | # label 14 |
| 61 | I_CARBON_CORE=15 |
| 62 | I_CARBON_PLUGINS=16 |
| 63 | I_CARBON_EXTENSIONS=17 |
Jack Jansen | 5288c47 | 2001-02-12 14:46:53 +0000 | [diff] [blame] | 64 | I_INTERPRETER=18 |
| 65 | # label 19 |
| 66 | I_PPC_FULL=20 |
| 67 | I_PPC_SMALL=21 |
| 68 | # label 22 |
| 69 | I_CARBON_FULL=23 |
| 70 | I_CARBON_SMALL=24 |
| 71 | # label 25 |
| 72 | I_APPLETS=26 |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 73 | |
Jack Jansen | 5288c47 | 2001-02-12 14:46:53 +0000 | [diff] [blame] | 74 | N_BUTTONS=27 |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 75 | |
Jack Jansen | 87426b9 | 2000-08-17 22:12:12 +0000 | [diff] [blame] | 76 | if OLDAESUPPORT: |
| 77 | class MwShell(Metrowerks_Shell_Suite, CodeWarrior_suite, Metrowerks_Standard_Suite, |
| 78 | Required_Suite, aetools.TalkTo): |
| 79 | pass |
| 80 | else: |
| 81 | MwShell = CodeWarrior.CodeWarrior |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 82 | |
Jack Jansen | f04fa72 | 1996-04-10 14:51:14 +0000 | [diff] [blame] | 83 | RUNNING=[] |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 84 | |
| 85 | def buildmwproject(top, creator, projects): |
| 86 | """Build projects with an MW compiler""" |
Jack Jansen | b9e5e14 | 1996-09-20 15:30:52 +0000 | [diff] [blame] | 87 | mgr = MwShell(creator, start=1) |
Jack Jansen | 1023dff | 1996-02-21 15:28:49 +0000 | [diff] [blame] | 88 | mgr.send_timeout = AppleEvents.kNoTimeOut |
| 89 | |
Jack Jansen | bc66f95 | 2000-07-24 19:45:07 +0000 | [diff] [blame] | 90 | failed = [] |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 91 | for file in projects: |
Jack Jansen | 82bfde9 | 1997-08-27 14:10:29 +0000 | [diff] [blame] | 92 | if type(file) == type(()): |
| 93 | file, target = file |
| 94 | else: |
| 95 | target = '' |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 96 | file = os.path.join(top, file) |
Just van Rossum | 2607a44 | 1999-01-30 18:27:12 +0000 | [diff] [blame] | 97 | try: |
| 98 | fss = macfs.FSSpec(file) |
Jack Jansen | e56e87d | 2001-01-03 11:12:21 +0000 | [diff] [blame] | 99 | except MacOS.Error: |
Just van Rossum | 2607a44 | 1999-01-30 18:27:12 +0000 | [diff] [blame] | 100 | print '** file not found:', file |
| 101 | continue |
Jack Jansen | 82bfde9 | 1997-08-27 14:10:29 +0000 | [diff] [blame] | 102 | print 'Building', file, target |
Just van Rossum | 2607a44 | 1999-01-30 18:27:12 +0000 | [diff] [blame] | 103 | try: |
| 104 | mgr.open(fss) |
| 105 | except aetools.Error, detail: |
| 106 | print '**', detail, file |
| 107 | continue |
Jack Jansen | 82bfde9 | 1997-08-27 14:10:29 +0000 | [diff] [blame] | 108 | if target: |
| 109 | try: |
| 110 | mgr.Set_Current_Target(target) |
| 111 | except aetools.Error, arg: |
| 112 | print '**', file, target, 'Cannot select:', arg |
Jack Jansen | 1023dff | 1996-02-21 15:28:49 +0000 | [diff] [blame] | 113 | try: |
| 114 | mgr.Make_Project() |
Jack Jansen | b9e5e14 | 1996-09-20 15:30:52 +0000 | [diff] [blame] | 115 | except aetools.Error, arg: |
Jack Jansen | 82bfde9 | 1997-08-27 14:10:29 +0000 | [diff] [blame] | 116 | print '**', file, target, 'Failed:', arg |
Jack Jansen | bc66f95 | 2000-07-24 19:45:07 +0000 | [diff] [blame] | 117 | failed.append(fss) |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 118 | mgr.Close_Project() |
Jack Jansen | bc66f95 | 2000-07-24 19:45:07 +0000 | [diff] [blame] | 119 | if failed: |
| 120 | print 'Open failed projects and exit?', |
| 121 | rv = sys.stdin.readline() |
| 122 | if rv[0] in ('y', 'Y'): |
| 123 | for fss in failed: |
| 124 | mgr.open(fss) |
| 125 | sys.exit(0) |
Jack Jansen | f04fa72 | 1996-04-10 14:51:14 +0000 | [diff] [blame] | 126 | ## mgr.quit() |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 127 | |
| 128 | def buildapplet(top, dummy, list): |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 129 | """Create python applets""" |
Jack Jansen | cbb5d49 | 2001-02-17 23:31:48 +0000 | [diff] [blame] | 130 | for src, dst, tmpl in list: |
| 131 | template = buildtools.findtemplate(tmpl) |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 132 | if src[-3:] != '.py': |
| 133 | raise 'Should end in .py', src |
| 134 | base = os.path.basename(src) |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 135 | src = os.path.join(top, src) |
Just van Rossum | 9d609b4 | 1999-02-01 01:21:18 +0000 | [diff] [blame] | 136 | dst = os.path.join(top, dst) |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 137 | try: |
| 138 | os.unlink(dst) |
| 139 | except os.error: |
| 140 | pass |
| 141 | print 'Building applet', dst |
Jack Jansen | cbb5d49 | 2001-02-17 23:31:48 +0000 | [diff] [blame] | 142 | try: |
| 143 | buildtools.process(template, src, dst, 1) |
| 144 | except buildtools.BuildError, arg: |
| 145 | print '**', dst, arg |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 146 | |
Jack Jansen | 1f5cd70 | 2001-01-21 22:25:11 +0000 | [diff] [blame] | 147 | def buildprojectfile(top, arg, list): |
Jack Jansen | e56e87d | 2001-01-03 11:12:21 +0000 | [diff] [blame] | 148 | """Create CodeWarrior project files with a script""" |
| 149 | for folder, module, routine in list: |
| 150 | print "Generating project files with", module |
| 151 | sys.path.insert(0, os.path.join(top, folder)) |
| 152 | m = __import__(module) |
| 153 | r = getattr(m, routine) |
Jack Jansen | 1f5cd70 | 2001-01-21 22:25:11 +0000 | [diff] [blame] | 154 | r(arg) |
Jack Jansen | e56e87d | 2001-01-03 11:12:21 +0000 | [diff] [blame] | 155 | del sys.path[0] |
| 156 | |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 157 | def buildfat(top, dummy, list): |
| 158 | """Build fat binaries""" |
| 159 | for dst, src1, src2 in list: |
| 160 | dst = os.path.join(top, dst) |
| 161 | src1 = os.path.join(top, src1) |
| 162 | src2 = os.path.join(top, src2) |
| 163 | print 'Building fat binary', dst |
| 164 | cfmfile.mergecfmfiles((src1, src2), dst) |
| 165 | |
Jack Jansen | 5288c47 | 2001-02-12 14:46:53 +0000 | [diff] [blame] | 166 | def buildcopy(top, dummy, list): |
| 167 | import macostools |
| 168 | for src, dst in list: |
| 169 | src = os.path.join(top, src) |
| 170 | dst = os.path.join(top, dst) |
Jack Jansen | c1463c98 | 2001-03-06 22:46:25 +0000 | [diff] [blame] | 171 | macostools.copy(src, dst, forcetype="APPL") |
Jack Jansen | 5288c47 | 2001-02-12 14:46:53 +0000 | [diff] [blame] | 172 | |
Jack Jansen | 675cda0 | 1997-09-09 13:57:15 +0000 | [diff] [blame] | 173 | def handle_dialog(filename): |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 174 | """Handle selection dialog, return list of selected items""" |
| 175 | d = Dlg.GetNewDialog(DIALOG_ID, -1) |
| 176 | d.SetDialogDefaultItem(I_OK) |
| 177 | d.SetDialogCancelItem(I_CANCEL) |
| 178 | results = [0]*N_BUTTONS |
| 179 | while 1: |
| 180 | n = Dlg.ModalDialog(None) |
| 181 | if n == I_OK: |
| 182 | break |
| 183 | if n == I_CANCEL: |
| 184 | return [] |
Jack Jansen | 675cda0 | 1997-09-09 13:57:15 +0000 | [diff] [blame] | 185 | if n == I_INC_BUILDNO: |
| 186 | incbuildno(filename) |
| 187 | continue |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 188 | if n < len(results): |
| 189 | results[n] = (not results[n]) |
Jack Jansen | c9b1e90 | 1999-12-24 13:39:23 +0000 | [diff] [blame] | 190 | ctl = d.GetDialogItemAsControl(n) |
| 191 | ctl.SetControlValue(results[n]) |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 192 | rv = [] |
| 193 | for i in range(len(results)): |
| 194 | if results[i]: |
| 195 | rv.append(i) |
| 196 | return rv |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 197 | |
| 198 | # |
| 199 | # The build instructions. Entries are (routine, arg, list-of-files) |
| 200 | # XXXX We could also include the builds for stdwin and such here... |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 201 | BUILD_DICT = { |
Jack Jansen | 1f5cd70 | 2001-01-21 22:25:11 +0000 | [diff] [blame] | 202 | I_GEN_PROJECTS : (buildprojectfile, 0, [ |
Jack Jansen | e56e87d | 2001-01-03 11:12:21 +0000 | [diff] [blame] | 203 | (":Mac:scripts", "genpluginprojects", "genallprojects") |
| 204 | ]), |
| 205 | |
Jack Jansen | 1f5cd70 | 2001-01-21 22:25:11 +0000 | [diff] [blame] | 206 | I_GEN_PROJECTS_FORCE : (buildprojectfile, 1, [ |
| 207 | (":Mac:scripts", "genpluginprojects", "genallprojects") |
| 208 | ]), |
| 209 | |
| 210 | I_GEN_IMGPROJECTS : (buildprojectfile, 0, [ |
Jack Jansen | e56e87d | 2001-01-03 11:12:21 +0000 | [diff] [blame] | 211 | (":Extensions:img:Mac", "genimgprojects", "genallprojects") |
| 212 | ]), |
| 213 | |
Jack Jansen | 1f5cd70 | 2001-01-21 22:25:11 +0000 | [diff] [blame] | 214 | I_GEN_IMGPROJECTS_FORCE : (buildprojectfile, 1, [ |
| 215 | (":Extensions:img:Mac", "genimgprojects", "genallprojects") |
| 216 | ]), |
| 217 | |
Jack Jansen | 5288c47 | 2001-02-12 14:46:53 +0000 | [diff] [blame] | 218 | I_INTERPRETER : (buildcopy, None, [ |
| 219 | ("PythonInterpreterCarbon", "PythonInterpreter"), |
| 220 | ]), |
| 221 | |
Jack Jansen | 1f5cd70 | 2001-01-21 22:25:11 +0000 | [diff] [blame] | 222 | I_PPC_CORE : (buildmwproject, "CWIE", [ |
Jack Jansen | a5d384d | 2000-12-03 22:36:42 +0000 | [diff] [blame] | 223 | (":Mac:Build:PythonCore.mcp", "PythonCore"), |
Jack Jansen | 5288c47 | 2001-02-12 14:46:53 +0000 | [diff] [blame] | 224 | (":Mac:Build:PythonInterpreter.mcp", "PythonInterpreterClassic"), |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 225 | ]), |
| 226 | |
Jack Jansen | 1f5cd70 | 2001-01-21 22:25:11 +0000 | [diff] [blame] | 227 | I_CARBON_CORE : (buildmwproject, "CWIE", [ |
| 228 | (":Mac:Build:PythonCore.mcp", "PythonCoreCarbon"), |
| 229 | (":Mac:Build:PythonInterpreter.mcp", "PythonInterpreterCarbon"), |
| 230 | ]), |
| 231 | |
Jack Jansen | e56e87d | 2001-01-03 11:12:21 +0000 | [diff] [blame] | 232 | I_PPC_EXTLIBS : (buildmwproject, "CWIE", [ |
| 233 | ## (":Mac:Build:buildlibs.mcp", "buildlibs ppc plus tcl/tk"), |
| 234 | (":Mac:Build:buildlibs.mcp", "buildlibs ppc"), |
| 235 | ]), |
| 236 | |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 237 | I_PPC_PLUGINS : (buildmwproject, "CWIE", [ |
Jack Jansen | 5288c47 | 2001-02-12 14:46:53 +0000 | [diff] [blame] | 238 | (":Mac:Build:_weakref.mcp", "_weakref.ppc"), |
| 239 | (":Mac:Build:_symtable.mcp", "_symtable.ppc"), |
| 240 | (":Mac:Build:_testcapi.mcp", "_testcapi.ppc"), |
Jack Jansen | a5d384d | 2000-12-03 22:36:42 +0000 | [diff] [blame] | 241 | (":Mac:Build:pyexpat.mcp", "pyexpat.ppc"), |
| 242 | (":Mac:Build:calldll.mcp", "calldll.ppc"), |
| 243 | (":Mac:Build:ctb.mcp", "ctb.ppc"), |
| 244 | (":Mac:Build:gdbm.mcp", "gdbm.ppc"), |
| 245 | (":Mac:Build:icglue.mcp", "icglue.ppc"), |
| 246 | (":Mac:Build:macspeech.mcp", "macspeech.ppc"), |
| 247 | (":Mac:Build:waste.mcp", "waste.ppc"), |
| 248 | (":Mac:Build:zlib.mcp", "zlib.ppc"), |
| 249 | ## (":Mac:Build:_tkinter.mcp", "_tkinter.ppc"), |
Jack Jansen | 07d69f6 | 2001-01-01 21:51:33 +0000 | [diff] [blame] | 250 | (":Extensions:Imaging:_tkinter.mcp", "_tkinter.ppc"), |
Jack Jansen | a5d384d | 2000-12-03 22:36:42 +0000 | [diff] [blame] | 251 | (":Mac:Build:ColorPicker.mcp", "ColorPicker.ppc"), |
| 252 | (":Mac:Build:Printing.mcp", "Printing.ppc"), |
Jack Jansen | 77105a9 | 2001-08-23 13:51:46 +0000 | [diff] [blame] | 253 | (":Mac:Build:_AE.mcp", "_AE.ppc"), |
| 254 | (":Mac:Build:_App.mcp", "_App.ppc"), |
| 255 | (":Mac:Build:_Cm.mcp", "_Cm.ppc"), |
| 256 | (":Mac:Build:_Ctl.mcp", "_Ctl.ppc"), |
| 257 | (":Mac:Build:_Dlg.mcp", "_Dlg.ppc"), |
| 258 | (":Mac:Build:_Drag.mcp", "_Drag.ppc"), |
| 259 | (":Mac:Build:_Evt.mcp", "_Evt.ppc"), |
| 260 | (":Mac:Build:_Fm.mcp", "_Fm.ppc"), |
| 261 | (":Mac:Build:_Help.mcp", "_Help.ppc"), |
| 262 | (":Mac:Build:_Icn.mcp", "_Icn.ppc"), |
| 263 | (":Mac:Build:_List.mcp", "_List.ppc"), |
| 264 | (":Mac:Build:_Menu.mcp", "_Menu.ppc"), |
| 265 | (":Mac:Build:_Mlte.mcp", "_Mlte.ppc"), |
| 266 | (":Mac:Build:_Qd.mcp", "_Qd.ppc"), |
| 267 | (":Mac:Build:_Qdoffs.mcp", "_Qdoffs.ppc"), |
| 268 | (":Mac:Build:_Qt.mcp", "_Qt.ppc"), |
| 269 | (":Mac:Build:_Res.mcp", "_Res.ppc"), |
| 270 | (":Mac:Build:_Scrap.mcp", "_Scrap.ppc"), |
| 271 | (":Mac:Build:_Snd.mcp", "_Snd.ppc"), |
| 272 | (":Mac:Build:_Sndihooks.mcp", "_Sndihooks.ppc"), |
| 273 | (":Mac:Build:_TE.mcp", "_TE.ppc"), |
| 274 | (":Mac:Build:_Win.mcp", "_Win.ppc"), |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 275 | ]), |
| 276 | |
Jack Jansen | c3fc51f | 2001-01-23 22:36:52 +0000 | [diff] [blame] | 277 | I_CARBON_PLUGINS : (buildmwproject, "CWIE", [ |
Jack Jansen | 5288c47 | 2001-02-12 14:46:53 +0000 | [diff] [blame] | 278 | (":Mac:Build:_weakref.carbon.mcp", "_weakref.carbon"), |
| 279 | (":Mac:Build:_symtable.carbon.mcp", "_symtable.carbon"), |
| 280 | (":Mac:Build:_testcapi.carbon.mcp", "_testcapi.carbon"), |
Jack Jansen | c3fc51f | 2001-01-23 22:36:52 +0000 | [diff] [blame] | 281 | (":Mac:Build:pyexpat.carbon.mcp", "pyexpat.carbon"), |
| 282 | (":Mac:Build:calldll.carbon.mcp", "calldll.carbon"), |
| 283 | (":Mac:Build:gdbm.carbon.mcp", "gdbm.carbon"), |
Jack Jansen | 5a8115c | 2001-01-29 13:27:46 +0000 | [diff] [blame] | 284 | (":Mac:Build:icglue.carbon.mcp", "icglue.carbon"), |
Jack Jansen | 8c98266 | 2001-01-24 16:02:07 +0000 | [diff] [blame] | 285 | (":Mac:Build:waste.carbon.mcp", "waste.carbon"), |
Jack Jansen | c3fc51f | 2001-01-23 22:36:52 +0000 | [diff] [blame] | 286 | (":Mac:Build:zlib.carbon.mcp", "zlib.carbon"), |
Jack Jansen | 875b51d | 2001-03-20 23:30:06 +0000 | [diff] [blame] | 287 | (":Mac:Build:_dummy_tkinter.mcp", "_tkinter.carbon"), |
Jack Jansen | c3fc51f | 2001-01-23 22:36:52 +0000 | [diff] [blame] | 288 | ## (":Extensions:Imaging:_tkinter.carbon.mcp", "_tkinter.carbon"), |
| 289 | (":Mac:Build:ColorPicker.carbon.mcp", "ColorPicker.carbon"), |
Jack Jansen | 77105a9 | 2001-08-23 13:51:46 +0000 | [diff] [blame] | 290 | (":Mac:Build:_AE.carbon.mcp", "_AE.carbon"), |
| 291 | (":Mac:Build:_App.carbon.mcp", "_App.carbon"), |
| 292 | (":Mac:Build:_CF.carbon.mcp", "_CF.carbon"), |
| 293 | (":Mac:Build:_Cm.carbon.mcp", "_Cm.carbon"), |
| 294 | (":Mac:Build:_Ctl.carbon.mcp", "_Ctl.carbon"), |
| 295 | (":Mac:Build:_Dlg.carbon.mcp", "_Dlg.carbon"), |
| 296 | (":Mac:Build:_Drag.carbon.mcp", "_Drag.carbon"), |
| 297 | (":Mac:Build:_Evt.carbon.mcp", "_Evt.carbon"), |
| 298 | (":Mac:Build:_Fm.carbon.mcp", "_Fm.carbon"), |
| 299 | (":Mac:Build:_Icn.carbon.mcp", "_Icn.carbon"), |
| 300 | (":Mac:Build:_List.carbon.mcp", "_List.carbon"), |
| 301 | (":Mac:Build:_Menu.carbon.mcp", "_Menu.carbon"), |
| 302 | (":Mac:Build:_Mlte.carbon.mcp", "_Mlte.carbon"), |
| 303 | (":Mac:Build:_Qd.carbon.mcp", "_Qd.carbon"), |
| 304 | (":Mac:Build:_Qdoffs.carbon.mcp", "_Qdoffs.carbon"), |
| 305 | (":Mac:Build:_Qt.carbon.mcp", "_Qt.carbon"), |
| 306 | (":Mac:Build:_Res.carbon.mcp", "_Res.carbon"), |
| 307 | (":Mac:Build:_Scrap.carbon.mcp", "_Scrap.carbon"), |
| 308 | (":Mac:Build:_Snd.carbon.mcp", "_Snd.carbon"), |
| 309 | (":Mac:Build:_Sndihooks.carbon.mcp", "_Sndihooks.carbon"), |
| 310 | (":Mac:Build:_TE.carbon.mcp", "_TE.carbon"), |
| 311 | (":Mac:Build:_Win.carbon.mcp", "_Win.carbon"), |
Jack Jansen | f4b9fb7 | 2001-06-26 21:52:08 +0000 | [diff] [blame] | 312 | |
Jack Jansen | c3fc51f | 2001-01-23 22:36:52 +0000 | [diff] [blame] | 313 | ]), |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 314 | |
Jack Jansen | 131c288 | 2001-01-24 14:06:35 +0000 | [diff] [blame] | 315 | I_PPC_FULL : (buildmwproject, "CWIE", [ |
| 316 | (":Mac:Build:PythonStandalone.mcp", "PythonStandalone"), |
| 317 | ]), |
| 318 | |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 319 | I_PPC_SMALL : (buildmwproject, "CWIE", [ |
Jack Jansen | a5d384d | 2000-12-03 22:36:42 +0000 | [diff] [blame] | 320 | (":Mac:Build:PythonStandSmall.mcp", "PythonStandSmall"), |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 321 | ]), |
| 322 | |
Jack Jansen | 5288c47 | 2001-02-12 14:46:53 +0000 | [diff] [blame] | 323 | I_CARBON_FULL : (buildmwproject, "CWIE", [ |
| 324 | (":Mac:Build:PythonStandalone.mcp", "PythonCarbonStandalone"), |
| 325 | ]), |
| 326 | |
| 327 | I_CARBON_SMALL : (buildmwproject, "CWIE", [ |
| 328 | (":Mac:Build:PythonStandSmall.mcp", "PythonStandSmallCarbon"), |
| 329 | ]), |
| 330 | |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 331 | I_PPC_EXTENSIONS : (buildmwproject, "CWIE", [ |
Jack Jansen | a5d384d | 2000-12-03 22:36:42 +0000 | [diff] [blame] | 332 | (":Extensions:Imaging:_imaging.mcp", "_imaging.ppc"), |
| 333 | ## (":Extensions:Imaging:_tkinter.mcp", "_tkinter.ppc"), |
Jack Jansen | 7b7e713 | 2001-01-23 23:19:41 +0000 | [diff] [blame] | 334 | (":Extensions:img:Mac:imgmodules.mcp", "imgmodules.ppc"), |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 335 | ]), |
| 336 | |
Jack Jansen | 7b7e713 | 2001-01-23 23:19:41 +0000 | [diff] [blame] | 337 | I_CARBON_EXTENSIONS : (buildmwproject, "CWIE", [ |
Jack Jansen | a647807 | 2001-03-01 23:15:01 +0000 | [diff] [blame] | 338 | (":Extensions:Imaging:_imaging.mcp", "_imaging.carbon"), |
Jack Jansen | 7b7e713 | 2001-01-23 23:19:41 +0000 | [diff] [blame] | 339 | ## (":Extensions:Imaging:_tkinter.mcp", "_tkinter.carbon"), |
| 340 | (":Extensions:img:Mac:imgmodules.mcp", "imgmodules.carbon"), |
Jack Jansen | 7b7e713 | 2001-01-23 23:19:41 +0000 | [diff] [blame] | 341 | ]), |
| 342 | |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 343 | I_APPLETS : (buildapplet, None, [ |
Jack Jansen | cbb5d49 | 2001-02-17 23:31:48 +0000 | [diff] [blame] | 344 | (":Mac:scripts:EditPythonPrefs.py", "EditPythonPrefs", None), |
| 345 | (":Mac:scripts:BuildApplet.py", "BuildApplet", None), |
| 346 | (":Mac:scripts:BuildApplication.py", "BuildApplication", None), |
| 347 | (":Mac:scripts:ConfigurePython.py", "ConfigurePython", None), |
| 348 | (":Mac:scripts:ConfigurePython.py", "ConfigurePythonCarbon", "PythonInterpreterCarbon"), |
| 349 | (":Mac:scripts:ConfigurePython.py", "ConfigurePythonClassic", "PythonInterpreterClassic"), |
| 350 | (":Mac:Tools:IDE:PythonIDE.py", "Python IDE", None), |
| 351 | (":Mac:Tools:CGI:PythonCGISlave.py", ":Mac:Tools:CGI:PythonCGISlave", None), |
| 352 | (":Mac:Tools:CGI:BuildCGIApplet.py", ":Mac:Tools:CGI:BuildCGIApplet", None), |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 353 | ]), |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 354 | } |
Jack Jansen | faad995 | 1997-09-01 15:37:07 +0000 | [diff] [blame] | 355 | |
| 356 | def incbuildno(filename): |
| 357 | fp = open(filename) |
| 358 | line = fp.readline() |
| 359 | fp.close() |
| 360 | |
Jack Jansen | be614ee | 2001-01-02 22:02:02 +0000 | [diff] [blame] | 361 | pat = re.compile('#define BUILD ([0-9]+)') |
| 362 | m = pat.search(line) |
| 363 | if not m or not m.group(1): |
Jack Jansen | faad995 | 1997-09-01 15:37:07 +0000 | [diff] [blame] | 364 | raise 'Incorrect macbuildno.h line', line |
Jack Jansen | be614ee | 2001-01-02 22:02:02 +0000 | [diff] [blame] | 365 | buildno = m.group(1) |
Jack Jansen | faad995 | 1997-09-01 15:37:07 +0000 | [diff] [blame] | 366 | new = string.atoi(buildno) + 1 |
| 367 | fp = open(filename, 'w') |
| 368 | fp.write('#define BUILD %d\n'%new) |
| 369 | fp.close() |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 370 | |
| 371 | def main(): |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 372 | try: |
Jack Jansen | d13c385 | 2000-06-20 21:59:25 +0000 | [diff] [blame] | 373 | h = Res.FSpOpenResFile('fullbuild.rsrc', 1) |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 374 | except Res.Error: |
| 375 | pass # Assume we already have acces to our own resource |
| 376 | |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 377 | dir, ok = macfs.GetDirectory('Python source folder:') |
| 378 | if not ok: |
| 379 | sys.exit(0) |
| 380 | dir = dir.as_pathname() |
Jack Jansen | e791a64 | 2001-08-16 20:39:17 +0000 | [diff] [blame] | 381 | # Set genpluginprojects to use this folder (slight hack) |
| 382 | genpluginprojects.PYTHONDIR = dir |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 383 | |
Jack Jansen | 675cda0 | 1997-09-09 13:57:15 +0000 | [diff] [blame] | 384 | todo = handle_dialog(os.path.join(dir, MACBUILDNO)) |
| 385 | |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 386 | instructions = [] |
| 387 | for i in todo: |
| 388 | instructions.append(BUILD_DICT[i]) |
| 389 | |
| 390 | for routine, arg, list in instructions: |
Jack Jansen | 8b4c987 | 1997-05-07 15:52:12 +0000 | [diff] [blame] | 391 | routine(dir, arg, list) |
Jack Jansen | 0f00c5e | 1997-05-06 16:15:32 +0000 | [diff] [blame] | 392 | |
Jack Jansen | e56e87d | 2001-01-03 11:12:21 +0000 | [diff] [blame] | 393 | if todo: |
| 394 | print "All done!" |
Jack Jansen | 6655c4e | 1995-09-01 12:03:32 +0000 | [diff] [blame] | 395 | |
| 396 | if __name__ == '__main__': |
| 397 | main() |
| 398 | |