msgQ: CMK_USE_STL_MSGQ now causes converse to use an STL-based msgq
[charm.git] / src / conv-core / conv-config.h
1 /*
2   Generic converse configuration-flags header.
3 */
4 #ifndef __UIUC_CHARM_CONV_CONFIG_H
5 #define __UIUC_CHARM_CONV_CONFIG_H
6
7 /* 
8  Include the automatically determined options.
9   conv-autoconfig.h is written by the configure script.
10
11  This header declares all automatically-determined properties
12  of the machine, like compiler features, headers, and syscalls.
13  Generally, more features should be moved into this header
14  from the other manually generated headers.
15 */
16 #include "conv-autoconfig.h"
17
18 /* 
19  Include the machine.c configuration header 
20   (e.g., charm/src/arch/net/conv-common.h )
21
22  This header declares communication properties
23  (like message header formats) and the various 
24  machine arcana handled by machine.c.
25 */ 
26 #include "conv-common.h"
27
28 /* 
29  Include the system/platform header.
30   (e.g., charm/src/arch/net-linux/conv-mach.h )
31  
32  This header declares the handling of malloc (OS or charm),
33  signals, threads, timers, and other details. 
34 */
35 #include "conv-mach.h"
36
37 /* 
38  Include the build-time options.
39   conv-mach-opt.h is written by the build script.
40
41  This header includes any special build-time options.
42  It's typically empty or very short.
43 */
44 #include "conv-mach-opt.h"
45
46
47
48 /* Fix various invariants (these symbols should probably 
49   be eliminated entirely) */
50 #define CMK_LBDB_OFF (!CMK_LBDB_ON)
51
52 #ifndef CMK_USE_HP_MAIN_FIX
53 # define CMK_USE_HP_MAIN_FIX    0
54 #endif
55
56 #if CMK_AMD64 && !defined(CMK_64BIT)
57 #define CMK_64BIT               1
58 #endif
59
60 #if CMK_BLUEGENEL
61 #define CMK_VERSION_BLUEGENE    1
62 #endif
63
64 #if CMK_64BIT && !CMK_SIZET_64BIT
65 #error "Compiler not generating 64 bit binary, please check compiler flags."
66 #endif
67
68 #if CMK_SIZET_64BIT && !CMK_64BIT
69 #define CMK_64BIT                1
70 #endif
71
72 #ifndef CMK_USE_MEMPOOL_ISOMALLOC
73 #define CMK_USE_MEMPOOL_ISOMALLOC 1
74 #endif
75
76 /* set up what production/non-production means */
77 #ifdef CMK_OPTIMIZE
78 /*
79 #undef CMK_REPLAYSYSTEM
80 #define CMK_REPLAYSYSTEM            0
81 */
82 #endif    /* CMK_OPTIMIZE */
83
84 #ifndef CMK_REPLAYSYSTEM
85 #define CMK_REPLAYSYSTEM            1
86 #endif
87
88 /* replay does not work on windows */
89 #ifdef _WIN32
90 #undef CMK_REPLAYSYSTEM
91 #define CMK_REPLAYSYSTEM            0
92 #endif
93
94 #if ! CMK_CCS_AVAILABLE
95 #undef CMK_CHARMDEBUG
96 #define  CMK_CHARMDEBUG             0
97 #endif
98
99 #ifndef CMK_TRACE_ENABLED
100 #define CMK_TRACE_ENABLED          1
101 #endif
102
103 #ifndef  CMK_WITH_CONTROLPOINT
104 #define CMK_WITH_CONTROLPOINT            1
105 #endif
106
107 /* sanity checks */
108 #if ! CMK_TRACE_ENABLED && CMK_SMP_TRACE_COMMTHREAD
109 #undef CMK_SMP_TRACE_COMMTHREAD
110 #define CMK_SMP_TRACE_COMMTHREAD                               0
111 #endif
112
113 #if CMK_SMP_TRACE_COMMTHREAD && ! CMK_SMP
114 #undef CMK_SMP_TRACE_COMMTHREAD
115 #define CMK_SMP_TRACE_COMMTHREAD                               0
116 #endif
117
118 /**
119     CmiReference broadcast/multicast optimization does not work for SMP
120     due to race condition on memory reference counter, needs lock to protect
121  */
122 #if CMK_SMP && CMK_BROADCAST_USE_CMIREFERENCE
123 #undef CMK_BROADCAST_USE_CMIREFERENCE
124 #define CMK_BROADCAST_USE_CMIREFERENCE                      0
125 #endif
126
127 #if CMK_CRAYXE && CMK_CONVERSE_GEMINI_UGNI && ! CMK_SMP
128 #include "conv-mach-pxshm.h"
129 #endif
130
131
132 #if CMK_HAS_STD_UNORDERED_MAP
133 #define CMK_USE_STL_MSGQ 1
134 #else
135 #define CMK_USE_STL_MSGQ 0
136 #endif
137
138 #endif