Mercurial > cpython-lru_cache-weakref
annotate Tools/freeze/makeconfig.py @ 54294:dba767bc3155 legacy-trunk
remove mention of old ctypes version
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Sat, 23 May 2009 20:59:09 +0000 |
| parents | 259c8655c592 |
| children | 835c176239d0 |
| rev | line source |
|---|---|
|
17067
26cded59c172
Teach Tools/freeze/makeconfig.py and Tools/freeze/parsesetup.py to use
Eric S. Raymond <esr@thyrsus.com>
parents:
13738
diff
changeset
|
1 import re |
|
1925
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 |
|
54255
259c8655c592
#6078: _warnings is a builtin module and has no standard init_warnings function.
Georg Brandl <georg@python.org>
parents:
32736
diff
changeset
|
6 never = ['marshal', '__main__', '__builtin__', 'sys', 'exceptions', '_warnings'] |
|
1925
a1aba4d45893
Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
7 |
|
11352
915fadf22941
Patch by Jack Jansen to add with_ifdef option, which places #ifndef
Guido van Rossum <guido@python.org>
parents:
1925
diff
changeset
|
8 def makeconfig(infp, outfp, modules, with_ifdef=0): |
|
32736
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
9 m1 = re.compile('-- ADDMODULE MARKER 1 --') |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
10 m2 = re.compile('-- ADDMODULE MARKER 2 --') |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
11 while 1: |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
12 line = infp.readline() |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
13 if not line: break |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
14 outfp.write(line) |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
15 if m1 and m1.search(line): |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
16 m1 = None |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
17 for mod in modules: |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
18 if mod in never: |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
19 continue |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
20 if with_ifdef: |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
21 outfp.write("#ifndef init%s\n"%mod) |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
22 outfp.write('extern void init%s(void);\n' % mod) |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
23 if with_ifdef: |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
24 outfp.write("#endif\n") |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
25 elif m2 and m2.search(line): |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
26 m2 = None |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
27 for mod in modules: |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
28 if mod in never: |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
29 continue |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
30 outfp.write('\t{"%s", init%s},\n' % |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
31 (mod, mod)) |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
32 if m1: |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
33 sys.stderr.write('MARKER 1 never found\n') |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
34 elif m2: |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
35 sys.stderr.write('MARKER 2 never found\n') |
|
1925
a1aba4d45893
Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
36 |
|
a1aba4d45893
Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
37 |
|
a1aba4d45893
Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
38 # Test program. |
|
a1aba4d45893
Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
39 |
|
a1aba4d45893
Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
40 def test(): |
|
32736
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
41 import sys |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
42 if not sys.argv[3:]: |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
43 print 'usage: python makeconfig.py config.c.in outputfile', |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
44 print 'modulename ...' |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
45 sys.exit(2) |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
46 if sys.argv[1] == '-': |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
47 infp = sys.stdin |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
48 else: |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
49 infp = open(sys.argv[1]) |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
50 if sys.argv[2] == '-': |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
51 outfp = sys.stdout |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
52 else: |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
53 outfp = open(sys.argv[2], 'w') |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
54 makeconfig(infp, outfp, sys.argv[3:]) |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
55 if outfp != sys.stdout: |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
56 outfp.close() |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
57 if infp != sys.stdin: |
|
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
58 infp.close() |
|
1925
a1aba4d45893
Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
59 |
|
a1aba4d45893
Totally new "freeze" program.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
60 if __name__ == '__main__': |
|
32736
c3a096bfbd6b
Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents:
22799
diff
changeset
|
61 test() |
