summaryrefslogtreecommitdiff
path: root/Tools/freeze/makefreeze.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2001-10-18 19:15:32 +0000
committerGuido van Rossum <guido@python.org>2001-10-18 19:15:32 +0000
commit03f7f088743bbab2dd5aa426670a41fd643112cd (patch)
treeb1427132d21ba0eb5f14120e1d91b6425e9b0826 /Tools/freeze/makefreeze.py
parentdb7287c0f5b197bbfaf624d181333a92135ec261 (diff)
downloadcpython-git-03f7f088743bbab2dd5aa426670a41fd643112cd.tar.gz
Part 2/2 of SF patch #416704: More robust freeze, by Toby Dickenson.
(With slight cosmetic improvements to shorten lines and a grammar fix to a docstring.) This addes -X and -E options to freeze. From the docstring: -X module Like -x, except the module can never be imported by the frozen binary. -E: Freeze will fail if any modules can't be found (that were not excluded using -x or -X).
Diffstat (limited to 'Tools/freeze/makefreeze.py')
-rw-r--r--Tools/freeze/makefreeze.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/Tools/freeze/makefreeze.py b/Tools/freeze/makefreeze.py
index b7bf9fda4e..ac59a9cbd9 100644
--- a/Tools/freeze/makefreeze.py
+++ b/Tools/freeze/makefreeze.py
@@ -32,7 +32,7 @@ main(argc, argv)
"""
-def makefreeze(base, dict, debug=0, entry_point = None):
+def makefreeze(base, dict, debug=0, entry_point=None, fail_import=()):
if entry_point is None: entry_point = default_entry_point
done = []
files = []
@@ -63,6 +63,13 @@ def makefreeze(base, dict, debug=0, entry_point = None):
outfp.write(header)
for mod, mangled, size in done:
outfp.write('\t{"%s", M_%s, %d},\n' % (mod, mangled, size))
+ outfp.write('\n')
+ # The following modules have a NULL code pointer, indicating
+ # that the prozen program should not search for them on the host
+ # system. Importing them will *always* raise an ImportError.
+ # The zero value size is never used.
+ for mod in fail_import:
+ outfp.write('\t{"%s", NULL, 0},\n' % (mod,))
outfp.write(trailer)
outfp.write(entry_point)
outfp.close()