1c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters# An absurd workaround for the lack of arithmetic in MS's resource compiler.
2c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters# After building Python, run this, then paste the output into the appropriate
3c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters# part of PC\python_nt.rc.
4c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters# Example output:
5c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters#
6c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters# * For 2.3a0,
7c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters# * PY_MICRO_VERSION = 0
8c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters# * PY_RELEASE_LEVEL = 'alpha' = 0xA
9c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters# * PY_RELEASE_SERIAL = 1
10c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters# *
11c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters# * and 0*1000 + 10*10 + 1 = 101.
12c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters# */
13c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters# #define FIELD3 101
14c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters
15c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Petersimport sys
16c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters
17c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Petersmajor, minor, micro, level, serial = sys.version_info
18c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peterslevelnum = {'alpha': 0xA,
19c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters            'beta': 0xB,
20c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters            'candidate': 0xC,
21c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters            'final': 0xF,
22c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters           }[level]
23c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Petersstring = sys.version.split()[0] # like '2.3a0'
24c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters
25c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Petersprint " * For %s," % string
26c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Petersprint " * PY_MICRO_VERSION = %d" % micro
27c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Petersprint " * PY_RELEASE_LEVEL = %r = %s" % (level, hex(levelnum))
28c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Petersprint " * PY_RELEASE_SERIAL = %d" % serial
29c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Petersprint " *"
30c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters
31c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Petersfield3 = micro * 1000 + levelnum * 10 + serial
32c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Peters
33c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Petersprint " * and %d*1000 + %d*10 + %d = %d" % (micro, levelnum, serial, field3)
34c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Petersprint " */"
35c78462fb94b15d71c0dbfa6f3dfc2fabd29f635fTim Petersprint "#define FIELD3", field3
36