1 | /* |
2 | * this file allows the compilation of DBGEN to be tailored to specific |
3 | * architectures and operating systems. Some options are grouped |
4 | * together to allow easier compilation on a given vendor's hardware. |
5 | * |
6 | * The following #defines will effect the code: |
7 | * SEPARATOR -- character used to separate fields in flat files |
8 | * STDLIB_HAS_GETOPT -- to prevent confilcts with gloabal getopt() |
9 | * MDY_DATE -- generate dates as MM-DD-YY |
10 | * WIN32 -- support for WindowsNT |
11 | * DSS_HUGE -- 64 bit data type |
12 | * HUGE_FORMAT -- printf string for 64 bit data type |
13 | * EOL_HANDLING -- flat files don't need final column separator |
14 | * |
15 | * Certain defines must be provided in the makefile: |
16 | * MACHINE defines |
17 | * ========== |
18 | * ATT -- getopt() handling |
19 | * HP -- posix source inclusion differences |
20 | * IBM -- posix source inclusion differences |
21 | * SGI -- getopt() handling |
22 | * SUN -- getopt() handling |
23 | * LINUX |
24 | * WIN32 -- for WINDOWS |
25 | * |
26 | * DATABASE defines |
27 | * ================ |
28 | * DB2 -- use DB2 dialect in QGEN |
29 | * INFORMIX -- use Informix dialect in QGEN |
30 | * SQLSERVER -- use SQLSERVER dialect in QGEN |
31 | * SYBASE -- use Sybase dialect in QGEN |
32 | * TDAT -- use Teradata dialect in QGEN |
33 | * |
34 | * WORKLOAD defines |
35 | * ================ |
36 | * TPCH -- make will create TPCH (set in makefile) |
37 | */ |
38 | |
39 | #ifdef ATT |
40 | #define STDLIB_HAS_GETOPT |
41 | #ifdef SQLSERVER |
42 | #define WIN32 |
43 | #else |
44 | #define DSS_HUGE long long |
45 | #define RNG_A 6364136223846793005ull |
46 | #define RNG_C 1ull |
47 | #define HUGE_FORMAT "%LLd" |
48 | #define HUGE_DATE_FORMAT "%02LLd" |
49 | #endif /* SQLSERVER or MP/RAS */ |
50 | #endif /* ATT */ |
51 | |
52 | #ifdef HP |
53 | #define _INCLUDE_POSIX_SOURCE |
54 | #define STDLIB_HAS_GETOPT |
55 | #define DSS_HUGE long |
56 | #define HUGE_COUNT 2 |
57 | #define HUGE_FORMAT "%ld" |
58 | #define HUGE_DATE_FORMAT "%02lld" |
59 | #define RNG_C 1ull |
60 | #define RNG_A 6364136223846793005ull |
61 | #endif /* HP */ |
62 | |
63 | #ifdef IBM |
64 | #define STDLIB_HAS_GETOPT |
65 | #define DSS_HUGE long long |
66 | #define HUGE_FORMAT "%lld" |
67 | #define HUGE_DATE_FORMAT "%02lld" |
68 | #define RNG_A 6364136223846793005ull |
69 | #define RNG_C 1ull |
70 | #endif /* IBM */ |
71 | |
72 | #ifdef LINUX |
73 | #define STDLIB_HAS_GETOPT |
74 | #define DSS_HUGE long long int |
75 | #define HUGE_FORMAT "%lld" |
76 | #define HUGE_DATE_FORMAT "%02lld" |
77 | #define RNG_A 6364136223846793005ull |
78 | #define RNG_C 1ull |
79 | #endif /* LINUX */ |
80 | |
81 | #ifdef MAC |
82 | //#define _POSIX_C_SOURCE 200112L |
83 | //#define _POSIX_SOURCE |
84 | #define STDLIB_HAS_GETOPT |
85 | #define SUPPORT_64BITS |
86 | #define DSS_HUGE long long |
87 | #define HUGE_FORMAT "%ld" |
88 | #define HUGE_DATE_FORMAT "%02ld" |
89 | #define RNG_A 6364136223846793005ull |
90 | #define RNG_C 1ull |
91 | #endif /* MAC */ |
92 | |
93 | #ifdef SUN |
94 | #define STDLIB_HAS_GETOPT |
95 | #define RNG_A 6364136223846793005ull |
96 | #define RNG_C 1ull |
97 | #define DSS_HUGE long long |
98 | #define HUGE_FORMAT "%lld" |
99 | #define HUGE_DATE_FORMAT "%02lld" |
100 | #endif /* SUN */ |
101 | |
102 | #ifdef SGI |
103 | #define STDLIB_HAS_GETOPT |
104 | #define DSS_HUGE __int64_t |
105 | #endif /* SGI */ |
106 | |
107 | #if (defined(WIN32) && !defined(_POSIX_)) |
108 | #define PATH_SEP '\\' |
109 | #define DSS_HUGE __int64 |
110 | #define RNG_A 6364136223846793005uI64 |
111 | #define RNG_C 1uI64 |
112 | #define HUGE_FORMAT "%I64d" |
113 | #define HUGE_DATE_FORMAT "%02I64d" |
114 | /* requried by move to Visual Studio 2005 */ |
115 | #define strdup(x) _strdup(x) |
116 | #endif /* WIN32 */ |
117 | |
118 | #ifndef PATH_SEP |
119 | #define PATH_SEP '/' |
120 | #endif /* PATH_SEP */ |
121 | |