MA FTDI utilities  v1.0
 All Files Functions Pages
build_defs.h
Go to the documentation of this file.
1 
20 #ifndef __BUILD_DEFS_H__
21 #define __BUILD_DEFS_H__
22 
23 #include "version.h"
24 
25 #ifndef DEBUG
26 #define DEBUG 0
27 #endif
28 
29 #define SYSTEM_ARCH "win32"
30 #define GCC_VER "4.8.1-mingw32"
31 
32 #define DEBUG_CODE(code) if ((gp_debug) || (DEBUG)) { code }
33 
34 // Example of __DATE__ string: "Jul 27 2012"
35 // 0123456789a
36 
37 #define BUILD_YEAR_CH0 (__DATE__[ 7])
38 #define BUILD_YEAR_CH1 (__DATE__[ 8])
39 #define BUILD_YEAR_CH2 (__DATE__[ 9])
40 #define BUILD_YEAR_CH3 (__DATE__[10])
41 
42 
43 #define BUILD_MONTH_IS_JAN (__DATE__[0] == 'J' && __DATE__[1] == 'a' && __DATE__[2] == 'n')
44 #define BUILD_MONTH_IS_FEB (__DATE__[0] == 'F')
45 #define BUILD_MONTH_IS_MAR (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'r')
46 #define BUILD_MONTH_IS_APR (__DATE__[0] == 'A' && __DATE__[1] == 'p')
47 #define BUILD_MONTH_IS_MAY (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'y')
48 #define BUILD_MONTH_IS_JUN (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'n')
49 #define BUILD_MONTH_IS_JUL (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'l')
50 #define BUILD_MONTH_IS_AUG (__DATE__[0] == 'A' && __DATE__[1] == 'u')
51 #define BUILD_MONTH_IS_SEP (__DATE__[0] == 'S')
52 #define BUILD_MONTH_IS_OCT (__DATE__[0] == 'O')
53 #define BUILD_MONTH_IS_NOV (__DATE__[0] == 'N')
54 #define BUILD_MONTH_IS_DEC (__DATE__[0] == 'D')
55 
56 
57 #define BUILD_MONTH_CH0 \
58  ((BUILD_MONTH_IS_OCT || BUILD_MONTH_IS_NOV || BUILD_MONTH_IS_DEC) ? '1' : '0')
59 
60 #define BUILD_MONTH_CH1 \
61  ( \
62  (BUILD_MONTH_IS_JAN) ? '1' : \
63  (BUILD_MONTH_IS_FEB) ? '2' : \
64  (BUILD_MONTH_IS_MAR) ? '3' : \
65  (BUILD_MONTH_IS_APR) ? '4' : \
66  (BUILD_MONTH_IS_MAY) ? '5' : \
67  (BUILD_MONTH_IS_JUN) ? '6' : \
68  (BUILD_MONTH_IS_JUL) ? '7' : \
69  (BUILD_MONTH_IS_AUG) ? '8' : \
70  (BUILD_MONTH_IS_SEP) ? '9' : \
71  (BUILD_MONTH_IS_OCT) ? '0' : \
72  (BUILD_MONTH_IS_NOV) ? '1' : \
73  (BUILD_MONTH_IS_DEC) ? '2' : \
74  /* error default */ '?' \
75  )
76 
77 #define BUILD_DAY_CH0 ((__DATE__[4] >= '0') ? (__DATE__[4]) : '0')
78 #define BUILD_DAY_CH1 (__DATE__[ 5])
79 
80 
81 
82 // Example of __TIME__ string: "21:06:19"
83 // 01234567
84 
85 #define BUILD_HOUR_CH0 (__TIME__[0])
86 #define BUILD_HOUR_CH1 (__TIME__[1])
87 
88 #define BUILD_MIN_CH0 (__TIME__[3])
89 #define BUILD_MIN_CH1 (__TIME__[4])
90 
91 #define BUILD_SEC_CH0 (__TIME__[6])
92 #define BUILD_SEC_CH1 (__TIME__[7])
93 
94 
95 #if VERSION_MAJOR > 100
96 
97 #define VERSION_MAJOR_INIT \
98  ((VERSION_MAJOR / 100) + '0'), \
99  (((VERSION_MAJOR % 100) / 10) + '0'), \
100  ((VERSION_MAJOR % 10) + '0')
101 
102 #elif VERSION_MAJOR > 10
103 
104 #define VERSION_MAJOR_INIT \
105  ((VERSION_MAJOR / 10) + '0'), \
106  ((VERSION_MAJOR % 10) + '0')
107 
108 #else
109 
110 #define VERSION_MAJOR_INIT \
111  (VERSION_MAJOR + '0')
112 
113 #endif
114 
115 #if VERSION_MINOR > 100
116 
117 #define VERSION_MINOR_INIT \
118  ((VERSION_MINOR / 100) + '0'), \
119  (((VERSION_MINOR % 100) / 10) + '0'), \
120  ((VERSION_MINOR % 10) + '0')
121 
122 #elif VERSION_MINOR > 10
123 
124 #define VERSION_MINOR_INIT \
125  ((VERSION_MINOR / 10) + '0'), \
126  ((VERSION_MINOR % 10) + '0')
127 
128 #else
129 
130 #define VERSION_MINOR_INIT \
131  (VERSION_MINOR + '0')
132 
133 #endif
134 
135 #if VERSION_PATCHLEVEL > 100
136 
137 #define VERSION_PATCHLEVEL_INIT \
138  ((VERSION_PATCHLEVEL / 100) + '0'), \
139  (((VERSION_PATCHLEVEL % 100) / 10) + '0'), \
140  ((VERSION_PATCHLEVEL % 10) + '0')
141 
142 #elif VERSION_PATCHLEVEL > 10
143 
144 #define VERSION_PATCHLEVEL_INIT \
145  ((VERSION_PATCHLEVEL / 10) + '0'), \
146  ((VERSION_PATCHLEVEL % 10) + '0')
147 
148 #else
149 
150 #define VERSION_PATCHLEVEL_INIT \
151  (VERSION_PATCHLEVEL + '0')
152 
153 #endif
154 
155 #endif // __BUILD_DEFS_H__
Main program version tracker.