summaryrefslogtreecommitdiffstats
path: root/Mac
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>2001-02-17 23:31:48 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>2001-02-17 23:31:48 (GMT)
commitcbb5d4972f07423ce51d6181ffad8b14b07594bf (patch)
treed054e114a5db011540b8bb9372e854987ba23bfe /Mac
parenta4f8e580588b7ebd5fde61debab3fdb72f37cdec (diff)
downloadcpython-cbb5d4972f07423ce51d6181ffad8b14b07594bf.zip
cpython-cbb5d4972f07423ce51d6181ffad8b14b07594bf.tar.gz
cpython-cbb5d4972f07423ce51d6181ffad8b14b07594bf.tar.bz2
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.
Diffstat (limited to 'Mac')
-rw-r--r--Mac/scripts/ConfigurePython.py157
-rw-r--r--Mac/scripts/ConfigurePython.rsrcbin6935 -> 8145 bytes
-rw-r--r--Mac/scripts/fullbuild.py25
3 files changed, 81 insertions, 101 deletions
diff --git a/Mac/scripts/ConfigurePython.py b/Mac/scripts/ConfigurePython.py
index e49c773..c77b0ab 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 2f23602..922cbc2 100644
--- a/Mac/scripts/ConfigurePython.rsrc
+++ b/Mac/scripts/ConfigurePython.rsrc
Binary files differ
diff --git a/Mac/scripts/fullbuild.py b/Mac/scripts/fullbuild.py
index 0750a46..48c4539 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),
]),
}