summaryrefslogtreecommitdiffstats
path: root/AppPkg/Applications/Python/Python-2.7.2/Tools/freeze/makeconfig.py
diff options
context:
space:
mode:
Diffstat (limited to 'AppPkg/Applications/Python/Python-2.7.2/Tools/freeze/makeconfig.py')
-rw-r--r--AppPkg/Applications/Python/Python-2.7.2/Tools/freeze/makeconfig.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/AppPkg/Applications/Python/Python-2.7.2/Tools/freeze/makeconfig.py b/AppPkg/Applications/Python/Python-2.7.2/Tools/freeze/makeconfig.py
new file mode 100644
index 0000000000..1e8f7e2535
--- /dev/null
+++ b/AppPkg/Applications/Python/Python-2.7.2/Tools/freeze/makeconfig.py
@@ -0,0 +1,60 @@
+import re
+import sys
+
+# Write the config.c file
+
+never = ['marshal', '__main__', '__builtin__', 'sys', 'exceptions', '_warnings']
+
+def makeconfig(infp, outfp, modules, with_ifdef=0):
+ m1 = re.compile('-- ADDMODULE MARKER 1 --')
+ m2 = re.compile('-- ADDMODULE MARKER 2 --')
+ while 1:
+ line = infp.readline()
+ if not line: break
+ outfp.write(line)
+ if m1 and m1.search(line):
+ m1 = None
+ for mod in modules:
+ if mod in never:
+ continue
+ if with_ifdef:
+ outfp.write("#ifndef init%s\n"%mod)
+ outfp.write('extern void init%s(void);\n' % mod)
+ if with_ifdef:
+ outfp.write("#endif\n")
+ elif m2 and m2.search(line):
+ m2 = None
+ for mod in modules:
+ if mod in never:
+ continue
+ outfp.write('\t{"%s", init%s},\n' %
+ (mod, mod))
+ if m1:
+ sys.stderr.write('MARKER 1 never found\n')
+ elif m2:
+ sys.stderr.write('MARKER 2 never found\n')
+
+
+# Test program.
+
+def test():
+ if not sys.argv[3:]:
+ print 'usage: python makeconfig.py config.c.in outputfile',
+ print 'modulename ...'
+ sys.exit(2)
+ if sys.argv[1] == '-':
+ infp = sys.stdin
+ else:
+ infp = open(sys.argv[1])
+ if sys.argv[2] == '-':
+ outfp = sys.stdout
+ else:
+ outfp = open(sys.argv[2], 'w')
+ makeconfig(infp, outfp, sys.argv[3:])
+ if outfp != sys.stdout:
+ outfp.close()
+ if infp != sys.stdin:
+ infp.close()
+
+if __name__ == '__main__':
+ test()