Home | History | Annotate | Download | only in PC
      1 #include <stdio.h>
      2 #include "patchlevel.h"
      3 /*
      4  * This program prints out an include file containing fields required to build
      5  * the version info resource of pythonxx.dll because the resource compiler
      6  * cannot do the arithmetic.
      7  */
      8 /*
      9  * FIELD3 is the third field of the version number.
     10  * This is what we'd like FIELD3 to be:
     11  *
     12  * #define FIELD3 (PY_MICRO_VERSION*1000 + PY_RELEASE_LEVEL*10 + PY_RELEASE_SERIAL)
     13  *
     14  * but that neither gives an error nor comes anywhere close to working.
     15  *
     16  * For 2.4a0,
     17  * PY_MICRO_VERSION = 0
     18  * PY_RELEASE_LEVEL = 'alpha' = 0xa
     19  * PY_RELEASE_SERIAL = 0
     20  *
     21  * gives FIELD3 = 0*1000 + 10*10 + 0 = 100
     22  */
     23 int main(int argc, char **argv)
     24 {
     25     printf("/* This file created by make_versioninfo.exe */\n");
     26     printf("#define FIELD3 %d\n",
     27         PY_MICRO_VERSION*1000 + PY_RELEASE_LEVEL*10 + PY_RELEASE_SERIAL);
     28     printf("#define MS_DLL_ID \"%d.%d\"\n",
     29            PY_MAJOR_VERSION, PY_MINOR_VERSION);
     30     printf("#ifndef _DEBUG\n");
     31     printf("#define PYTHON_DLL_NAME \"python%d%d.dll\"\n",
     32            PY_MAJOR_VERSION, PY_MINOR_VERSION);
     33     printf("#else\n");
     34     printf("#define PYTHON_DLL_NAME \"python%d%d_d.dll\"\n",
     35            PY_MAJOR_VERSION, PY_MINOR_VERSION);
     36     printf("#endif\n");
     37     return 0;
     38 }
     39