From cbb5d4972f07423ce51d6181ffad8b14b07594bf Mon Sep 17 00:00:00 2001 From: Jack Jansen Date: Sat, 17 Feb 2001 23:31:48 +0000 Subject: [PATCH] ConfigurePython now comes in two flavors: ConfigurePythonClassic and ConfigurePythonCarbon, which copy the respective interpreters to PythonInterpreter and rebuild all the applets. This allows MacOS9 users to switch back and forth. --- Mac/scripts/ConfigurePython.py | 157 +++++++++++++------------------ Mac/scripts/ConfigurePython.rsrc | Bin 6935 -> 8145 bytes Mac/scripts/fullbuild.py | 25 +++-- 3 files changed, 81 insertions(+), 101 deletions(-) diff --git a/Mac/scripts/ConfigurePython.py b/Mac/scripts/ConfigurePython.py index e49c77329b73..c77b0ab361d4 100644 --- a/Mac/scripts/ConfigurePython.py +++ b/Mac/scripts/ConfigurePython.py @@ -11,57 +11,29 @@ import sys import os import macfs import MacOS -verbose=0 -SPLASH_LOCATE=512 -SPLASH_REMOVE=513 -SPLASH_CFM68K=514 -SPLASH_PPC=515 -SPLASH_NUMPY=516 +SPLASH_COPYCORE=512 +SPLASH_COPYCARBON=513 +SPLASH_COPYCLASSIC=514 +SPLASH_BUILDAPPLETS=515 + +ALERT_NOCORE=516 ALERT_NONBOOT=517 ALERT_NONBOOT_COPY=1 ALERT_NONBOOT_ALIAS=2 -ppc_goals = [ +APPLET_LIST=[ + (":Mac:scripts:EditPythonPrefs.py", "EditPythonPrefs", None), + (":Mac:scripts:BuildApplet.py", "BuildApplet", None), + (":Mac:scripts:BuildApplication.py", "BuildApplication", None), +## (":Mac:scripts:ConfigurePython.py", "ConfigurePython", None), +## (":Mac:scripts:ConfigurePython.py", "ConfigurePythonCarbon", "PythonInterpreterCarbon"), +## (":Mac:scripts:ConfigurePython.py", "ConfigurePythonClassic", "PythonInterpreterClassic"), + (":Mac:Tools:IDE:PythonIDE.py", "Python IDE", None), + (":Mac:Tools:CGI:PythonCGISlave.py", ":Mac:Tools:CGI:PythonCGISlave", None), + (":Mac:Tools:CGI:BuildCGIApplet.py", ":Mac:Tools:CGI:BuildCGIApplet", None), ] -def gotopluginfolder(): - """Go to the plugin folder, assuming we are somewhere in the Python tree""" - import os - - while not os.path.isdir(":Mac:PlugIns"): - os.chdir("::") - os.chdir(":Mac:PlugIns") - if verbose: print "current directory is", os.getcwd() - -def loadtoolboxmodules(): - """Attempt to load the Res module""" - try: - import Res - except ImportError, arg: - err1 = arg - pass - else: - if verbose: print 'imported Res the standard way.' - return - - # We cannot import it. Try a manual load - try: - dummy = imp.load_dynamic('Res', 'toolboxmodules.ppc.slb') - except ImportError, arg: - err3 = arg - pass - else: - if verbose: print 'Loaded Res from toolboxmodules.ppc.slb.' - return - - # Tough luck.... - print "I cannot import the Res module, nor load it from either of" - print "toolboxmodules shared libraries. The errors encountered were:" - print "import Res:", err1 - print "load from toolboxmodules.ppc.slb:", err3 - sys.exit(1) - def getextensiondirfile(fname): import macfs import MACFS @@ -76,7 +48,6 @@ def mkcorealias(src, altsrc): dst = getextensiondirfile(src+ ' ' + version) if not os.path.exists(os.path.join(sys.exec_prefix, src)): if not os.path.exists(os.path.join(sys.exec_prefix, altsrc)): - if verbose: print '*', src, 'not found' return 0 src = altsrc try: @@ -96,63 +67,67 @@ def mkcorealias(src, altsrc): macostools.copy(os.path.join(sys.exec_prefix, src), dst) else: macostools.mkalias(os.path.join(sys.exec_prefix, src), dst) - if verbose: print ' ', dst, '->', src return 1 - + +# Copied from fullbuild, should probably go to buildtools +def buildapplet(top, dummy, list): + """Create python applets""" + import buildtools + for src, dst, tmpl in list: + template = buildtools.findtemplate(tmpl) + if src[-3:] != '.py': + raise 'Should end in .py', src + base = os.path.basename(src) + src = os.path.join(top, src) + dst = os.path.join(top, dst) + try: + os.unlink(dst) + except os.error: + pass + try: + buildtools.process(template, src, dst, 1) + except buildtools.BuildError, arg: + print '**', dst, arg + +def buildcopy(top, dummy, list): + import macostools + for src, dst in list: + src = os.path.join(top, src) + dst = os.path.join(top, dst) + import pdb ; pdb.set_trace() + macostools.copy(src, dst) def main(): - MacOS.splash(SPLASH_LOCATE) - gotopluginfolder() - - loadtoolboxmodules() + os.chdir(sys.prefix) sys.path.append('::Mac:Lib') import macostools - - # Remove old .slb aliases and collect a list of .slb files - didsplash = 0 - LibFiles = [] - allfiles = os.listdir(':') - if verbose: print 'Removing old aliases...' - for f in allfiles: - if f[-4:] == '.slb': - finfo = macfs.FSSpec(f).GetFInfo() - if finfo.Flags & 0x8000: - if not didsplash: - MacOS.splash(SPLASH_REMOVE) - didsplash = 1 - if verbose: print ' Removing', f - os.unlink(f) - else: - LibFiles.append(f) - if verbose: print ' Found', f - if verbose: print - - # Create the new PPC aliases. - didsplash = 0 - if verbose: print 'Creating PPC aliases...' - for dst, src in ppc_goals: - if src in LibFiles: - if not didsplash: - MacOS.splash(SPLASH_PPC) - didsplash = 1 - macostools.mkalias(src, dst) - if verbose: print ' ', dst, '->', src - else: - if verbose: print '*', dst, 'not created:', src, 'not found' - if verbose: print # Create the PythonCore alias(es) - if verbose: print 'Creating PythonCore aliases in Extensions folder...' - os.chdir('::') + MacOS.splash(SPLASH_COPYCORE) n = 0 n = n + mkcorealias('PythonCore', 'PythonCore') n = n + mkcorealias('PythonCoreCarbon', 'PythonCoreCarbon') - - if verbose and n == 0: + if n == 0: + Dlg.CautionAlert(ALERT_NOCORE, None) + return + if sys.argv[0][-7:] == 'Classic': + do_classic = 1 + elif sys.argv[0][-6:] == 'Carbon': + do_classic = 0 + elif sys.argv[0][-15:] == 'ConfigurePython' or sys.argv[0][-18:] == 'ConfigurePython.py': + return + else: + print "I don't know the sys.argv[0] function", sys.argv[0] sys.exit(1) - + if do_classic: + MacOS.splash(SPLASH_COPYCLASSIC) + buildcopy(sys.prefix, None, [("PythonInterpreterClassic", "PythonInterpreter")]) + else: + MacOS.splash(SPLASH_COPYCARBON) + buildcopy(sys.prefix, None, [("PythonInterpreterCarbon", "PythonInterpreter")]) + MacOS.splash(SPLASH_BUILDAPPLETS) + buildapplet(sys.prefix, None, APPLET_LIST) + if __name__ == '__main__': - if len(sys.argv) > 1 and sys.argv[1] == '-v': - verbose = 1 main() diff --git a/Mac/scripts/ConfigurePython.rsrc b/Mac/scripts/ConfigurePython.rsrc index 2f23602ba1504c482ab2d58c2b39b40f32535377..922cbc23928c5e780aec54742338f1bf70ba8b8f 100644 GIT binary patch literal 8145 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 diff --git a/Mac/scripts/fullbuild.py b/Mac/scripts/fullbuild.py index 0750a46e386c..48c4539171fc 100644 --- a/Mac/scripts/fullbuild.py +++ b/Mac/scripts/fullbuild.py @@ -126,8 +126,8 @@ def buildmwproject(top, creator, projects): def buildapplet(top, dummy, list): """Create python applets""" - template = buildtools.findtemplate() - for src, dst in list: + for src, dst, tmpl in list: + template = buildtools.findtemplate(tmpl) if src[-3:] != '.py': raise 'Should end in .py', src base = os.path.basename(src) @@ -138,7 +138,10 @@ def buildapplet(top, dummy, list): except os.error: pass print 'Building applet', dst - buildtools.process(template, src, dst, 1) + try: + buildtools.process(template, src, dst, 1) + except buildtools.BuildError, arg: + print '**', dst, arg def buildprojectfile(top, arg, list): """Create CodeWarrior project files with a script""" @@ -331,13 +334,15 @@ I_CARBON_EXTENSIONS : (buildmwproject, "CWIE", [ ]), I_APPLETS : (buildapplet, None, [ - (":Mac:scripts:EditPythonPrefs.py", "EditPythonPrefs"), - (":Mac:scripts:BuildApplet.py", "BuildApplet"), - (":Mac:scripts:BuildApplication.py", "BuildApplication"), - (":Mac:scripts:ConfigurePython.py", "ConfigurePython"), - (":Mac:Tools:IDE:PythonIDE.py", "Python IDE"), - (":Mac:Tools:CGI:PythonCGISlave.py", ":Mac:Tools:CGI:PythonCGISlave"), - (":Mac:Tools:CGI:BuildCGIApplet.py", ":Mac:Tools:CGI:BuildCGIApplet"), + (":Mac:scripts:EditPythonPrefs.py", "EditPythonPrefs", None), + (":Mac:scripts:BuildApplet.py", "BuildApplet", None), + (":Mac:scripts:BuildApplication.py", "BuildApplication", None), + (":Mac:scripts:ConfigurePython.py", "ConfigurePython", None), + (":Mac:scripts:ConfigurePython.py", "ConfigurePythonCarbon", "PythonInterpreterCarbon"), + (":Mac:scripts:ConfigurePython.py", "ConfigurePythonClassic", "PythonInterpreterClassic"), + (":Mac:Tools:IDE:PythonIDE.py", "Python IDE", None), + (":Mac:Tools:CGI:PythonCGISlave.py", ":Mac:Tools:CGI:PythonCGISlave", None), + (":Mac:Tools:CGI:BuildCGIApplet.py", ":Mac:Tools:CGI:BuildCGIApplet", None), ]), } -- 2.47.3