]> git.proxmox.com Git - mirror_edk2.git/blob - AppPkg/Applications/Python/Python-2.7.2/Tools/freeze/makeconfig.py
AppPkg/Applications/Python: Add Python 2.7.2 sources since the release of Python...
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Tools / freeze / makeconfig.py
1 import re
2 import sys
3
4 # Write the config.c file
5
6 never = ['marshal', '__main__', '__builtin__', 'sys', 'exceptions', '_warnings']
7
8 def makeconfig(infp, outfp, modules, with_ifdef=0):
9 m1 = re.compile('-- ADDMODULE MARKER 1 --')
10 m2 = re.compile('-- ADDMODULE MARKER 2 --')
11 while 1:
12 line = infp.readline()
13 if not line: break
14 outfp.write(line)
15 if m1 and m1.search(line):
16 m1 = None
17 for mod in modules:
18 if mod in never:
19 continue
20 if with_ifdef:
21 outfp.write("#ifndef init%s\n"%mod)
22 outfp.write('extern void init%s(void);\n' % mod)
23 if with_ifdef:
24 outfp.write("#endif\n")
25 elif m2 and m2.search(line):
26 m2 = None
27 for mod in modules:
28 if mod in never:
29 continue
30 outfp.write('\t{"%s", init%s},\n' %
31 (mod, mod))
32 if m1:
33 sys.stderr.write('MARKER 1 never found\n')
34 elif m2:
35 sys.stderr.write('MARKER 2 never found\n')
36
37
38 # Test program.
39
40 def test():
41 if not sys.argv[3:]:
42 print 'usage: python makeconfig.py config.c.in outputfile',
43 print 'modulename ...'
44 sys.exit(2)
45 if sys.argv[1] == '-':
46 infp = sys.stdin
47 else:
48 infp = open(sys.argv[1])
49 if sys.argv[2] == '-':
50 outfp = sys.stdout
51 else:
52 outfp = open(sys.argv[2], 'w')
53 makeconfig(infp, outfp, sys.argv[3:])
54 if outfp != sys.stdout:
55 outfp.close()
56 if infp != sys.stdin:
57 infp.close()
58
59 if __name__ == '__main__':
60 test()