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