Make package target optional
[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 elseif (PLATFORM MATCHES aarch64)
53   #set (ARCH_DEFINES -Daarch_64 -Darch_64bit)
54   set (ARCH_DEFINES -Darch_aarch64 -Darch_64bit)
55   set (CAP_DEFINES ${CAP_DEFINES} -Dcap_32_64 -Dcap_registers)
56 endif (PLATFORM MATCHES i386)
57
58 if (PLATFORM MATCHES linux)
59 set (OS_DEFINES -Dos_linux)
60 set (CAP_DEFINES ${CAP_DEFINES} 
61              -Dcap_async_events
62              -Dcap_binary_rewriter
63              -Dcap_dwarf
64              -Dcap_mutatee_traps
65              -Dcap_ptrace
66     )
67 set (BUG_DEFINES -Dbug_syscall_changepc_rewind -Dbug_force_terminate_failure)
68
69 elseif (PLATFORM MATCHES bgq_ion)
70 set (OS_DEFINES -Dos_bg -Dos_bgq -Dos_bgq_ion -Dos_linux)
71 set (CAP_DEFINES ${CAP_DEFINES} 
72              -Dcap_async_events
73              -Dcap_binary_rewriter
74              -Dcap_dwarf
75              -Dcap_mutatee_traps
76              -Dcap_ptrace
77     )
78 set (BUG_DEFINES -Dbug_syscall_changepc_rewind)
79
80 elseif (PLATFORM MATCHES cnl)
81 set (OS_DEFINES -Dos_linux -Dos_cnl)
82 set (CAP_DEFINES ${CAP_DEFINES} 
83              -Dcap_async_events
84              -Dcap_binary_rewriter
85              -Dcap_dwarf
86              -Dcap_mutatee_traps
87              -Dcap_ptrace
88     )
89 set (BUG_DEFINES -Dbug_syscall_changepc_rewind)
90
91 elseif (PLATFORM MATCHES freebsd)
92 set (OS_DEFINES -Dos_freebsd)
93 set (CAP_DEFINES ${CAP_DEFINES} 
94              -Dcap_binary_rewriter
95              -Dcap_dwarf
96              -Dcap_mutatee_traps
97     )
98 set (BUG_DEFINES -Dbug_freebsd_missing_sigstop 
99              -Dbug_freebsd_mt_suspend 
100              -Dbug_freebsd_change_pc 
101              -Dbug_phdrs_first_page 
102              -Dbug_syscall_changepc_rewind
103     )
104
105 elseif (PLATFORM STREQUAL i386-unknown-nt4.0)
106 set (OS_DEFINES -Dos_windows)
107 set (CAP_DEFINES ${CAP_DEFINES} 
108              -Dcap_mem_emulation
109     )
110 endif (PLATFORM MATCHES linux)
111
112
113 if (PLATFORM STREQUAL i386-unknown-linux2.4)
114 set (OLD_DEFINES -Di386_unknown_linux2_0)
115
116 elseif (PLATFORM STREQUAL x86_64-unknown-linux2.4)
117 set (OLD_DEFINES -Dx86_64_unknown_linux2_4)
118
119 elseif (PLATFORM STREQUAL ppc32_linux)
120 set (OLD_DEFINES -Dppc32_linux)
121 set (BUG_DEFINES ${BUG_DEFINES} -Dbug_registers_after_exit)
122
123 elseif (PLATFORM STREQUAL ppc64_linux)
124 set (OLD_DEFINES -Dppc64_linux)
125 set (BUG_DEFINES ${BUG_DEFINES} -Dbug_registers_after_exit)
126
127 elseif (PLATFORM STREQUAL ppc64_bgq_ion)
128 set (OLD_DEFINES -Dppc64_bluegene -Dppc64_linux)
129
130 elseif (PLATFORM STREQUAL x86_64_cnl)
131 set (OLD_DEFINES -Dx86_64_cnl -Dx86_64_unknown_linux2_4)
132
133 elseif (PLATFORM STREQUAL i386-unknown-freebsd7.2)
134 set (OLD_DEFINES -Di386_unknown_freebsd7_0)
135
136 elseif (PLATFORM STREQUAL amd64-unknown-freebsd7.2)
137 set (OLD_DEFINES -Damd64_unknown_freebsd7_0)
138
139 elseif (PLATFORM STREQUAL i386-unknown-nt4.0)
140 set (OLD_DEFINES -Di386_unknown_nt4_0)
141 elseif (PLATFORM STREQUAL aarch64-unknown-linux)
142   set (OLD_DEFINES -Daarch64_unknown_linux)
143 else (PLATFORM STREQUAL i386-unknown-linux2.4)
144   message (FATAL_ERROR "Unknown platform: ${PLATFORM}")
145 endif (PLATFORM STREQUAL i386-unknown-linux2.4)
146
147 if (THREAD_DB_FOUND)
148 message ("-- Enabling ThreadDB support")
149 set (CAP_DEFINES ${CAP_DEFINES} -Dcap_thread_db)
150 endif (THREAD_DB_FOUND)
151
152 set (UNIFIED_DEFINES ${CAP_DEFINES} ${BUG_DEFINES} ${ARCH_DEFINES} ${OS_DEFINES} ${OLD_DEFINES})
153
154 foreach (def ${UNIFIED_DEFINES})
155   add_definitions (${def})
156 endforeach()
157
158
159 set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${UNIFIED_DEF_STRING}")
160 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${UNIFIED_DEF_STRING}")
161
162 message(STATUS "Set arch and platform based definitions")
163