This commit was manufactured by cvs2svn to create tag 'r23a1-fork'.
[python/dscho.git] / Modules / getbuildinfo.c
blob23b57c559d95a367bca0044661ef0ac1809bdc29
1 #include "Python.h"
3 #ifdef macintosh
4 #include "macbuildno.h"
5 #endif
7 #ifndef DONT_HAVE_STDIO_H
8 #include <stdio.h>
9 #endif
11 #ifndef DATE
12 #ifdef __DATE__
13 #define DATE __DATE__
14 #else
15 #define DATE "xx/xx/xx"
16 #endif
17 #endif
19 #ifndef TIME
20 #ifdef __TIME__
21 #define TIME __TIME__
22 #else
23 #define TIME "xx:xx:xx"
24 #endif
25 #endif
27 #ifndef BUILD
28 #define BUILD 0
29 #endif
31 #ifdef __VMS
32 # ifdef __DECC
33 # pragma extern_model save
34 # pragma extern_model strict_refdef
35 extern long ctl$gl_imghdrbf;
36 # pragma extern_model restore
37 # endif
39 # ifdef __ALPHA
40 # define EIHD$L_IMGIDOFF 24
41 # define EIHI$Q_LINKTIME 8
42 # define _IMGIDOFF EIHD$L_IMGIDOFF
43 # define _LINKTIME EIHI$Q_LINKTIME
44 # else
45 # define IHD$W_IMGIDOFF 6
46 # define IHI$Q_LINKTIME 56
47 # define _IMGIDOFF IHD$W_IMGIDOFF
48 # define _LINKTIME IHI$Q_LINKTIME
49 # endif /* __VMS */
51 long*
52 vms__get_linktime (void)
54 long* al_imghdrbf;
55 unsigned short* aw_imgidoff;
56 unsigned short w_imgidoff;
57 long* aq_linktime;
58 unsigned char* ab_ihi;
60 al_imghdrbf = &ctl$gl_imghdrbf;
62 al_imghdrbf = (long *)*al_imghdrbf;
63 al_imghdrbf = (long *)*al_imghdrbf;
65 aw_imgidoff = (unsigned short *)
66 ((unsigned char *)al_imghdrbf + _IMGIDOFF);
68 w_imgidoff = *aw_imgidoff;
70 ab_ihi = (unsigned char *)al_imghdrbf + w_imgidoff;
72 aq_linktime = (long *) (ab_ihi + _LINKTIME);
74 return aq_linktime;
75 } /* vms__get_linktime (void) */
76 extern void vms__cvt_v2u_time (long * aq_vmstime, time_t * al_unixtime);
77 /* input , output */
78 #endif /* __VMS */
81 const char *
82 Py_GetBuildInfo(void)
84 static char buildinfo[50];
85 #ifdef __VMS
86 time_t l_unixtime;
88 vms__cvt_v2u_time(vms__get_linktime (), &l_unixtime );
90 memset(buildinfo, 0, 40);
91 sprintf(buildinfo, "#%d, %.24s", BUILD, ctime (&l_unixtime));
92 #else
93 PyOS_snprintf(buildinfo, sizeof(buildinfo),
94 "#%d, %.20s, %.9s", BUILD, DATE, TIME);
95 #endif
96 return buildinfo;