1. Clean up CMake files for finding and linking boost and CMake files
[dyninst.git] / cmake / cap_arch_def.cmake
1 # The test suite needs this as a list rather than a bunch
2 # of definitions so that we can append _test to it. 
3
4 set (CAP_DEFINES
5      -Dcap_dynamic_heap 
6      -Dcap_liveness 
7      -Dcap_threads
8 )
9
10 if (${USE_GNU_DEMANGLER} MATCHES 1)
11 set (CAP_DEFINES ${CAP_DEFINES} -Dcap_gnu_demangler)
12 endif()
13
14 if (PLATFORM MATCHES i386)
15 set (ARCH_DEFINES -Darch_x86)
16 set (CAP_DEFINES ${CAP_DEFINES}
17              -Dcap_fixpoint_gen 
18              -Dcap_noaddr_gen 
19              -Dcap_stripped_binaries 
20              -Dcap_tramp_liveness 
21              -Dcap_virtual_registers
22              -Dcap_stack_mods
23     )
24
25 elseif (PLATFORM MATCHES x86_64 OR PLATFORM MATCHES amd64)
26 set (ARCH_DEFINES -Darch_x86_64 -Darch_64bit)
27 set (CAP_DEFINES ${CAP_DEFINES} 
28              -Dcap_32_64
29              -Dcap_fixpoint_gen 
30              -Dcap_noaddr_gen
31              -Dcap_registers
32              -Dcap_stripped_binaries 
33              -Dcap_tramp_liveness
34              -Dcap_stack_mods
35     )
36
37 elseif (PLATFORM MATCHES ppc32)
38 set (ARCH_DEFINES -Darch_power)
39 set (CAP_DEFINES ${CAP_DEFINES} 
40              -Dcap_registers
41     )
42
43 elseif (PLATFORM MATCHES ppc64)
44    set (ARCH_DEFINES -Darch_power -Darch_64bit)
45    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")
46    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
47    set (CAP_DEFINES ${CAP_DEFINES} 
48                 -Dcap_32_64
49                 -Dcap_registers
50                 -Dcap_toc_64
51        )
52    if (SYSPLATFORM MATCHES ppc64le)
53       set (CAP_DEFINES ${CAP_DEFINES} 
54               -Darch_ppc_little_endian
55           )
56    endif (SYSPLATFORM MATCHES ppc64le)
57 elseif (PLATFORM MATCHES aarch64)
58   #set (ARCH_DEFINES -Daarch_64 -Darch_64bit)
59   set (ARCH_DEFINES -Darch_aarch64 -Darch_64bit)
60   set (CAP_DEFINES ${CAP_DEFINES} -Dcap_32_64 -Dcap_registers)
61 endif (PLATFORM MATCHES i386)
62
63 if (PLATFORM MATCHES linux)
64 set (OS_DEFINES -Dos_linux)
65 set (CAP_DEFINES ${CAP_DEFINES} 
66              -Dcap_async_events
67              -Dcap_binary_rewriter
68              -Dcap_dwarf
69              -Dcap_mutatee_traps
70              -Dcap_ptrace
71     )
72 set (BUG_DEFINES -Dbug_syscall_changepc_rewind -Dbug_force_terminate_failure)
73
74 elseif (PLATFORM MATCHES bgq_ion)
75 set (OS_DEFINES -Dos_bg -Dos_bgq -Dos_bgq_ion -Dos_linux)
76 set (CAP_DEFINES ${CAP_DEFINES} 
77              -Dcap_async_events
78              -Dcap_binary_rewriter
79              -Dcap_dwarf
80              -Dcap_mutatee_traps
81              -Dcap_ptrace
82     )
83 set (BUG_DEFINES -Dbug_syscall_changepc_rewind)
84
85 elseif (PLATFORM MATCHES cnl)
86 set (OS_DEFINES -Dos_linux -Dos_cnl)
87 set (CAP_DEFINES ${CAP_DEFINES} 
88              -Dcap_async_events
89              -Dcap_binary_rewriter
90              -Dcap_dwarf
91              -Dcap_mutatee_traps
92              -Dcap_ptrace
93     )
94 set (BUG_DEFINES -Dbug_syscall_changepc_rewind)
95
96 elseif (PLATFORM MATCHES freebsd)
97 set (OS_DEFINES -Dos_freebsd)
98 set (CAP_DEFINES ${CAP_DEFINES} 
99              -Dcap_binary_rewriter
100              -Dcap_dwarf
101              -Dcap_mutatee_traps
102     )
103 set (BUG_DEFINES -Dbug_freebsd_missing_sigstop 
104              -Dbug_freebsd_mt_suspend 
105              -Dbug_freebsd_change_pc 
106              -Dbug_phdrs_first_page 
107              -Dbug_syscall_changepc_rewind
108     )
109
110 elseif (PLATFORM STREQUAL i386-unknown-nt4.0)
111 set (OS_DEFINES -Dos_windows)
112 set (CAP_DEFINES ${CAP_DEFINES} 
113              -Dcap_mem_emulation
114              -Dcap_mutatee_traps
115     )
116 endif (PLATFORM MATCHES linux)
117
118
119 if (PLATFORM STREQUAL i386-unknown-linux2.4)
120 set (OLD_DEFINES -Di386_unknown_linux2_0)
121
122 elseif (PLATFORM STREQUAL x86_64-unknown-linux2.4)
123 set (OLD_DEFINES -Dx86_64_unknown_linux2_4)
124
125 elseif (PLATFORM STREQUAL ppc32_linux)
126 set (OLD_DEFINES -Dppc32_linux)
127 set (BUG_DEFINES ${BUG_DEFINES} -Dbug_registers_after_exit)
128
129 elseif (PLATFORM STREQUAL ppc64_linux)
130 set (OLD_DEFINES -Dppc64_linux)
131 set (BUG_DEFINES ${BUG_DEFINES} -Dbug_registers_after_exit)
132
133 elseif (PLATFORM STREQUAL ppc64_bgq_ion)
134 set (OLD_DEFINES -Dppc64_bluegene -Dppc64_linux)
135
136 elseif (PLATFORM STREQUAL x86_64_cnl)
137 set (OLD_DEFINES -Dx86_64_cnl -Dx86_64_unknown_linux2_4)
138
139 elseif (PLATFORM STREQUAL i386-unknown-freebsd7.2)
140 set (OLD_DEFINES -Di386_unknown_freebsd7_0)
141
142 elseif (PLATFORM STREQUAL amd64-unknown-freebsd7.2)
143 set (OLD_DEFINES -Damd64_unknown_freebsd7_0)
144
145 elseif (PLATFORM STREQUAL i386-unknown-nt4.0)
146 set (OLD_DEFINES -Di386_unknown_nt4_0)
147 elseif (PLATFORM STREQUAL aarch64-unknown-linux)
148   set (OLD_DEFINES -Daarch64_unknown_linux)
149 else (PLATFORM STREQUAL i386-unknown-linux2.4)
150   message (FATAL_ERROR "Unknown platform: ${PLATFORM}")
151 endif (PLATFORM STREQUAL i386-unknown-linux2.4)
152
153 if (THREAD_DB_FOUND)
154 message ("-- Enabling ThreadDB support")
155 set (CAP_DEFINES ${CAP_DEFINES} -Dcap_thread_db)
156 endif (THREAD_DB_FOUND)
157
158 set (UNIFIED_DEFINES ${CAP_DEFINES} ${BUG_DEFINES} ${ARCH_DEFINES} ${OS_DEFINES} ${OLD_DEFINES})
159
160 foreach (def ${UNIFIED_DEFINES})
161   add_definitions (${def})
162 endforeach()
163
164
165 set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${UNIFIED_DEF_STRING}")
166 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${UNIFIED_DEF_STRING}")
167
168 message(STATUS "Set arch and platform based definitions")
169