1r_anal_sources = [
2  'anal.c',
3  'bb.c',
4  'block.c',
5  'function.c',
6  'jmptbl.c',
7  'cc.c',
8  'class.c',
9  'cond.c',
10  'cycles.c',
11  'data.c',
12  'diff.c',
13  'esil.c',
14  'esil_stats.c',
15  'esil_trace.c',
16  'esil_handler.c',
17  'esil_cfg.c',
18  'esil_dfg.c',
19  'fcn.c',
20  'flirt.c',
21  'hint.c',
22  'labels.c',
23  'meta.c',
24  'op.c',
25  'pin.c',
26  'reflines.c',
27  'rtti.c',
28  'rtti_msvc.c',
29  'rtti_itanium.c',
30  'sign.c',
31  'switch.c',
32  'type.c',
33  'type_pdb.c',
34  'dwarf_process.c',
35  'value.c',
36  'var.c',
37  'vtable.c',
38  'xrefs.c',
39  'p/esil_dummy.c',
40  'p/anal_6502.c',
41  'p/anal_6502_cs.c',
42  'p/anal_8051.c',
43  'p/anal_amd29k.c',
44  'p/anal_arc.c',
45  'p/anal_arm_cs.c',
46  'p/anal_arm_gnu.c',
47  'p/anal_avr.c',
48  'p/anal_bf.c',
49  'p/anal_chip8.c',
50  'p/anal_cr16.c',
51  'p/anal_cris.c',
52  'p/anal_dalvik.c',
53  'p/anal_ebc.c',
54  'p/anal_gb.c',
55  'p/anal_h8300.c',
56  'p/anal_hexagon.c',
57  'p/anal_i4004.c',
58  'p/anal_i8080.c',
59  'p/anal_java.c',
60  'p/anal_m68k_cs.c',
61  'p/anal_m680x_cs.c',
62  'p/anal_malbolge.c',
63  'p/anal_mcore.c',
64  'p/anal_mips_cs.c',
65  'p/anal_mips_gnu.c',
66  'p/anal_msp430.c',
67  'p/anal_nios2.c',
68  'p/anal_null.c',
69  'p/anal_or1k.c',
70  'p/anal_pic.c',
71  'p/anal_ppc_cs.c',
72  'p/anal_ppc_gnu.c',
73  'p/anal_propeller.c',
74  'p/anal_pyc.c',
75  'p/anal_riscv.c',
76  'p/anal_rsp.c',
77  'p/anal_sh.c',
78  'p/anal_snes.c',
79  'p/anal_sparc_cs.c',
80  'p/anal_sparc_gnu.c',
81  'p/anal_sysz.c',
82  'p/anal_tms320.c',
83  'p/anal_tms320_c55x_plus.c',
84  #'p/anal_tms320c64x.c',
85  'p/anal_tricore.c',
86  'p/anal_v810.c',
87  'p/anal_v850.c',
88  'p/anal_vax.c',
89  'p/anal_wasm.c',
90  'p/anal_ws.c',
91  'p/anal_x86_cs.c',
92  'p/anal_xap.c',
93  'p/anal_xcore_cs.c',
94  'p/anal_xtensa.c',
95  'p/anal_z80.c',
96  #'arch/gb/meta_gb_cmt.c',
97  'arch/hexagon/hexagon_anal.c',
98  '../asm/arch/amd29k/amd29k.c',
99  '../asm/arch/arm/winedbg/be_arm.c',
100  '../asm/arch/avr/avr_disasm.c',
101  '../asm/arch/avr/format.c',
102  '../asm/arch/avr/disasm.c',
103  '../asm/arch/cr16/cr16_disas.c',
104  '../asm/arch/ebc/ebc_disas.c',
105  '../asm/arch/h8300/h8300_disas.c',
106  '../asm/arch/hexagon/hexagon.c',
107  '../asm/arch/hexagon/hexagon_disas.c',
108  '../asm/arch/mcore/mcore.c',
109  '../asm/arch/msp430/msp430_disas.c',
110  '../asm/arch/or1k/or1k_disas.c',
111  '../asm/arch/pic/pic_midrange.c',
112  '../asm/arch/ppc/libvle/vle.c',
113  '../asm/arch/propeller/propeller_disas.c',
114  '../asm/arch/rsp/rsp_idec.c',
115  '../asm/arch/tms320/tms320_dasm.c',
116  '../asm/arch/tms320/c55x_plus/ins.c',
117  '../asm/arch/tms320/c55x_plus/c55plus.c',
118  '../asm/arch/tms320/c55x_plus/c55plus_decode.c',
119  '../asm/arch/tms320/c55x_plus/decode_funcs.c',
120  '../asm/arch/tms320/c55x_plus/hashtable.c',
121  '../asm/arch/tms320/c55x_plus/utils.c',
122  '../asm/arch/v810/v810_disas.c',
123  '../asm/arch/v850/v850_disas.c',
124  '../asm/arch/wasm/wasm.c',
125  '../asm/arch/xtensa/gnu/xtensa-dis.c',
126  '../asm/arch/xtensa/gnu/elf32-xtensa.c',
127  '../asm/arch/xtensa/gnu/xtensa-isa.c',
128  '../asm/arch/xtensa/gnu/xtensa-modules.c',
129  '../asm/arch/pyc/opcode_10.c',
130  '../asm/arch/pyc/opcode_11.c',
131  '../asm/arch/pyc/opcode_12.c',
132  '../asm/arch/pyc/opcode_13.c',
133  '../asm/arch/pyc/opcode_14.c',
134  '../asm/arch/pyc/opcode_15.c',
135  '../asm/arch/pyc/opcode_16.c',
136  '../asm/arch/pyc/opcode_20.c',
137  '../asm/arch/pyc/opcode_21.c',
138  '../asm/arch/pyc/opcode_22.c',
139  '../asm/arch/pyc/opcode_23.c',
140  '../asm/arch/pyc/opcode_24.c',
141  '../asm/arch/pyc/opcode_25.c',
142  '../asm/arch/pyc/opcode_26.c',
143  '../asm/arch/pyc/opcode_27.c',
144  '../asm/arch/pyc/opcode_2x.c',
145  '../asm/arch/pyc/opcode_30.c',
146  '../asm/arch/pyc/opcode_31.c',
147  '../asm/arch/pyc/opcode_32.c',
148  '../asm/arch/pyc/opcode_33.c',
149  '../asm/arch/pyc/opcode_34.c',
150  '../asm/arch/pyc/opcode_35.c',
151  '../asm/arch/pyc/opcode_36.c',
152  '../asm/arch/pyc/opcode_37.c',
153  '../asm/arch/pyc/opcode_38.c',
154  '../asm/arch/pyc/opcode_39.c',
155  '../asm/arch/pyc/opcode_3x.c',
156  '../asm/arch/pyc/opcode_anal.c',
157  '../asm/arch/pyc/opcode_arg_fmt.c',
158  '../asm/arch/pyc/opcode.c',
159  '../asm/arch/pyc/pyc_dis.c'
160]
161
162r_anal_inc = [
163  platform_inc,
164  include_directories(
165    'arch/gb',
166    'arch/hexagon',
167  )
168]
169
170r_anal = library('r_anal', r_anal_sources,
171  include_directories: r_anal_inc,
172  c_args: library_cflags,
173  dependencies: [
174    r_util_dep,
175    r_reg_dep,
176    r_asm_dep,
177    r_crypto_dep,
178    r_search_dep,
179    r_cons_dep,
180    r_parse_dep,
181    r_syscall_dep,
182    r_flag_dep,
183    r_hash_dep,
184    java_dep,
185    capstone_dep
186  ],
187  install: true,
188  implicit_include_directories: false,
189  install_rpath: rpath_lib,
190  soversion: r2_libversion
191)
192
193r_anal_dep = declare_dependency(link_with: r_anal,
194                                include_directories: r_anal_inc)
195
196pkgconfig_mod.generate(r_anal,
197  subdirs: 'libr',
198  version: r2_version,
199  name: 'r_anal',
200  filebase: 'r_anal',
201  libraries: pkgcfg_sanitize_libs,
202  requires: [
203    'r_util',
204    'r_reg',
205    'r_asm',
206    'r_crypto',
207    'r_parse',
208    'r_syscall',
209    'r_search',
210    'r_cons',
211    'r_flag'
212  ],
213  description: 'radare foundation libraries'
214)
215