annotate Tools/freeze/makeconfig.py @ 5817:48b94de85bf3 legacy-trunk

Extensive changes by AMK.
author Guido van Rossum <guido@python.org>
date Thu, 17 Jul 1997 16:29:42 +0000
parents a1aba4d45893
children 915fadf22941
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1925
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
1 import regex
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
2
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
3
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
4 # Write the config.c file
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
5
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
6 never = ['marshal', '__main__', '__builtin__', 'sys']
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
7
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 def makeconfig(infp, outfp, modules):
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 m1 = regex.compile('-- ADDMODULE MARKER 1 --')
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
10 m2 = regex.compile('-- ADDMODULE MARKER 2 --')
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
11 while 1:
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 line = infp.readline()
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
13 if not line: break
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
14 outfp.write(line)
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
15 if m1 and m1.search(line) >= 0:
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 m1 = None
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
17 for mod in modules:
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
18 if mod in never:
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 continue
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
20 outfp.write('extern void init%s();\n' % mod)
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
21 elif m2 and m2.search(line) >= 0:
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
22 m2 = None
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
23 for mod in modules:
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
24 if mod in never:
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
25 continue
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
26 outfp.write('\t{"%s", init%s},\n' %
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 (mod, mod))
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
28 if m1:
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
29 sys.stderr.write('MARKER 1 never found\n')
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
30 elif m2:
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
31 sys.stderr.write('MARKER 2 never found\n')
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
32
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
33
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
34 # Test program.
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
35
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
36 def test():
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
37 import sys
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
38 if not sys.argv[3:]:
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
39 print 'usage: python makeconfig.py config.c.in outputfile',
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 print 'modulename ...'
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
41 sys.exit(2)
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
42 if sys.argv[1] == '-':
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
43 infp = sys.stdin
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
44 else:
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
45 infp = open(sys.argv[1])
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
46 if sys.argv[2] == '-':
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
47 outfp = sys.stdout
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
48 else:
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
49 outfp = open(sys.argv[2], 'w')
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
50 makeconfig(infp, outfp, sys.argv[3:])
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
51 if outfp != sys.stdout:
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
52 outfp.close()
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
53 if infp != sys.stdin:
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
54 infp.close()
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
55
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
56 if __name__ == '__main__':
a1aba4d45893 Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff changeset
57 test()