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